ProgressDots
Step progress indicator driven by current: completed steps and the current
step render as expanded pills, pending steps as small dots. Passing
onDotClick makes dots interactive step-navigation targets; labels surface
as hover tooltips.
Usage
import { ProgressDots } from "@desk/ui/components/progress-dots";Best practices
Use
ProgressDotsfor position in a short stepped flow (wizard, carousel); continuous 0–100 completion isProgress.Pass
onDotClickonly when steps are genuinely navigable — it turns each dot into a focusable button;labelssurface as hover tooltips.Mount
ReducedMotionProviderat the app root — the dots animate viam.*(LazyMotion).
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| className | string | Additional CSS classes | |
| current | number | Current step (0-indexed) | |
| labels | string[] | Labels for each step (shown in tooltips) | |
| onDotClick | (index: number) => void | Callback when a dot is clicked. If provided, dots become clickable. | |
| total | number | Total number of steps |
Composition
Builds on