Stepper
Multi-step progress indicator with horizontal/vertical layout, clickable navigation, and per-step state overrides.
- Account Create your account
- 2Profile Set up your profile
- 3Review Review and submit
01 Examples
Checkout wizard
- 1Account Create account
- 2Profile Your details
- 3Preferences Customize Optional
- 4Done All set
Mixed per-step states
- Account Completed
- Payment Card declined
- Shipping Verify address
- 4Review Final check
Optional steps in onboarding
- Account Required
- 2Avatar Upload photo Optional
- 3Bio Tell us about you Optional
- 4Finish Complete setup
02 Vertical Stepper
Vertical with content per step
- Create Account Enter your email and password
Enter your credentials to create a new account. We'll send a verification email to confirm your address.
- 2Personal Info Tell us about yourself
Fill in your name, date of birth, and contact information. This helps us personalize your experience.
- 3Preferences Customize your experience Optional
Choose your notification preferences, language, and theme settings.
- 4Complete Review and finish
Vertical with error state
- Account Created Email verified
- Payment Failed Card was declined
Your card ending in •••• 4242 was declined. Please update your payment method.
- 3Ship Order Awaiting payment
03 Customization
slotClasses Override
- Draft Write content
- 2Review Get feedback
- 3Publish Go live
Dark Glassmorphism
- Design
- 2Develop
- 3Deploy
Terminal Progress
- BUILD
- TEST
- 3DEPLOY
- 4MONITOR
04 Accessibility
Built-in ARIA
The stepper renders as an <ol> with aria-label="Progress". The active step is marked
with aria-current="step". Clickable steps get role="button" for screen reader identification. The data-orientation attribute exposes the layout direction.
Keyboard Navigation
Tab moves focus between clickable steps. Enter / Space activates the focused step. Focus rings use focus-visible: for keyboard-only visibility.
Step States
Completed, error, and warning steps use distinct icons (checkmark, X, warning triangle) in
addition to color, ensuring status is never conveyed by color alone. Disabled steps are
removed from the tab order via pointer-events-none and visual opacity-50.
Reduced Motion
All transitions use design token durations (--blocks-duration-fast, --blocks-duration-normal) which are reduced
automatically when prefers-reduced-motion is active.
05 API Reference
No matching properties |