Documentation Index
Fetch the complete documentation index at: https://mintlify.com/felipe-software/react-native-jelly-tabs/llms.txt
Use this file to discover all available pages before exploring further.
JellyTabBar is the React Navigation–compatible adapter around JellyTabBarHeadless. Pass it to the tabBar prop of a Tabs navigator and the navigator automatically injects state, descriptors, navigation, and insets. Every other prop is yours to configure.
Import
Usage
PassJellyTabBar to the tabBar prop of a React Navigation or Expo Router Tabs navigator. The navigator automatically injects state, descriptors, navigation, and insets — do not pass those props manually.
Navigator-injected props
These four props are supplied automatically by the navigator. Do not pass them yourself.The navigator’s current route state, including the active route index and the full route list. Supplied by React Navigation / Expo Router.
A map of route key → descriptor, each containing a
options object with all screen-level navigation options. Supplied by React Navigation / Expo Router.The navigator helper used to dispatch
NAVIGATE actions and emit tabPress / tabLongPress events. Supplied by React Navigation / Expo Router.Safe-area insets applied as padding around the tab bar container. Supplied by React Navigation / Expo Router.
Visual & layout props
When
true, the tab bar is absolutely positioned at the bottom of the screen (position: 'absolute', bottom: 0, zIndex: 1), floating above the screen content instead of occupying space in the layout.Additional styles applied to the outermost wrapper
View that holds the bar and manages safe-area padding. Use this for overrides such as a custom background color or extra padding.Maximum width of the tab bar track. The bar stays horizontally centered inside wider parents. Accepts any React Native
DimensionValue (number, percentage string, etc.).A React node rendered below the track’s solid color layer — typically a blur view. When omitted, the
tabBarBackground navigation option from the focused screen is used as a fallback.Solid color overrides for the four visual layers. Partial objects are merged over the built-in defaults. Navigation tint options (
tabBarActiveTintColor, tabBarInactiveTintColor, tabBarActiveBackgroundColor, tabBarInactiveBackgroundColor) are used as a secondary fallback when a key is not present in this prop.Deep-partial override of the tab bar’s layout, jelly animation, and distortion parameters. Only the keys you provide are changed; everything else falls back to the built-in defaults. See the Config shape below.
Multiplier applied to every layout dimension (
trackHeight, itemHeight, iconSize, etc.). Useful for recording clean thumbnails or adjusting the component to match a non-standard scale factor.Per-layer opacity overrides, each clamped to
[0, 1]. Opacity is applied to the rendered content rather than the mask shape, so the animated pill retains a fully opaque clip boundary.A React node rendered below the selected-pill color layer. Useful for placing a blur effect or custom background exclusively inside the active pill.
Enables or disables the radial glow that appears under the user’s finger when they interact with the bar. Set to
false to remove the effect entirely.Overrides the color of the radial touch feedback. Defaults to
colors.selectedSurface when not set.Overrides the base opacity of the radial touch feedback. Defaults to
config.distortion.touchFeedback.opacity (0.15).Overrides the radius scale multiplier of the radial touch feedback. Defaults to
config.distortion.touchFeedback.scale (2).Enables deterministic rendering mode, which disables non-deterministic animation behaviors. Use this when capturing clean screen recordings or automated visual snapshots.
Navigation options (read from descriptors)
JellyTabBar reads the following standard React Navigation options from each route’s descriptor. Set them in the screenOptions or per-screen options prop of your navigator.
| Option | Type | Description |
|---|---|---|
tabBarIcon | (props: { color: string; focused: boolean; size: number }) => ReactNode | Icon renderer. The component is wrapped internally to produce separate active/inactive icon instances. |
tabBarLabel | unknown | String label shown below the icon. When a string, it is displayed as the tab label; non-string values fall back to title or the route name. Function-valued tabBarLabel is not rendered by the Jelly layout. |
tabBarShowLabel | boolean | Set to false to hide the label (renders an empty string). |
tabBarLabelStyle | StyleProp<TextStyle> | Style applied to the tab label text. |
tabBarBadge | number | string | Badge value displayed on the tab. |
tabBarBadgeStyle | StyleProp<TextStyle> | Style applied to the badge. |
tabBarAccessibilityLabel | string | Accessibility label for the tab. Defaults to label when omitted. |
tabBarButtonTestID | string | testID for the accessible tab element. |
tabBarActiveTintColor | unknown | Active icon/label color (string values only). Overridden by colors.activeContent when set. |
tabBarInactiveTintColor | unknown | Inactive icon/label color (string values only). Overridden by colors.inactiveContent when set. |
tabBarActiveBackgroundColor | unknown | Selected pill color (string values only). Overridden by colors.selectedSurface when set. |
tabBarInactiveBackgroundColor | unknown | Track background color (string values only). Overridden by colors.surface when set. |
tabBarBackground | () => ReactNode | Called to produce the backdrop node when the backdrop prop is not provided. |
tabBarStyle | unknown | Style merged into the container View of the focused screen’s tab bar. |
title | string | Fallback label when tabBarLabel is not set. |
href | unknown | Set to null to hide a route from the tab bar entirely (Expo Router convention). |
Function-valued
tabBarLabel and custom tab button components (e.g. tabBarButton) are not rendered by the Jelly layout. Use string labels and the tabBarIcon option instead.Config shape
config accepts a deep-partial of the following structure. Omitted keys fall back to built-in defaults.