Skip to main content
BEEQ Steps component overview

Steps component overview

Steps guide users through a sequential process such as a wizard, onboarding flow, or multistep form. Use them to show progress, the current step, completed steps, and steps that still need attention.
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

BEEQ Steps component anatomy

Steps component anatomy

Steps are composed of a label or prefix, title, optional description, and divider. Together they communicate position, meaning, and progress through the process.

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 with bq-steps and one bq-step-item for each stage. There are three types of steps: numeric, dot, and icon.
You must specify the type you want to use on bq-steps. If you don’t, the default styles will apply, but it may not match your content or design intent.

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

Use type="dot" for a minimal progress indicator when the sequence is clear and the step labels carry most of the meaning.

Icon

Use type="icon" when each step benefits from a recognizable symbol. Icons should support the label, not replace it.

Status

Use the status attribute to show progress and guide users through the process. The current step should be visually distinct from completed and remaining steps.
The status should be applied to the bq-step-item element. This ensures that the entire step, including the label and description, reflects the current state.

Options

Orientation

Use orientation="vertical" when the process should unfold from top to bottom or when labels and descriptions need more room.
Vertical steps adapt to the height of their container. You must ensure that the container holding the steps has enough block size to allow the divider to span the desired area.

Size and divider color

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 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

The bq-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 an aria-label such as Step 1.
  • Descriptions - use the description slot 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