AhaSlides Design
v0.52.0React · Vue · Lit

Components · Navigation

Steps

Show progress through a sequence of ordered stages — wizards, onboarding, checkouts — rendered through the shared Steps.

Examples

API

PropTypeDefaultNotes
currentnumber0Zero-based index of the active step
items{ title, description?, icon? }[][]The ordered stages
directionhorizontal | verticalhorizontalLayout axis
sizedefault | smalldefaultStep scale
progressDotbooleanfalseRender a compact dot rail instead of numbered icons
statuswait | process | finish | errorprocessState of the current step — error paints it red
onChange(current) => voidFires when a step is clicked (if navigable)

Install

# .npmrc — once: point the @ahaslides-product scope at GitHub Packages
@ahaslides-product:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}   # a GitHub token with read:packages

npm i @ahaslides-product/design
import '@ahaslides-product/design/tokens.css';   // once, at the app root
import '@ahaslides-product/design/steps-theme';   // registers <steps>

Agent feed for this component (absolute, fetchable anywhere): steps.agent.json · steps.md · steps.llms.txt

When to use

When to use
  • Steps — a linear sequence of stages where the user should see where they are and what's left
  • Tabs — peer views the user switches between freely — no order, no progress
  • Progress — a single continuous completion metric, not discrete named stages
Keep titles to a short noun phrase per stage. Reserve Steps for genuinely ordered flows — if the sections have no order, use Tabs. Show a description only when the title alone is ambiguous.
Surfaces
editor dashboard settings

Spec

Icon 32px circle · brand #6A1EBB for current/finished · Current filled brand icon + brand title · Finished brand ring + check · Waiting muted ring + grey title · Layout horizontal (default) or direction=vertical · Size default (32 icon) or size=small (24 icon) · Style numbered icon (default) or progressDot for a compact dot rail · Error status=error paints the current step red (colorError)