navigationstepper
Stepper
Tab-structured step navigation with configurable orientation and separator layout.
Import#
Slot Structure#
Header with step items and optional per-step content panels.
Examples#
Sizes#
Preview the Stepper across all supported sizes using the default linear, non-clickable tab navigation.
Controlled + Non-linear#
Manage the active step externally and allow jumping to any step.
Clickable vs Non-Clickable#
Compare the default non-clickable mode with explicit click-enabled navigation.
Linear Checkout#
Enable clicking while still only allowing the next available step to be selected.
Vertical#
Render the tab-structured step navigation vertically.
API Reference#
Attributes#
Slot
root0 attributesStepper container that owns orientation, step state, and panel rendering.
No attribute metadata for this slot.
Props#
| Prop | Type | Default | Description |
|---|---|---|---|
| activationMode | "manual" | "automatic" | undefined | automatic | Whether keyboard activation happens immediately or only after confirmation. |
| class | ClassValue | — | Class applied to the component root or trigger element. |
| classes | StepperT.Classes | undefined | — | — |
| clickable | boolean | undefined | false | Whether steps are clickable for navigation. |
| defaultValue | StepperT.Value | undefined | — | Default active step value for uncontrolled usage. |
| disabled | boolean | undefined | false | Whether the entire stepper is disabled. |
| id | string | undefined | — | Unique identifier for the stepper root element. |
| items | StepperT.Item[] | undefined | — | Array of steps to display. |
| linear | boolean | undefined | true | Whether to enforce linear navigation (must complete steps in order). |
| onChange | ((value: StepperT.Value) => void) | undefined | — | Callback when the active step changes. |
| orientation | "horizontal" | "vertical" | undefined | horizontal | The orientation of the stepper. |
| ref | JSX.HTMLElementTags["div"] extends { ref?: infer Ref; } ? Ref : never | undefined | — | — |
| size | "xs" | "sm" | "md" | "lg" | "xl" | undefined | — | — |
| style | JSX.CSSProperties | undefined | — | — |
| styles | StepperT.Styles | undefined | — | — |
| value | StepperT.Value | undefined | — | Controlled active step value. |
Items#
An individual step in the stepper.
| Prop | Type | Default | Description |
|---|---|---|---|
| class | string | undefined | — | Additional class name for the step item. |
| content | JSX.Element | — | Content to display when the step is active. |
| description | JSX.Element | — | Secondary description of the step. |
| disabled | boolean | undefined | false | Whether the step is disabled. |
| icon | IconT.Name | index + 1 | Icon to display in the step indicator. |
| title | JSX.Element | — | Title of the step. |
| value | StepperT.Value | undefined | index of the item | Unique value for the step. |