Playground
Every control sets a real prop of TabsProps. The JSX below updates as you go.
Web
iOS
Android
JSX · TabsProps
Variants
8 examples from src/organisms/tabs/tabs.md, each rendered live from its own JSX.
States
Hover, focus and press are pinned so they can be compared side by side; the rest are real props.
Anatomy
1
Tab list
2
Tab
3
Active indicator
4
Badge
Dimmed parts appear only in some states or variants.
Props
13 props on TabsProps, 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
disabled
selected
ARIA on web
aria-disabled
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
On the web the underline look marks the active tab with a glowing accent bar on the row's hairline, pills sit on a rounded track with a raised thumb, and the vertical rail washes its active row in the accent. iOS draws its segmented control (UISegmentedControl): underline and pills are a capsule track with a raised thumb, and vertical is a grouped rail. Android draws Material 3's tabs. In glass mode a filled selection is a control-layer pane behind the selected label, in the platform skin's selected tint with readable foreground ink. Solid mode keeps the complete platform treatment.
Tokens
Read from the playground render. Values follow the scheme and the ion hue.
--fd
--fm
--ft
--ion
--ion-glow
--ln
--sf4
--tx
--tx2