Progress Steps
Stepper for multi-step flows like checkouts and onboarding, with horizontal or vertical layout, icons, navigation, and color tokens.
import {
ProgressSteps,
ProgressStepsStep,
ProgressStepsTitle,
ProgressStepsDescription,
} from "@plexui/vue/components/ProgressSteps";Examples
Overview
current
orientation
size
color
connectorStyle
Sizes
current
size
Vertical
With Icons
With Navigation
Minimal
current
color
Icons Only
Colors
API
ProgressSteps (root)
| Prop | Type | Default | Description |
|---|---|---|---|
current | number | — | Required. Current active step (1-based) |
orientation | "horizontal" | "vertical" | "horizontal" | Layout direction |
size | "sm" | "md" | "lg" | "md" | Step indicator size |
color | "default" | "success" | "default" | Color scheme for completed/active steps |
connector-style | "solid" | "dashed" | "solid" | Connector line style |
variant | "default" | "minimal" | "default" | "minimal" renders a compact bar (requires total) |
total | number | — | Total steps for minimal variant |
class | string | — | Class applied to the container |
ProgressStepsStep
| Prop | Type | Default | Description |
|---|---|---|---|
icon | Component | VNode | string | — | Custom icon instead of step number; the icon slot takes precedence |
ProgressStepsTitle: Wrapper for step title text. Applies appropriate styling based on step state.
ProgressStepsDescription: Wrapper for step description text. Applies appropriate styling based on step state.
Styling
Progress Steps reads these component tokens. Override them at any scope to restyle it:
--progress-steps-connector-color: connector color (defaultvar(--gray-100))--progress-steps-connector-color-completed: connector color completed (defaultvar(--gray-900))--progress-steps-connector-dash-gap: connector dash gap (default4px)--progress-steps-connector-dash-length: connector dash length (default4px)--progress-steps-connector-width: connector width (default2px)--progress-steps-content-gap-lg: content gap lg (defaultspacing(4))--progress-steps-content-gap-md: content gap md (defaultspacing(3))--progress-steps-content-gap-sm: content gap sm (defaultspacing(2.5))--progress-steps-description-color: description color (defaultvar(--color-text-secondary))--progress-steps-description-color-inactive: description color inactive (defaultvar(--color-text-tertiary))--progress-steps-font-size-lg: font size lg (defaultvar(--font-text-md-size))--progress-steps-font-size-md: font size md (defaultvar(--font-text-sm-size))--progress-steps-font-size-sm: font size sm (defaultvar(--font-text-xs-size))--progress-steps-icon-size-lg: icon size lg (defaultvar(--control-icon-size-md))--progress-steps-icon-size-md: icon size md (defaultvar(--control-icon-size-sm))--progress-steps-icon-size-sm: icon size sm (defaultvar(--control-icon-size-xs))--progress-steps-indicator-background: indicator background (defaultvar(--gray-100))--progress-steps-indicator-background-active: indicator background active (defaultvar(--gray-900))--progress-steps-indicator-background-completed: indicator background completed (defaultvar(--gray-900))--progress-steps-indicator-size-lg: indicator size lg (default40px)--progress-steps-indicator-size-md: indicator size md (default32px)--progress-steps-indicator-size-sm: indicator size sm (default24px)--progress-steps-indicator-text: indicator text (defaultvar(--color-text-secondary))--progress-steps-indicator-text-active: indicator text active (defaultvar(--gray-0))--progress-steps-indicator-text-completed: indicator text completed (defaultvar(--gray-0))--progress-steps-minimal-color-completed: minimal color completed (defaultvar(--gray-900))--progress-steps-minimal-color-upcoming: minimal color upcoming (defaultvar(--gray-100))--progress-steps-minimal-gap-lg: minimal gap lg (defaultspacing(1.5))--progress-steps-minimal-gap-md: minimal gap md (defaultspacing(1))--progress-steps-minimal-gap-sm: minimal gap sm (defaultspacing(1))--progress-steps-minimal-height-lg: minimal height lg (default4px)--progress-steps-minimal-height-md: minimal height md (default3px)--progress-steps-minimal-height-sm: minimal height sm (default3px)--progress-steps-minimal-radius: minimal radius (defaultvar(--radius-full))--progress-steps-minimal-width-lg: minimal width lg (default32px)--progress-steps-minimal-width-md: minimal width md (default24px)--progress-steps-minimal-width-sm: minimal width sm (default24px)--progress-steps-row-gap-lg: row gap lg (defaultspacing(8))--progress-steps-row-gap-md: row gap md (defaultspacing(6))--progress-steps-row-gap-sm: row gap sm (defaultspacing(4))--progress-steps-step-padding-lg: step padding lg (defaultspacing(3))--progress-steps-step-padding-md: step padding md (defaultspacing(2))--progress-steps-step-padding-sm: step padding sm (defaultspacing(1.5))--progress-steps-title-color: title color (defaultvar(--color-text))--progress-steps-title-color-inactive: title color inactive (defaultvar(--color-text-tertiary))--progress-steps-title-font-weight: title font weight (defaultvar(--font-weight-medium))