About this set
Two progress indicators for multi-step flows. The horizontal one is a four-step checkout (Basket, Delivery, Payment, Confirm) with numbered circles joined by a line that turns indigo up to the current step, and a short status under each label. The vertical one is a setup checklist with a title and a sentence per step, joined by a line down the left. Completed steps show a tick on a filled circle, the current step has an outlined circle with a soft halo, and upcoming steps stay grey. Use the horizontal version above a checkout or sign-up form and the vertical one for onboarding or a settings wizard. Each is an ordered list inside a labelled nav. Completed steps are links, so people can go back and change an earlier answer; the current step has aria-current=”step”; upcoming steps are plain text because they cannot be reached yet. The tick icon is aria-hidden and each completed step carries visually hidden “Completed:” text, so the state is announced as well as drawn. The connector lines are CSS pseudo-elements and no JavaScript is involved.
What’s included
- Horizontal checkout stepper and vertical setup checklist
- Completed steps link back; the current step has aria-current="step"
- Visually hidden "Completed" text alongside each tick
- Connector lines drawn with ::before, no JavaScript
- Bootstrap version uses .list-unstyled, .rounded-circle and .visually-hidden
Accessibility
Each stepper is an ordered list in a nav with its own label, so screen readers announce how many steps there are. Completed steps are links with hidden "Completed:" text, the current step has aria-current="step", and upcoming steps are text only. Links show an indigo focus outline. Nothing animates.
Customise it
Change --stp-accent, --stp-line, --stp-ring and the text colours --stp-ink, --stp-done and --stp-todo on .stp. The dots are 36px (.stp-dot) and the connector offsets (top:17px, left:17px) sit at half that. In Tailwind edit #4f46e5 and #e0e4ec in the before: and border utilities.



















