Prodular UI

Navigation

StepperPro

Shows progress through an ordered flow, horizontal or vertical, with complete, current, upcoming and error states and clickable completed steps.

npx prodular-ui add stepper

Part of Prodular UI Pro. Preview and read the docs freely, install with a license. See pricing

Horizontal

A setup wizard. Completed steps are buttons, so people can go back. It stacks on small screens.

  1. 2, current stepBank accountFor payouts
  2. 3Tax detailsVAT or EIN
  3. 4ReviewConfirm and submit

Connect the account Ledgerline pays out to every Friday.

Vertical with an error

A checklist with descriptions. A failed step shows the error state until it is retried.

  1. , needs attentionVerify the webhook endpointWe could not reach https://api.northwind.io/hooks. It returned 404.
  2. 4Send a test invoiceIssue one invoice in test mode and watch it settle.
  3. 5Go liveSwitch the key to live mode.

Anatomy

<Stepper value={step} onValueChange={setStep} aria-label="Payout setup">  <StepperItem step={0}>    <StepperTrigger>      <StepperIndicator />      <StepperText>        <StepperTitle>Company</StepperTitle>        <StepperDescription>Legal name and address</StepperDescription>      </StepperText>    </StepperTrigger>    <StepperSeparator />  </StepperItem></Stepper>

Guidance

Use it when

  • Flows of three to six steps that must happen in order: onboarding, payout setup, an integration checklist.
  • Vertical when steps need a description or the flow lives in a sidebar.

Avoid

  • Steps that can be done in any order. Use a checklist or tabs.
  • More than six steps. Group them into stages.
  • Letting people jump ahead to upcoming steps. Only completed steps are clickable.

Rules for AI agents

Published in llms-full.txt and the registry, so coding agents follow them when they build with this component.

  • Pass value as the zero-based index of the current step and give every StepperItem its step index.
  • Pass onValueChange to make completed steps clickable. Without it the stepper is display only.
  • Render StepperSeparator in every item except the last.
  • Set status="error" on the step that failed and say why in StepperDescription. Do not use color alone.
  • Give the Stepper an aria-label that names the flow. The current item gets aria-current="step" automatically.
  • Keep titles to one or two words and descriptions to one short line.

API

Stepper

PropTypeDefaultDescription
valuenumberZero-based index of the current step.
onValueChange(step: number) => voidMakes completed steps clickable.
orientation"horizontal" | "vertical""horizontal"Layout. Horizontal stacks below the sm breakpoint.

StepperItem

PropTypeDefaultDescription
stepnumberIndex of this step.
status"complete" | "current" | "upcoming" | "error"Overrides the status derived from value.

StepperIndicator

PropTypeDefaultDescription
childrenReactNodeReplaces the number or icon inside the circle.