Stepper

Horizontal progress steps — done, current, and pending with optional purpose line.

Preview

Live

Complete these steps to start applying.

  1. Import CV
  2. Add a job
  3. Review
  4. History
<div class="ui-stepper">
  <p class="ui-stepper__purpose">Complete these steps to start applying.</p>
  <ol class="ui-stepper__track">
    <li class="ui-stepper__step is-done">…</li>
    <li class="ui-stepper__step is-current" aria-current="step">…</li>
    <li class="ui-stepper__step">…</li>
  </ol>
</div>

Variants

Done

Check icon + .is-done.

  1. Done

Current

aria-current="step" + .is-current.

  1. Current

Pending

Default step without done/current modifiers.

  1. Pending

Accessibility

  • Use an ordered list for step sequence; mark the active step with aria-current="step".
  • Node icons are decorative; labels carry the accessible name.
  • Optional purpose text explains the overall flow for screen readers and sighted users.

API

HTML classes

Class Description
.ui-stepper / __purpose / __track Root + purpose + list.
.ui-stepper__step / .is-done / .is-current Step states.
.ui-stepper__rail / .is-filled Connector between steps.
.ui-stepper__body / __node / __label Step content.
.ui-stepper__check / __icon Node icons.

React props

From src/core/Stepper.tsx — also exports Animate for motion wrappers.

Prop Type Default Description
steps StepperStep[] id, label, status, optional icon (required).
purpose string Optional purpose line above the track.
status 'pending' | 'current' | 'done' Per-step status on StepperStep.