Steps component overview
bq-steps, containing bq-step-item). BEEQ has no separate Stepper component.
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.
Allowed type values: numeric, icon, dot. The prop has no declared default. A value outside this list falls back to numeric and logs a console warning.
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 must be visually distinct from completed and remaining steps.
Allowed status values: default (default), current, completed, error, disabled. Set status on bq-step-item, not on bq-steps.
Options
Orientation
Allowedorientation values: horizontal (default), vertical.
Use orientation="vertical" when the process should unfold from top to bottom or when labels and descriptions need more room.
Size and divider color
Allowedsize values: medium (default), small.
Allowed divider-color values: any color token as a string (default stroke--primary).
Use size="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 Steps components 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.
- Current step - you must set
status="current"on one step item so assistive technology can announce the current position. - Status communication - you must pair color with text, icon shape, or description changes so users do not need color perception to understand progress.
- Icons and numbers - you must mark decorative icons with
aria-hidden="true". When numeric prefixes are used, you must provide anaria-labelsuch asStep 1. - Descriptions - you should use the
descriptionslot when users need more context about a step, an error, or the expected next action.
Keyboard interaction
Eachbq-step-item renders a native button.
A step item with
status="disabled" is not focusable and does not emit bqClick. Activating the current step item does nothing.
Rules
API reference
Properties
bq-steps
bq-step-item
Invalid combinations
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