The page navigation is complete. You may now navigate the page content as you wish.
Skip to main content

Stepper List

Added in v4.18.1

Lists sequential steps for a user to complete.

Usage

When to use

  • In onboarding, account creation, or initial setups that are broken up into multiple steps.
  • To communicate what has and has not been completed in a multi-step flow.
  • For progress that does not require the user to remain on the current page to complete.

When not to use

  • When the user needs to remain within the step to complete it, use the Stepper Nav.
  • For simple forms or when progress doesn't need to be tracked, use structured page content.

Content

The Stepper List includes a title, an optional description, and a generic slot for content.

Title

Titles provide an overview to help users understand what tasks need to be completed and their purpose within the flow. Titles are required and should be brief.

Description

Descriptions are optional. They can be used to provide additional brief context. If used, we recommend providing a description for all steps.

Do

Ensure inclusion of descriptions is consistent.

A stepper with descriptions for all four steps.

Don’t

Don't mix and match inclusion of descriptions.

A stepper where steps one and four have description but steps two and three only have titles.

Progressive disclosure

We recommend showing the contents of the in-progress step while hiding the contents of other steps. This narrows the focus to the current step and ensures steps are completed in order. However, context from the previous step is sometimes needed for the user to complete the next step, so use your best judgment.

Do

Show the contents of one step at a time.

Stepper with 3 steps. The current active step is step 1 and it has a call to action button in the content for the user to do the action required for the step.

Don’t

Don’t introduce visual noise. Instead, focus the user’s attention on which action should be taken first.

A stepper with 3 steps. The current active step is step 1. Both step 1 and 2 have a call to action button in their content for the user to do the action required for the step.

Using processing status

Set the status as processing to provide the user with immediate feedback when data is submitted within a step.

A Stepper list with two steps. In the first step, the user is pressing a button and the step is in a processing state.

If an error occurs, the error should be displayed within the step and the status should remain in progress.

A Stepper list with two steps. The first step has an errored out form text input with a message explaining how to fix the error.

How to use this component

  1. 0
    One
  2. 0
    Two
  3. 0
    Three
<Hds::Stepper::List @ariaLabel="Basic usage" as |S|>
  <S.Step>
    <:title>One</:title>
  </S.Step>
  <S.Step>
    <:title>Two</:title>
  </S.Step>
  <S.Step>
    <:title>Three</:title>
  </S.Step>
</Hds::Stepper::List>

Indicating status

To change the status of a Step, set the @status argument in the [S].Step contextual component. The default status value is incomplete.

  1. Completed step (complete)
  2. 0
    Current step (current)
  3. 0
    Upcoming step
<Hds::Stepper::List @ariaLabel="Indicating status" as |S|>
  <S.Step @status="complete">
    <:title>Completed step</:title>
  </S.Step>
  <S.Step @status="progress">
    <:title>Current step</:title>
  </S.Step>
  <S.Step>
    <:title>Upcoming step</:title>
  </S.Step>
</Hds::Stepper::List>

A processing status is used to indicate an ongoing process in the background, such as the user's data being submitted.

  1. Completed step (complete)
  2. Current step (in progress)
  3. 0
    Upcoming step
<Hds::Stepper::List @ariaLabel="Processing status" as |S|>
  <S.Step @status="complete">
    <:title>Completed step</:title>
  </S.Step>
  <S.Step @status="processing">
    <:title>Current step</:title>
  </S.Step>
  <S.Step>
    <:title>Upcoming step</:title>
  </S.Step>
</Hds::Stepper::List>

Additional information

Using the named <:title> block is required. Additional information for a step is added through the named blocks <:description> and <:content>.

  1. Completed step (complete)
    Step description
  2. 0
    Current step (current)
    Step description
  3. 0
    Upcoming step
    Step description
<Hds::Stepper::List @ariaLabel="Additional information" as |S|>
  <S.Step @status="complete">
    <:title>Completed step</:title>
    <:description>Step description</:description>
  </S.Step>
  <S.Step @status="progress">
    <:title>Current step</:title>
    <:description>Step description</:description>
    <:content>
      <Hds::Button @text="Do step action" />
    </:content>
  </S.Step>
  <S.Step>
    <:title>Upcoming step</:title>
    <:description>Step description</:description>
  </S.Step>
</Hds::Stepper::List>

Component API

Stepper::List

<[S].Step> yielded component
Stepper::List::Step yielded as contextual component (see below).
titleTag enum
  • div (default)
  • h1
  • h2
  • h3
  • h4
  • h5
  • h6
The HTML tag that wraps the content of each Nav Step title block.
ariaLabel string
Required
The value of the aria-label. If no text value is defined, an error will be thrown.
…attributes
This component supports use of ...attributes.

Contextual components

[S].Step

The Stepper::List::Step component, yielded as contextual component.

<:title> named block
Required
A named block where the title of the step is rendered.
<:description> named block
A named block where the description of the step is rendered.
<:content> named block
A named block where any additional content of the step is rendered.
status enum
  • incomplete (default)
  • progress
  • processing
  • complete
Sets the status of the Step.
…attributes
This component supports use of ...attributes.

Anatomy

Element Usage
Stepper Indicator Required
Title Required
Description Optional
Body Optional; accepts any custom component instance (local or from Helios)
Progress bar Required

States

Stepper list steps only have one state for each of the statuses because they are not interactive.

Conformance rating

Conformant

When used as recommended, there should not be any WCAG conformance issues with this component.

Best Practices

Using processing status

The @status value of "processing" should only be used on a step in relation to a loading or background process or if user interaction is halted until a process completes. Using this status outside these use cases is not conformant.

Applicable WCAG Success Criteria

  • 1.3.1 Info and Relationships (Level A):
    Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text.
  • 1.3.2 Meaningful Sequence (Level A):
    When the sequence in which content is presented affects its meaning, a correct reading sequence can be programmatically determined.
  • 1.4.1 Use of Color (Level A):
    Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element.
  • 1.4.10 Reflow (Level AA):
    Content can be presented without loss of information or functionality, and without requiring scrolling in two dimensions.
  • 1.4.11 Non-text Contrast (Level AA):
    The visual presentation of the following have a contrast ratio of at least 3:1 against adjacent color(s): user interface components; graphical objects.
  • 1.4.12 Text Spacing (Level AA):
    No loss of content or functionality occurs by setting all of the following and by changing no other style property: line height set to 1.5; spacing following paragraphs set to at least 2x the font size; letter-spacing set at least 0.12x of the font size, word spacing set to at least 0.16 times the font size.
  • 1.4.3 Minimum Contrast (Level AA):
    The visual presentation of text and images of text has a contrast ratio of at least 4.5:1
  • 1.4.4 Resize Text (Level AA):
    Except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality.
  • 2.2.2 Pause, Stop, Hide (Level A):
    If you have moving, blinking, scrolling or auto-updating information, read the guidance because there are a lot of details.
  • 2.4.6 Headings and Labels (Level AA):
    Headings and labels describe topic or purpose.

Support

If any accessibility issues have been found within this component, let us know by submitting an issue.

4.18.1

Added new Stepper List component


Related