Default — horizontal
Live preview
Numbered circles with label and sublabel.
1import { Stepper, type StepItem } from 'omverse-ui'
2
3const steps: StepItem[] = [
4 { label: 'Account setup', sublabel: 'Step 1', description: 'Create your account.' },
5 { label: 'Email verified', sublabel: 'Step 2', description: 'Verify your email.' },
6 { label: 'Profile details', sublabel: 'Step 3', description: 'Fill in your profile.'},
7 { label: 'Payment method', sublabel: 'Step 4', description: 'Add payment method.' },
8 { label: 'Confirmation', sublabel: 'Step 5', description: 'Review and confirm.' },
9]
10
11<Stepper steps={steps} activeStep={step} />
Default — vertical
Live preview
Vertical orientation with connecting line between steps
Account setupStep 1Create your account and choose a username.
Email verifiedStep 2Verify your email address to continue.
Profile detailsStep 3Fill in your profile information.
Step 3 / 3
1<Stepper steps={steps.slice(0, 3)} activeStep={step} orientation="vertical" />
Pill-shaped step indicators
1<Stepper steps={steps} activeStep={step} variant="pill" />
1<Stepper steps={steps} activeStep={step} variant="dot" />
Numbered badge indicators with label
1<Stepper steps={steps.slice(0, 4)} activeStep={step} variant="badge" />
Gradient fill on active and completed steps
1<Stepper steps={steps.slice(0, 4)} activeStep={step} variant="gradient" />
Custom icon inside each step indicator
1const iconSteps: StepItem[] = [
2 { label: 'Sign up', icon: 'users' },
3 { label: 'Verify', icon: 'mail' },
4 { label: 'Customize', icon: 'settings' },
5 { label: 'Launch', icon: 'rocket' },
6]
7
8<Stepper steps={iconSteps} activeStep={step} variant="icon" />
Each step rendered as a bordered card
1<Stepper steps={steps.slice(0, 4)} activeStep={step} variant="card" />
showProgressBar renders a bar below indicators
1<Stepper steps={steps} activeStep={step} variant="progress" showProgressBar />
Timeline — vertical
Live preview
Rich vertical timeline with dates and content inside each step
DevelopmentCurrent
Core features implemented and integrated with the backend API.
Step 3 / 3
1const timelineSteps: StepItem[] = [
2 { label: 'Project kickoff', sublabel: 'Jan 10, 2025', content: <p>Initial meeting. Scope and milestones defined.</p> },
3 { label: 'Design phase', sublabel: 'Feb 3, 2025', content: <p>Wireframes and prototypes approved.</p> },
4 { label: 'Development', sublabel: 'Mar 15, 2025', content: <p>Core features implemented.</p> },
5]
6
7<Stepper steps={timelineSteps} activeStep={step} variant="timeline" orientation="vertical" />
Checklist style
Live preview
Task-list style vertical stepper — supports optional steps
Step 3 / 5
1const checklistSteps: StepItem[] = [
2 { label: 'Install dependencies' },
3 { label: 'Configure environment' },
4 { label: 'Set up database' },
5 { label: 'Run migrations', optional: true },
6 { label: 'Deploy to production' },
7]
8
9<Stepper steps={checklistSteps} activeStep={step} variant="checklist" orientation="vertical" />
With error state
Live preview
Use explicit status props to show complete, error, and pending states
1const steps: StepItem[] = [
2 { label: 'Account', status: 'done' },
3 { label: 'Verify', status: 'error' },
4 { label: 'Profile', status: 'pending' },
5 { label: 'Payment', status: 'pending' },
6]
7
8<Stepper steps={steps} currentStep={1} />