Aliases
tabset
TabsRelated views with keyboard navigation and associated panels.
Overview content
Aliases
tabset
Foundations
Tabs when the user is switching between closely related views or information groups.Stepper for an ordered workflow.tab list
list Group of tab triggers.
tab trigger
tab Single trigger selecting a panel.
tab panel
panel Visible content for the selected tab.
| Name | Type | Default | Description |
|---|---|---|---|
value | string | — | Controlled selected tab value. |
items | Array<{ value: string; label: string; disabled?: boolean }> | — | Tab trigger definitions. |
panels | Record<string, string> | — | Panel content keyed by tab value. |
orientation | 'horizontal' | 'vertical' | 'horizontal' | Chooses trigger layout orientation. |
activation | 'automatic' | 'manual' | 'automatic' | Chooses whether focus movement activates tabs immediately. |
size | 'sm' | 'md' | 'md' | Chooses the tab size recipe. |
onChange | (detail: { value: string }) => void | — | Runs when the active tab changes. |
theme | ThemeContract | — | Sets the theme used to resolve component styles. |
| Name | Payload | Description |
|---|---|---|
change | { value: string } | Fires with the active tab value. |
| Name | Description |
|---|---|
default | Tabs is data-driven and panels are supplied by value map. |
Variants
horizontal: Default row of tab triggersvertical: Stacked tab trigger layout for some side-panel casesSizes
sm: Compact tabsmd: Default tabsStates
rest: Unselected tabselected: Active tabdisabled: Unavailable tabSemantics
tablist, tab, and tabpanel roles.Keyboard
Screen readers
Checklist
Switch between two related views.
<Tabs items={[{ value: 'overview', label: 'Overview' }, { value: 'activity', label: 'Activity' }]} value="overview" panels={{ overview: 'Overview content', activity: 'Activity content' }} /> Use manual activation when changing panels is more expensive or disruptive.
<Tabs activation="manual" items={tabItems} value="overview" panels={panels} /> Vertical tabs can work in inspector or side-panel layouts.
<Tabs orientation="vertical" items={tabItems} value="details" panels={panels} /> Calculated fixtures; browser evidence is not collected. Layout estimates use declared text behavior and maximum token values.
orientation=horizontal|size=sm
orientation=vertical|size=sm
orientation=horizontal|size=md
orientation=vertical|size=md
orientation=horizontal|size=lg
orientation=vertical|size=lg
orientation=horizontal|size=sm
orientation=vertical|size=sm
orientation=horizontal|size=md
orientation=vertical|size=md
orientation=horizontal|size=lg
orientation=vertical|size=lg