StealThis .dev

Form — Multi-step (progress + back/next)

A four-step signup wizard (Account, Profile, Plan, Review) with a numbered progress indicator and animated gradient bar. Each step validates its own fields before Next unlocks, Back preserves every value, and the Review screen summarizes all answers with per-row Edit jumps. Submit runs a real busy state into a success confirmation. Inline errors, aria-invalid, an aria-live error summary, password reveal, focus moved to the active step heading, and reduced-motion support throughout.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

Multi-step (progress + back/next)

A self-contained signup wizard that splits a long form into four manageable steps — Account, Profile, Plan, and Review. A numbered step rail at the top marks the current step with aria-current, fills completed steps with a checkmark, and an animated gradient bar tracks overall progress. The Next button stays disabled until the active step’s fields are valid, so users never advance past an incomplete section.

Validation is real and per-step: email format, password length and digit checks, a matching confirm field, required name/company text, a chosen team size and plan, and accepted terms. Errors surface inline with aria-invalid, helper text turns into the error message, and an role="alert" summary announces how many fields need attention. Moving forward slides the next panel in; Back slides it the other way and keeps every entered value intact. Focus jumps to the new step’s heading on each change, and prefers-reduced-motion collapses the transitions.

The final Review step builds a live summary of every answer with an Edit button per row that jumps straight back to the relevant step. Submitting shows a brief busy state, then a confirmation screen personalized with the user’s name and email — plus a Start over button to reset the whole flow. A small toast() helper provides non-blocking feedback. No frameworks, no build step, no external assets.