---
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
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.
### 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.