Skip to main content
Version: Next

Bottom Tabs Options

Recommended: Read about Bottom Tabs in the Bottom Tabs Guide. For React tab items, see Custom bottom tabs.

const options = {
bottomTabs: {},
};

customRow#

Visual options for the floating row that hosts custom React tab cells. Only applies when every tab uses bottomTab.component.

TypeRequiredPlatform
BottomTabsCustomRowOptionsNoBoth
bottomTabs: {
customRow: {
height: 67,
backgroundEffect: 'glass',
cornerRadius: 28,
horizontalMargin: 16,
bottomMargin: 0,
},
}

On Android, customRow is forwarded from JS via RNNBottomTabsCustomRowModule (no change to existing BottomTabs layout code). On iOS, options are parsed natively from the layout tree.

BottomTabsCustomRowOptions#

height#

Content height of the row in points (iOS) / dp (Android). Excludes safe-area inset.

TypeRequiredPlatform
numberNoBoth

Default: native tab content height; on iOS 26+ an extra 18pt is added when height is omitted.

Total visible row height = height + safe-area bottom + bottomMargin.

backgroundColor#

Solid row background. When set, overrides backgroundEffect.

TypeRequiredPlatform
colorNoBoth

backgroundEffect#

TypeRequiredPlatform
enum(glass, blur, none)NoBoth
ValueiOSAndroid
glassUIGlassEffect on iOS 26+, blur fallbackSemi-opaque material chrome
blurUIBlurEffect systemChromeMaterialSemi-opaque material chrome
noneTransparentTransparent

Default: glass on iOS 26+, blur on older iOS.

cornerRadius#

Corner radius of the row background.

TypeRequiredPlatform
numberNoBoth

Default: 28 on iOS 26+, 0 on older iOS / when omitted on Android until configured.

horizontalMargin#

Horizontal inset from the screen edges.

TypeRequiredPlatform
numberNoBoth

Default: 16 on iOS 26+, 0 when omitted.

bottomMargin#

Distance between the row's bottom edge and the safe-area bottom.

TypeRequiredPlatform
numberNoBoth

Default: 0.

animate#

Controls whether toggling visibility states will be animated.

TypeRequiredPlatform
booleanNoBoth

animateTabSelection#

Controls wether tab selection is animated or not

TypeRequiredPlatform
booleanNoAndroid

backgroundColor#

Specify the background color. On Android - also applicable when translucence is applied, but a semi-transparent color should be used (e.g. rgba(255, 0, 0, 0.25)).

TypeRequiredPlatform
colorNoBoth

barStyle#

Controls whether the BottomTabs use dark (black) or light (default) visual style. Requires translucent: true.

TypeRequiredPlatform
enum('default','black')NoBoth

layoutStyle#

Control the way the bottom tabs are laid out.

  • stretch: Fill the entire width of the screen.
  • compact: Occupy the minimum width needed to hold tab buttons. Recommended for usage in conjunction with drawBehind: true.
TypeRequiredPlatform
enum('stretch','compact')NoAndroid

currentTabId#

Select a tab by the id (componentId) of a child contained in it. See Selecting tabs programmatically for a detailed explanation.

TypeRequiredPlatform
numberNoBoth

currentTabIndex#

TypeRequiredPlatform
numberNoBoth

drawBehind#

TypeRequiredPlatform
booleanNoBoth

elevation#

TypeRequiredPlatform
numberNoAndroid

cornerRadius#

Specify a corner-radius in order to apply round corners to the tabs container. Mainly suitable when used in conjunction with layoutStyle: 'compact'

TypeRequiredPlatform
number(dip)NoAndroid

bottomMargin#

Bottom-margin to set in order to enable a "hover" effect. Works best when used in conjunction with layoutStyle: 'compact' and drawBehind: true.

TypeRequiredPlatform
number(dip)NoAndroid

hideShadow#

TypeRequiredPlatform
booleanNoiOS

hideOnScroll#

Hides the BottomTabs on scroll to increase the amount of content visible to the user. The options requires that the scrollable view will be the root view of the screen and that it specifies nestedScrollEnabled: true.

TypeRequiredPlatform
booleanNoAndroid

preferLargeIcons#

TypeRequiredPlatform
booleanNoAndroid

tabsAttachMode#

TypeRequiredPlatform
enum('together','afterInitialTab','onSwitchToTab')NoBoth

testID#

TypeRequiredPlatform
stringNoBoth

titleDisplayMode#

TypeRequiredPlatform
enum('alwaysShow','showWhenActive','alwaysHide')NoBoth

translucent#

A Boolean value that indicates whether the BottomTabs should be translucent (and background-blurred). For this option to function properly the screen needs to be drawn behind the BottomTabs; Make sure the list component you're using (FlatList for example) is the root component in the screen and not SafeAreaView. When SafeAreView is the root component it shifts the content above the BottomTabs and the translucent effect isn't visible.

Note: On Android, the option is experimental and should be enabled using a native feature-toggle called TAB_BAR_TRANSLUCENCE (pass it to your NavigationApplication class' c'tor).

TypeRequiredPlatform
booleanNoiOS - Full support
Android - Experimental

blurRadius#

Set a custom radius to be used in the blur effect. Higher is blurrier, but also more CPU-intensive. Note: The blurring is performed following a bitmap downscale of x4.0, so ultimately the actual radius is (4*blurRadius).

TypeRequiredPlatform
numberNoAndroid

visible#

TypeRequiredPlatform
booleanNoBoth