StealThis .dev

Steps Progress

Multi-step progress indicator with completed, active, and upcoming states — horizontal and vertical orientations.

Open in Lab
css vanilla-js
Targets: JS HTML

Code

Steps Progress

A multi-step progress indicator that guides users through a sequential workflow. Supports completed, active, and upcoming states with smooth CSS transitions.

Features

  • Four-step horizontal stepper with connecting progress line
  • Completed steps show a checkmark icon
  • Active step is highlighted with accent color and a pulsing ring
  • Upcoming steps are muted
  • Previous / Next buttons navigate between steps
  • Progress line fills proportionally as steps are completed

How it works

  1. Each step circle transitions through three CSS classes: default (upcoming), .is-active, and .is-complete
  2. The connecting line between steps uses a ::after pseudo-element that fills with a CSS transition based on a --progress custom property
  3. JS increments/decrements the current step index and applies the appropriate classes

Accessibility

Uses aria-current="step" on the active step and aria-label with status on each step node for screen reader context.