Steps component overview
Use
bq-step-item inside bq-steps. The parent component passes type, orientation, size, and divider settings down to each step item.When to use
Use steps when
- Users need to complete a sequential, multistep process
- The workflow has a clear order and progress state
- Users benefit from seeing current, completed, remaining, or error states
Do not use steps when
- Users can complete tasks in any order
- The process has only one or two simple actions
- A status message or progress bar communicates the state more clearly
Patterns
Multistep forms
Split long forms into clear stages so users can see what is complete, where they are, and what remains.
Onboarding and wizards
Guide users through setup flows where each step depends on the previous one.
Process overviews
Summarize a task, service, or project flow when readers need the full sequence before they start.
Progress tracking
Show completed, current, upcoming, blocked, or disabled stages in a process that changes over time.
Anatomy
Steps component anatomy
Design guidelines
Label and icon
Labels describe each step, while icons provide visual cues. Use meaningful titles and reserve icons for cases where the symbol helps users understand the action or context.Usage
Start withbq-steps and one bq-step-item for each stage. There are three types of steps: numeric, dot, and icon.
Numeric
Start with the numeric type to show a clear sequence and position in the process. Each step should have a number prefix that matches its order.Dot
Usetype="dot" for a minimal progress indicator when the sequence is clear and the step labels carry most of the meaning.
Icon
Usetype="icon" when each step benefits from a recognizable symbol. Icons should support the label, not replace it.
Status
Use thestatus attribute to show progress and guide users through the process.
The current step should be visually distinct from completed and remaining steps.
Options
Orientation
Useorientation="vertical" when the process should unfold from top to bottom or when labels and descriptions need more room.
Size and divider color
Usesize="small" in compact layouts. Use divider-color with a declarative color token when the connector needs a different emphasis.
Best practices
DoUse one steps component per page so the process stays clear and cohesive.
Don’tAvoid multiple steppers in the same view because they can compete for attention and disrupt the flow.
DoWrite labels that describe the task or destination for each step.
Don’tAvoid labels that only repeat the status, such as current or completed.
DoConfirm progress with status, text, and icon changes after a step is completed.
Don’tDo not rely on color alone to communicate the state of a step.
DoKeep the number of steps manageable so users feel the process is achievable.
Don’tAvoid turning long or non-linear workflows into a single rigid step sequence.
Accessibility
Thebq-steps container renders with role="list", and each bq-step-item renders with role="listitem" around an interactive button. The current step maps to aria-current="step", and disabled items use the native disabled button state.
- Keyboard - users can move through step items with Tab and Shift + Tab. They can activate an enabled step with Enter or Space.
- Current step - set
status="current"on one step item so assistive technology can announce the current position. - Status communication - pair color with text, icon shape, or description changes so users do not need color perception to understand progress.
- Icons and numbers - mark decorative icons with
aria-hidden="true". When numeric prefixes are used, provide anaria-labelsuch asStep 1. - Descriptions - use the
descriptionslot when users need more context about a step, an error, or the expected next action.
API reference
Properties
bq-steps
bq-step-item
Slots
bq-steps
bq-step-item
Shadow parts
bq-steps
bq-step-item
Events
bq-step-item
- In React, prefix events with
on:onBqClick,onBqFocus,onBqBlur. - In Angular, use event binding syntax:
(bqClick),(bqFocus),(bqBlur). - In Vue, use the
@shorthand:@bqClick,@bqFocus,@bqBlur.
Methods
bq-steps
CSS custom properties
bq-steps
bq-step-item
Resources
Interactive playground
Explore Steps variants and states in Storybook
Source code
View the component source on GitHub