MazTimeline
MazTimeline is a step/progress timeline component for Vue 3 with support for horizontal, vertical, and responsive layouts, customizable colors, sizes, step states, and scoped slots
Before use it, you should install the MazUi plugin in your project, follow instructions in Getting Started
Basic usage
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Directions
Horizontal
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Vertical
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Auto (responsive)
The default direction is 'auto', which switches from horizontal to vertical based on the breakpoint prop (default: '768px').
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Colors
Use the color prop to change the theme color.
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Sizes
Use the size prop to change the indicator size.
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step states
Each step can have a manual state property: 'completed', 'active', 'error', 'warning', or 'pending'.
Completed
Step finished
Active
In progress
Error
Something went wrong
Warning
Needs attention
Pending
Not started
Clickable
Enable clickable to allow users to navigate between steps by clicking on them. The click-step event is emitted with the step index.
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Disabled steps
Individual steps can be disabled by setting disabled: true on the step object.
Account
Create your account
Profile
Set up your profile
Settings
Locked
Complete
All done!
Without step numbers
Hide the step numbers inside indicators with :show-step-numbers="false".
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Without auto-validate
By default, completed steps show a checkmark. Disable this with :auto-validate-steps="false".
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Rounded sizes
Customize the indicator border radius with the rounded-size prop.
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Step 1
Step 2
Step 3
Custom slots
MazTimeline provides scoped slots for full customization.
Indicator slot
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Content slot
Step 1 - completed
Step 2 - active
Step 3 - pending
Step 4 - pending
Connector slot
Account
Create your account
Profile
Set up your profile
Settings
Configure preferences
Complete
All done!
Props
| Name | Description | Type | Required | Default | Possible values |
|---|---|---|---|---|---|
| model-value | Index of the active step (v-model) | number | No | undefined | - |
| steps | Array of timeline steps to display | MazTimelineItem[] | Yes | undefined | - |
| direction | Layout direction of the timeline - 'horizontal': always horizontal - 'vertical': always vertical - 'auto': horizontal above breakpoint, vertical below | MazTimelineDirection | No | auto | 'horizontal' | 'vertical' | 'auto' |
| breakpoint | CSS media breakpoint for auto direction (below this value → vertical) | string | No | 768px | - |
| color | Color theme for active and completed steps | MazTimelineColor | No | primary | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'destructive' | 'contrast' |
| size | Size of the step indicators and typography | MazSize | No | md | 'mini' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' |
| show-step-numbers | Show step numbers inside the indicators | boolean | No | true | - |
| auto-validate-steps | Automatically show a checkmark icon for completed steps | boolean | No | true | - |
| clickable | Enable click interaction on steps | boolean | No | false | - |
| animated | Enable animations (pulse on active, state transitions, connector progress) | boolean | No | true | - |
| rounded-size | Border radius of step indicators | MazTimelineRoundedSize | No | full | 'none' | 'sm' | 'md' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | 'full' |
Events
| Event name | Properties | Description |
|---|---|---|
| update:modelValue | value mixed - The new active step index | Emitted when the active step changes |
| click-step | payload mixed - The step data and its index | Emitted when a clickable step is clicked |
Slots
| Name | Description | Bindings |
|---|---|---|
| indicator | Custom content for the step indicator circle | step MazTimelineItem - The step dataindex number - The step indexstate MazTimelineStepState - The resolved step state |
| content | Full custom content area replacing title and subtitle | step MazTimelineItem - The step dataindex number - The step indexstate MazTimelineStepState - The resolved step state |
| title | Custom title content | step MazTimelineItem - The step dataindex number - The step indexstate MazTimelineStepState - The resolved step state |
| subtitle | Custom subtitle content | step MazTimelineItem - The step dataindex number - The step indexstate MazTimelineStepState - The resolved step state |
| connector | Custom connector between steps | index number - The index of the step before this connector |