Stepper
Multi-step progress in horizontal and vertical orientations, with state conveyed in words as well as ticks.
Live preview
Source
The exact file rendered in the preview above.
components/demos/stepper.tsx
components/ui/stepper.tsx
Demo source — adapt to your project. Foundry is not published as a package.
Usage
Pairs with any multi-step form. It answers three questions at once: how many steps there are, which one you are on, and how much is left.
- Keep step labels to one or two words and put the detail in the description.
- Five steps is usually the ceiling; beyond that, group them.
- The connector and tick are decorative — the state is also in a visually hidden word.
Variants and states
Every entry below is a genuine difference in behaviour or layout, and every one of them is visible in the preview above.
- Horizontal — stacks below sm
- Vertical
- Completed, current and upcoming states
Accessibility
- Structure
- An ordered list inside a labelled `<nav>`, so count and order are structural.
- Current step
- `aria-current="step"` on the active item.
- State in text
- Each step announces "completed", "current step" or "not started".
Foundry implements published ARIA patterns and is tested against them. No WCAG certification is claimed — see the accessibility documentation for what is and is not covered.
Related
All componentsOnboarding wizard
Four steps ordered to minimise abandonment, with a skippable invite step and a review screen.
advancedFeatured4 variantsCheckout wizard
Four steps with the order summary repeated on every one.
advancedFeatured5 variantsProgress
Determinate and indeterminate progress as a bar or a ring, with four tones.
starter5 variants