SegmentedTabs
A segmented tab group with arrow-key navigation and switchable panels.
SegmentedTabsView sourceExample
The preview is interactive. The code below it is the docs demo source; demo-only layout classes can be omitted in application code.
import { Cell } from "retend";
import { SegmentedTabs } from "innate-ui";
type Tab = "overview" | "activity" | "settings";
export function SegmentedTabsDemo() {
const tab = Cell.source<Tab>("overview");
return (
<SegmentedTabs id="segmented-tabs-demo" value={tab} onChange={(value) => tab.set(value)}>
<SegmentedTabs.List ariaLabel="Project views">
<SegmentedTabs.Trigger value="overview">Overview</SegmentedTabs.Trigger>
<SegmentedTabs.Trigger value="activity">Activity</SegmentedTabs.Trigger>
<SegmentedTabs.Trigger value="settings" disabled>
Settings
</SegmentedTabs.Trigger>
</SegmentedTabs.List>
<SegmentedTabs.Content value="overview">Overview of the project.</SegmentedTabs.Content>
<SegmentedTabs.Content value="activity">Recent activity.</SegmentedTabs.Content>
<SegmentedTabs.Content value="settings">Project settings.</SegmentedTabs.Content>
</SegmentedTabs>
);
}API reference
This table is generated from Innate UI's exported TypeScript declarations and JSDoc. Native element attributes inherited by a prop type are not repeated here.
SegmentedTabsProps
| Prop | Type | Default |
|---|---|---|
idrequiredStable id used to connect each trigger with its panel. | string | — |
valuerequiredCurrently selected trigger value. | JSX.ValueOrCell<Value> | — |
childrenrequired`SegmentedTabs.List` and `SegmentedTabs.Content` children. | JSX.Children | — |
orientationLayout direction of the trigger list. | JSX.ValueOrCell<SegmentedTabsOrientation> | "horizontal" |
sizeDensity of the trigger list. | JSX.ValueOrCell<SegmentedTabsSize> | "medium" |
activationWhether arrow-key focus also selects the focused trigger. | JSX.ValueOrCell<SegmentedTabsActivation> | "automatic" |
onChangeCalled when a different trigger is selected. | (value: Value) => void | — |
SegmentedTabsContentProps
| Prop | Type | Default |
|---|---|---|
valuerequiredTrigger value this panel belongs to. | string | — |
childrenrequiredPanel content rendered while its trigger is selected. | JSX.Children | — |
SegmentedTabsListProps
| Prop | Type | Default |
|---|---|---|
childrenrequired`SegmentedTabs.Trigger` children. | JSX.Children | — |
ariaLabelAccessible label for the tab list. | JSX.ValueOrCell<string> | — |
ariaLabelledById of the element labelling the tab list. | JSX.ValueOrCell<string | undefined> | — |
onKeyDownKey-down handler called before built-in arrow-key navigation. | EventHandlerProp<HTMLDivElement, KeyboardEvent> | — |
SegmentedTabsTriggerProps
| Prop | Type | Default |
|---|---|---|
valuerequiredValue selected when this trigger is activated. | Value | — |
childrenrequiredVisible trigger label or content. | JSX.Children | — |
disabledWhether the trigger is disabled. | JSX.ValueOrCell<boolean> | false |
refReceives the trigger button element. | SourceCell<HTMLButtonElement | null> | — |
onClickClick handler called before the trigger is selected. | EventHandlerProp<HTMLButtonElement, MouseEvent> | — |