Skip to main content

Step Indicator

A step indicator updates users on their progress through a multi-step process.



Default Step Indicator

Component Preview

  1. Personal information completed
  2. Household status completed
  3. Supporting documents
  4. Signature not completed
  5. Review and submit not completed

Step 3 of 5 Supporting documents


Component Code

<div class="usa-step-indicator"> <ol class="usa-step-indicator__segments"> <li class="usa-step-indicator__segment usa-step-indicator__segment--complete"> <span class="usa-step-indicator__segment-label"> Personal information <span class="usa-sr-only">completed</span> </span> </li> <li class="usa-step-indicator__segment usa-step-indicator__segment--current" aria-current="true"> <span class="usa-step-indicator__segment-label">Supporting documents</span> </li> <li class="usa-step-indicator__segment"> <span class="usa-step-indicator__segment-label"> Signature <span class="usa-sr-only">not completed</span> </span> </li> </ol> <div class="usa-step-indicator__header"> <h4 class="usa-step-indicator__heading"> <span class="usa-step-indicator__heading-counter"> <span class="usa-sr-only">Step</span> <span class="usa-step-indicator__current-step">2</span> <span class="usa-step-indicator__total-steps">of 3</span> </span> <span class="usa-step-indicator__heading-text">Supporting documents</span> </h4> </div> </div>


No Labels

Component Preview

  1. Personal information completed
  2. Household status completed
  3. Supporting documents
  4. Signature not completed
  5. Review and submit not completed

Step 3 of 5 Supporting documents


Component Code

<div class="usa-step-indicator usa-step-indicator--no-labels"> <ol class="usa-step-indicator__segments"> <!-- segments --> </ol> <div class="usa-step-indicator__header"> <!-- heading --> </div> </div>


Centered

Component Preview

  1. Personal information completed
  2. Household status completed
  3. Supporting documents
  4. Signature not completed
  5. Review and submit not completed

Step 3 of 5 Supporting documents


Component Code

<div class="usa-step-indicator usa-step-indicator--center"> <ol class="usa-step-indicator__segments"> <!-- segments --> </ol> <div class="usa-step-indicator__header"> <!-- heading --> </div> </div>


Counters

Component Preview

  1. Personal information completed
  2. Household status completed
  3. Supporting documents
  4. Signature not completed
  5. Review and submit not completed

Step 3 of 5 Supporting documents


Component Code

<div class="usa-step-indicator usa-step-indicator--counters"> <ol class="usa-step-indicator__segments"> <!-- segments --> </ol> <div class="usa-step-indicator__header"> <!-- heading --> </div> </div>


Small Counters

Component Preview

  1. Personal information completed
  2. Household status completed
  3. Supporting documents
  4. Signature not completed
  5. Review and submit not completed

Step 3 of 5 Supporting documents


Component Code

<div class="usa-step-indicator usa-step-indicator--counters-sm"> <ol class="usa-step-indicator__segments"> <!-- segments --> </ol> <div class="usa-step-indicator__header"> <!-- heading --> </div> </div>



Guidance

When to use the step indicator component

Multiple steps and screens
Use the step indicator when the user is working through a form or process that will span several different pages that can be organized into three or more high-level steps or chapters.
Linear progression
The step indicator is designed to complement standard back/next navigation in a linear sequence, not to be navigation of its own.

When to consider something else

Long forms with conditional logic
Consider another approach if the number of steps might change due to user input.
Nonlinear progression
The step indicator isn't appropriate for nonlinear forms or interactions that might be completed in any order.
Very short forms
Don't use a step indicator for short forms without chapters or sections. If a form or process has fewer than three sections, don't use a step indicator.

Usability guidance

Indicate where a user is in the process
Use a color and text treatment for the current step segment that is distinct from both the completed and pending step segments.
Use short or single-word labels
If labelling the step indicators, stick to very short words.
Provide navigation separately
Use navigation like a button group to step forward and backward through a form.
Place a heading directly below the step indicator
Each step needs an explicit heading. The step indicator segments are not sufficient as a heading for a page or screen.

Accessibility guidance

Use semantic heading levels
Though the default code uses an <h4>, use the correct heading level in your own implementation.
Use visually hidden text on labels
Use visually hidden text to make the completion status of each step explicit.
Indicate the current step
When using labeled segments, use aria-current="true" on the list item representing the current step.



Settings

Variable Description
$step-indicator-background-color

Background color of the component and the gaps around the counters.

$theme-step-indicator-counter-gap

Gap between the counter and the segment.

$theme-step-indicator-font-family

Font family of the labels and counter numbers.

$theme-step-indicator-heading-font-family

Font family of the heading.

$theme-step-indicator-heading-color

Color of the heading.

$theme-step-indicator-segment-color-pending

Color of pending step segments.

$theme-step-indicator-segment-color-complete

Color of complete step segments.

$theme-step-indicator-segment-color-current

Color of the current step segment.




Variants

Variant Class Description
No labels usa-step-indicator--no-labels Don't show step labels.
Counters usa-step-indicator--counters Show step counters.
Small counters usa-step-indicator--counters-sm Show small step counters.
Centered usa-step-indicator--center Center counters and labels in each step.
Looking for U.S. government information and services?
Visit USA.gov