Components
Tab
A single tab inside a `Tabs` tablist; renders as a link when `href` is provided, otherwise as a button.
Props
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
className | string | ClassNameComponent<TabInterface> | No | — | Classes or state-aware element classes applied through the shared style contract. |
label | string | No | — | Text shown for this tab; can also come from a string child. |
icon | Icon | No | — | Icon shown alongside the label. |
disabled | boolean | No | false | Disables pointer, keyboard, and roving-tabindex focus for this tab. |
variant | TabsVariant | No | 'primary' | Injected by the parent Tabs. |
index | number | No | — | Injected by the parent Tabs: position of this tab in the list. |
selectedTab | number | No | — | Injected by the parent Tabs: index of the currently selected tab. |
tabsId | string | No | — | Injected by the parent Tabs: identifier shared by every tab and panel of the group. |
href | string | No | — | Navigation destination; switches the inner element to a native link. |
isFocusable | boolean | No | false | Injected by the parent Tabs: this tab is the roving-tabindex stop while nothing is selected. |
hasPanels | boolean | No | false | Injected by the parent Tabs: whether a connected TabPanels exists (wires aria-controls). |
onTabSelect | (index: number) => void | No | — | Injected by the parent Tabs: requests this tab becomes selected. |
contentRef | (element: HTMLSpanElement) => void | No | — | Injected by the parent Tabs: reports this tab's icon+label content element, which the sliding indicator measures for the `primary` variant. |