Stepper
Stepper shows progress through an ordered sequence — a checkout, a wizard, a multi-stage form. Each step has a status; the active one is marked for assistive technology.
What it is
A single component over an array of StepperStep objects. It renders an ordered list and hands
each step to your renderStep function, along with the resolved status and an isLast flag.
Status comes from one of two places: the current prop names the active step, or each step
carries its own status. Stepper is structure and status; the visuals are yours.
Install
API
Stepper
stablefunction Stepper(props: StepperProps): JSX.Element
The ordered steps. Each is `{ id, label, status? }`.
The id of the active step. Overrides any per-step `status: "active"`.
Renders one step. `info` carries `step`, `index`, the resolved `status`, and `isLast`.
Lays the steps out in a row or a column.
Inline style for the list.
StepperStep
Accessibility
Stepper renders an <ol> — an ordered list, because the steps have an order. The active step's
list item carries aria-current="step", so a screen-reader user knows which stage they are on.
Status beyond "active" is visual; if complete or error carries meaning a non-sighted user
needs, put it in the step's label text, not the colour alone.
A Stepper shows progress; it does not navigate. If steps are clickable — jump back to step 1 —
make each a real button or link inside renderStep, and decide deliberately which completed
steps are revisitable.
Examples
A checkout flow: