Skip to content
Forms

Stepper

Multi-step wizard progress with optional clickable steps.

Import

tsx
import { Stepper, StepperList, StepperItem, StepperIndicator, StepperSeparator, StepperTitle, StepperDescription } from "@cronus-ui/ui";
bash
npx cronus-ui add stepper

Examples

.cronus

The same component declared in Cronus. Emitted at build time from the audit fixtures — the kernel renders it as HTML with no React.

PortedParity: MatchGeometry 1/1Pixel diff 0 pxLogic 1/1Parity scoreboard
default.cronus
app "audit-fixtures" {
  port 5176
}

style {
  preset aurora
  theme dark
}

component StepperDefault layout:inline style:stepper {
  label "Onboarding"
  text "Account"
  text "Shipping"
}

page "/audit/stepper/default" type:custom {
  use StepperDefault
}

API Reference

Generated from the component's exported types.

StepperLabels

Skip StepperLabels props table
PropTypeDefaultDescription
completed*
string—Announced after a completed step.
current*
string—Announced after the active step.
upcoming*
string—Announced after a step that has not started yet.

StepperProps

Extends Omit<HTMLAttributes<HTMLDivElement>, "onChange">

Skip StepperProps props table
PropTypeDefaultDescription
value
number—Controlled active step index. When provided the stepper is fully controlled.
defaultValue
number0Initial active step index for the uncontrolled case. Defaults to `0`.
onValueChange
(value: number) => void—Called whenever a step should become active (controlled or not).
orientation
StepperOrientation"horizontal"Layout axis. Defaults to `"horizontal"`.
labels
Partial<StepperLabels>—Localize the sr-only step-state announcements. See .
className
string—Additional class names merged onto the root.
children
ReactNode—Contents of the component.
id
string—DOM id of the root element.

StepperItemProps

Extends HTMLAttributes<HTMLLIElement>

Skip StepperItemProps props table
PropTypeDefaultDescription
step*
number—This step's zero-based index. Required so the item can derive its state (completed / active / upcoming) from the stepper's active value.
completed
boolean—Mark the step done explicitly. Overrides the index-derived "completed".
disabled
booleanfalseDisable interaction + dim the step.
className
string—Additional class names merged onto the root.
children
ReactNode—Contents of the component.
id
string—DOM id of the root element.

StepperIndicatorProps

Extends HTMLAttributes<HTMLSpanElement>, Omit<VariantProps<typeof stepperIndicatorVariants>, "state">

Skip StepperIndicatorProps props table
PropTypeDefaultDescription
children
HTMLAttributes<HTMLSpanElement>["children"]—Override the auto-rendered content (step number / check).
asChild
boolean—Render as the child element via Slot.
className
string—Additional class names merged onto the root.
id
string—DOM id of the root element.

StepperTriggerProps

Extends ButtonHTMLAttributes<HTMLButtonElement>

Skip StepperTriggerProps props table
PropTypeDefaultDescription
type
string—Native type of the underlying element.
disabled
boolean—Disables pointer and keyboard interaction.
onClick
(event: MouseEvent) => void—Click handler.
children
ReactNode—Contents of the component.
className
string—Additional class names merged onto the root.

StepperListProps

Extends OlHTMLAttributes<HTMLOListElement>

Skip StepperListProps props table
PropTypeDefaultDescription
children
ReactNode—Contents of the component.
className
string—Additional class names merged onto the root.
start
number——

StepperSeparatorProps

Extends HTMLAttributes<HTMLDivElement>

Skip StepperSeparatorProps props table
PropTypeDefaultDescription
className
string—Additional class names merged onto the root.
children
ReactNode—Contents of the component.
id
string—DOM id of the root element.

StepperTitleProps

Extends HTMLAttributes<HTMLDivElement>

Skip StepperTitleProps props table
PropTypeDefaultDescription
className
string—Additional class names merged onto the root.
children
ReactNode—Contents of the component.
id
string—DOM id of the root element.

StepperDescriptionProps

Extends HTMLAttributes<HTMLDivElement>

Skip StepperDescriptionProps props table
PropTypeDefaultDescription
className
string—Additional class names merged onto the root.
children
ReactNode—Contents of the component.
id
string—DOM id of the root element.