Skip to content
GitHub ↗

Navigation / React + CSS

Progress stepper

A connected step indicator with animated progress and clear next actions.

Live preview
  1. 1Brief
  2. 2Design
  3. 3Review

Step 1: Brief

Make it yours

Use for a short, linear task. This standalone example manages step state; connect validation and actual task content before using it for a real workflow. Pass at least one step.

  1. Use a React project with CSS Modules support, such as Next.js or Vite.
  2. Save the JSX as ProgressStepper.jsx and the CSS as ProgressStepper.module.css in the same folder.
  3. Import ProgressStepper and connect its props to your application. Controlled components need parent state and change handlers.

No third-party component or animation package is required. Use the theme controls to adjust accent, corners, spacing, and type. Copy the Theme CSS into your stylesheet and wrap your components in <div className="tdp-components">. The theme applies to every component inside that wrapper. TDP defaults work without a theme file.

Props

PropTypeUse
stepsstring[]Nonempty list of unique step labels.
onCompletefunctionCalled when the final step is finished.

Accessibility & behavior

An ordered list describes the sequence and aria-current marks the active step. Progress changes are announced in a status region. Navigation uses native buttons.

Visible focus styles and reduced-motion support are included. Check labels, contrast, keyboard behavior, and screen-reader output again after adapting the component to your product.

Keep building