Skip to content
Cuelark UI
NavigationAnimated

Stepper

Multi-step progress with an ink-filling connector.

A stepper shows progress through a multi-step flow: onboarding, checkout, setup wizards. Completed steps turn into checks, the current step glows, the connector fills like ink toward it, and completed steps can be clickable.

Preview

  1. AccountName and email
  2. 02
    WorkspaceTeam and URL
  3. 03
    BillingPlan and card
  4. 04
    DoneInvite your team

Installation

pnpm dlx shadcn@latest add https://ui.cuelark.com/r/stepper.json

The CLI also installs the Cuelark theme tokens, the GSAP motion layer. With the @cuelark namespace configured, use @cuelark/stepper.

Builds on: motion

Usage

import { Stepper } from "@/components/ui/stepper";

<Stepper steps={[{ title: "Account" }, { title: "Billing" }]} current={0} />

Motion

How it moves

Connectors fill toward the current step and its marker pops (GSAP).

Scale it with --cl-motion (0 off, 1 default, 1.5 expressive) on any ancestor. Reduced-motion preferences always switch it off.

API reference

Stepper

PropTypeDefaultDescription
steps{ title; description? }[]—The steps.
currentnumber—Zero-based current step.
orientation"horizontal" | "vertical""horizontal"Layout.
onStepClick(index: number) => void—Makes completed steps clickable.

Accessibility

  • An ordered list; the current step has aria-current="step".
  • Clickable steps are buttons with a descriptive label.

FAQ

Also searched as: react stepper · multi step form · wizard component · progress steps · checkout steps