Skip to content
Components

Stepper

Static and interactive workflow steps with horizontal and vertical layouts.

Examples

Controlled vertical workflow

Application state owns navigation while Stepper derives progress and keeps inactive panels mounted.

Composition

Interactive steps

  • <Stepper>
    • <StepperList>
      • <StepperItem>
        • <StepperTrigger>
          • <StepperIndicator />
          • <StepperTitle />
          • <StepperDescription />
          </StepperTrigger>
        • <StepperSeparator />
        </StepperItem>
      </StepperList>
    • <StepperContent />
    </Stepper>

Static steps

  • <Stepper>
    • <StepperList>
      • <StepperItem>
        • <StepperIndicator />
        • <StepperTitle />
        • <StepperDescription />
        • <StepperSeparator />
        </StepperItem>
      </StepperList>
    </Stepper>

Installation

The Control UI source installs this primitive from src/registry/sources/control-ui/ui/stepper.tsx.

Registry command
See registry manifest

Raw code

Primary installed source

src/registry/sources/control-ui/ui/stepper.tsx

Knobs

Typed custom properties the recipe paints with. Set one on the root — style, a utility class, or a skin — and every slot inherits it.

--cui-stepper-* · 10 knobsHow the cascade resolves
--cui-stepper-indicator-radius<length-percentage>9999px
--cui-stepper-indicator-background<color>var(--background)
--cui-stepper-indicator-foreground<color>var(--muted-foreground)
--cui-stepper-indicator-border-color<color>var(--border)
--cui-stepper-indicator-border-width<length>var(--control-rim-width)
--cui-stepper-separator-background<color>var(--border)
--cui-stepper-title-foreground<color>var(--foreground)
--cui-stepper-indicator-size<length-percentage>calc(var(--spacing) * 8)
--cui-stepper-indicator-current-border-width<length>2px
--cui-stepper-title-current-font-weight<number>var(--font-weight-semibold)