Process order.
Primitive contract
Stepper
Presents process order and current/completed/upcoming state without implying navigation or beginning a product pattern.
Ordered process state · @sanchika/primitivesPurpose and semantics
Presents process order and current/completed/upcoming state without implying navigation or beginning a product pattern.
Recommended semantic: Use an ordered list; expose the current step with aria-current=step on the appropriate item or label.
Anatomy
One process stage.
Visible number or completion symbol.
Visible step state and name.
Finite variants and important states
- Variant · orientation
- horizontal, vertical
- Required states
- complete, current, upcoming, blocked
- Class hooks
.sk-stepper · .sk-stepper__step · .sk-stepper__marker · .sk-stepper__label
Composed synthetic exemplar
Rendered state matrix
Stepper: 4 required states
Each specimen starts from the package-owned example and contract state inventory. Simulated pointer and focus frames are labelled; consumers still verify real interaction in context.
- Source received — complete
- CA review — current
- Decision — upcoming
- Source received — complete
- CA review — current
- Decision — upcoming
- Source received — complete
- CA review — current
- Decision — upcoming
- Source received — complete
- CA review — current
- Decision — upcoming
Accessibility and consumer responsibility
- Static steps are not focusable
- Navigation exists only when consumers provide real links
- Source order is process order
- Expose current step
- State is present in text
- Own process meaning
- Provide navigation only when real
- Keep state labels visible
- Horizontal composition resolves to readable vertical flow without source reordering
No override is required.
- Markers, connectors, and state text retain system-color boundaries
Compact API reference
- Package
@sanchika/primitives- CSS
@sanchika/primitives/styles.css- Contract
primitiveSpecs.find((contract) => contract.name === "Stepper")- Primary class
.sk-stepper