Overview
Overview
Analytics
Reports
Settings
All
Active
Archived
Installation
Usage
Variants
Underline (Default)
The minimal style with a bottom border indicator. Best for page-level navigation.Overview
Analytics
Reports
Settings
Pill Style
A filled, pill-shaped active indicator. Best for filtering or segmented control contexts.All
Active
Archived
With Icons
Profile
Security
Billing
API Reference
Tabs (Root)
string
Controlled active tab value.
(value: string) => void
Callback fired when the active tab changes.
string
Uncontrolled default active tab.
string
default:"underline"
Visual style. Values:
underline · pillstring
default:"horizontal"
Layout direction. Values:
horizontal · verticalTabsTrigger
string
Tab identifier (required). Must match the corresponding
TabsContent value.boolean
default:"false"
Disables this tab.
ReactNode
Optional leading icon element.
TabsContent
string
Matches the corresponding
TabsTrigger value (required).Accessibility
- Tabs follow the ARIA Tabs pattern with
role="tablist",role="tab", androle="tabpanel" - Arrow keys move focus between tabs within the
TabsList - Enter/Space activates the focused tab
- Active tab has
aria-selected="true" - Disabled tabs have
aria-disabled="true"and are skipped by keyboard navigation - Each
TabsContentis linked to its trigger viaaria-labelledby
Do’s & Don’ts
Do
- Use Tabs to organize related views on the same page
- Limit to 2–7 tabs — more becomes hard to scan
- Use underline for page-level navigation, pill for local filtering
- Add icons to improve scannability for settings or profile tabs
Don't
- Don’t use Tabs for navigation between separate pages — use links
- Don’t use Tabs for sequential workflows — use a Stepper instead
- Don’t mix underline and pill styles on the same page
- Don’t put too much content inside a single tab panel — consider separate pages