--- title: Progress steps summary: Progress steps show where the user is in a short flow such as setup or onboarding, with done, active and upcoming steps. description: Use progress steps to display compact onboarding, checkout, and setup progress. added-in: '1.5.0' related: [/ui/components/progress, /ui/components/step] source: core/scss/ui/_progress.scss css-vars: progress-steps classnames: component: - class: progress-steps desc: Container element part: - class: progress-steps-item desc: One step; mark the reached ones as active --- import Example from '@components/Example.astro'; import ProgressSteps from '@ui/ProgressSteps.astro'; ## Default markup Use `.progress-steps` as the container and `.progress-steps-item` for each segment. ```html
``` The default structure:
## Variants ### Current and completed step Use color classes to mark completed steps. Set `aria-current="step"` on the current item. ### Custom labels Use hidden labels so assistive technologies can announce meaningful step names. ### Color state Use contextual background classes on completed and current items to match the state colors of your flow.
  1. Step 1
  2. Step 2
  1. Step 1
  2. Step 2
  1. Step 1
  2. Step 2
### Width and layout utilities Use utility classes on `.progress-steps` to control width and placement in layouts. ## Accessibility - Say where the user is in text as well - "Step 2 of 4" next to the bar, or in a `visually-hidden` span. The filled shape alone does not carry it. - Mark the current step with `aria-current="step"`. - If you use the underlying progress bar to draw the line, give it `role="progressbar"` with the step number as `aria-valuenow` and the total as `aria-valuemax`. - Do not rely on the color of a circle to say "done". Add an icon or a word.