Skip to content
Velkin LogoVelkin Logo
Velkin
VELKIN/UI

Modern UI components for product teams and their AI agents. Lit core, typed wrappers, live MCP.

sales@velkinui.com

Product

  • Docs
  • Components
  • Studio
  • Pricing

Resources

  • Quick start
  • Blog
  • Changelog
  • Roadmap
  • Status

Project

  • About
  • Contact
  • License
  • Privacy
  • Terms

© 2026 Velkin. MIT core · Pro licenses available.

VELKIN

Steps

A steps component with horizontal or vertical multi-step navigation.

vu-steps · @velkin/react/steps

Copy page

Import

React
npm i @velkin/react

import { VuSteps } from "@velkin/react/steps";

Examples

API

Tables match the member selected under Import.

Props

PropTypeDefaultDescription
stepsVuStepStateItem[][]Step list when the default slot has no `<vu-step-item>` children.
currentStepnumber1Active step index (1-based).
defaultCurrentStepnumber1Initial / reset step for `reset()`.
lastCompletedStepnumber0Furthest step the user may advance to when `allowStepJump` is false; `0` derives from `currentStep`.
layoutVuStepsLayout"horizontal"`horizontal` (default) or `vertical`.
labelPlacementVuStepsLabelPlacement"inline"`inline` (default) or `below` the node.
sizeVuStepsSize"md"`sm`, `md` (default), or `lg`.
variantVuStepsVariant"default"`default`, `dots`, or `progress`.
allowStepJumpbooleantrueWhen false, only adjacent / completed steps are reachable.
hideNumbersbooleanfalseShow bullets instead of numbers when no icons are set.
showLabelsbooleantrueShow step labels beside indicators. Default: true.
compactbooleanfalseTighter spacing between steps.
readonlybooleanfalseProgress display only; steps are not interactive.
expandAllbooleanfalseKeep every vertical step panel open (docs / overview).
labelstring""Accessible name for the step navigator.
completedStepsnull | number[]nullExplicit completed indices; overrides auto completion.
stepIconstring""Default inactive icon for all steps.
checkedIconstring""Default completed icon for all steps.
errorIconstring""Default error icon for failed steps.

Events

EventDetailDescription
vu-changeVuStepsChangeDetailUser-driven step changes; call `detail.cancel()` to block.

Slots

SlotDescription
beforeContent before the step navigator.
afterContent after the step navigator.
—- `<vu-step-item>` steps; when assigned, replaces the `steps` prop.

CSS parts

PartDescription
stepsHorizontal step navigator row.
panelsPanel stack container.
panelIndividual step panel.
baseStep header button (prop mode).
nodeCircular step indicator (prop mode).
labelsLabel stack (prop mode).

Methods

MethodDescription
previous- Moves to the previous enabled step.
next- Moves to the next enabled step.
prevStep- Alias for `previous()`.
nextStep- Alias for `next()`.
goToStep- Navigates to a target step when allowed.
getCurrentStep- Returns the current 1-based step index.
focusStep- Focuses the header for the current step.
reset- Restores `currentStep` from `defaultCurrentStep`.

Types

NameDefinition
number[] | null
null | number[]
VuStepsChangeDetail
{ step: number; previous: number; cancel: () => void; }
VuStepsLabelPlacement
"inline" | "below"
VuStepsLayout
"horizontal" | "vertical"
VuStepsSize
"sm" | "md" | "lg"
VuStepsVariant
"default" | "dots" | "progress"

Related

Companions

  • Step Item`vu-step-item`

Navigation

  • Adaptive BarA responsive toolbar component that overflows extra items into a menu.
  • AppbarAn application bar component with start, center, and end slots.
  • BreadcrumbA breadcrumb component for navigation trails with optional collapse.
  • Context MenuA context menu component with grouped actions and icons.
  • DropdownA dropdown menu component with trigger slot and keyboard navigation.
  • MenubarA menubar component with nested submenus and keyboard navigation.

Guides

  • AccessibilityFocus and naming
  • SlotsHeader, body, and item slots

Browse

  • Previous: SpeeddialEarlier in the sidebar
  • Next: TabLater in the sidebar
  • All componentsBrowse the full index