Component

Steps

A composable step indicator for multi-stage flows like checkout, onboarding, or wizards. Built from Step, StepIndicator, and content parts.

Vertical

The default orientation. Each step carries a status that styles its indicator.

āœ“

Account

Sign in or create an account to get started.

2

Shipping

Where should we deliver your order?

3

Payment

Review your order and pay securely.

Installation

$pnpm add @refraction-ui/react-steps

Usage

tsx
import {
  Steps,
  Step,
  StepIndicator,
  StepContent,
  StepTitle,
  StepDescription,
} from '@refraction-ui/react'

export function Checkout() {
  return (
    <Steps orientation="vertical">
      <Step status="completed">
        <StepIndicator status="completed">āœ“</StepIndicator>
        <StepContent>
          <StepTitle>Account</StepTitle>
          <StepDescription>Sign in to get started.</StepDescription>
        </StepContent>
      </Step>
      <Step status="active">
        <StepIndicator status="active">2</StepIndicator>
        <StepContent>
          <StepTitle>Shipping</StepTitle>
          <StepDescription>Where should we deliver?</StepDescription>
        </StepContent>
      </Step>
      <Step status="upcoming">
        <StepIndicator status="upcoming">3</StepIndicator>
        <StepContent>
          <StepTitle>Payment</StepTitle>
        </StepContent>
      </Step>
    </Steps>
  )
}

Horizontal

Set orientation="horizontal" to lay steps out in a row.

āœ“

Account

2

Shipping

3

Payment

Steps props

PropTypeDefaultDescription
orientation'vertical' | 'horizontal''vertical'Layout direction of the step list.
classNamestring--Additional CSS classes to apply to the container.

Step props

Step and StepIndicator share the same status prop. StepContent, StepTitle, and StepDescription accept standard HTML attributes.

PropTypeDefaultDescription
status'completed' | 'active' | 'upcoming''upcoming'Drives the styling of the step and its indicator (completed fills the indicator, active outlines it, upcoming is muted).
classNamestring--Additional CSS classes to apply.