TabBar
Organism
Bottom app navigation: a row of equal-width destinations, each an icon over a short label, with exactly one active. The mobile idiom (the iOS 26 floating tab bar / Material 3 navigation bar), rendered through the glass functional layer.
Playground
Every control sets a real prop of TabBarProps. The JSX below updates as you go.
Web
iOS
Android
JSX · TabBarProps
Variants
1 examples from src/organisms/tab-bar/tab-bar.md, each rendered live from its own JSX.
Anatomy
1
Bar
2
Item
3
Active indicator
4
Label
Dimmed parts appear only in some states or variants.
Props
7 props on TabBarProps, grouped as they are declared in source. Required props are marked *.
Accessibility and keyboard
Keyboard
ArrowLeft
ArrowRight
Moves between tabs
Home
End
First · last tab
Enter
Space
Activates the focused tab
Tab
Leaves for the panel
Semantics
Roles
tab
tablist
States
selected
ARIA on web
aria-selected
Below the platform minimum, the touch area grows to 44 pt on iOS and 48 dp on Android without moving the layout.
Platform skins
The playground's props on each platform: same tree, native shapes, type and touch sizes.
Usage
iOS and web share the iOS 26 anatomy: a 62 px capsule that floats above the content (which scrolls beneath it), inset from the sides, with the safe-area inset kept under the capsule, and the selected destination washed in the accent as a capsule covering its whole cell. Android docks the Material 3 bar full-bleed, 80 tall under a hairline, with its 64 by 32 icon pill. In glass mode the selection is a control-layer pane on the active destination: the cell capsule on iOS and web, the icon pill on Android. Solid mode retains the ordinary platform surface.
Tokens
Read from the playground render. Values follow the scheme and the ion hue.
--bf
--fd
--ft
--gl
--ion-soft
--ion-tx
--ln2
--sh-lg
--tx2