Skip to main content

Step indicator

Show the user's position in and progress through a multi-step process

Overview #

Use the step indicator component to show the user’s position in and progress through a multi-step process.

Step indicators are often used on application forms or workflow screens.

Examples #


<ol class="rvt-steps">
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Create username</span>
<span class="rvt-steps__indicator"><span class="rvt-sr-only">Step</span> 1</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content" aria-current="step">
<span class="rvt-steps__label">Personal information</span>
<span class="rvt-steps__indicator">2</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Records and transcripts</span>
<span class="rvt-steps__indicator">3</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Supporting documents</span>
<span class="rvt-steps__indicator">4</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Confirmation</span>
<span class="rvt-steps__indicator">5</span>
</a>
</li>
</ol>
<ol class="rvt-steps rvt-steps--vertical">
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Create username</span>
<span class="rvt-steps__indicator"><span class="rvt-sr-only">Step</span> 1</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content" aria-current="step">
<span class="rvt-steps__label">Personal information</span>
<span class="rvt-steps__indicator">2</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Records and transcripts</span>
<span class="rvt-steps__indicator">3</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Supporting documents</span>
<span class="rvt-steps__indicator">4</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Confirmation</span>
<span class="rvt-steps__indicator">5</span>
</a>
</li>
</ol>
<ol class="rvt-steps">
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Create username</span>
<span class="rvt-steps__indicator rvt-steps__indicator--success"><span class="rvt-sr-only">Step</span> 1</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content" aria-current="step">
<span class="rvt-steps__label">Personal information</span>
<span class="rvt-steps__indicator">2</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Records and transcripts</span>
<span class="rvt-steps__indicator rvt-steps__indicator--warning">3</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Supporting documents</span>
<span class="rvt-steps__indicator rvt-steps__indicator--danger">4</span>
</a>
</li>
<li class="rvt-steps__item">
<a href="#" class="rvt-steps__item-content">
<span class="rvt-steps__label">Confirmation</span>
<span class="rvt-steps__indicator">5</span>
</a>
</li>
</ol>

Usage #

Do

  • Use to show the user's position in a multi-step process
  • Use to split a long form across multiple pages
  • Use to reassure the user that they're making progress
  • Keep step labels brief
  • Link markers for completed steps back to the pages for those steps

Don't

  • Provide links to future steps before the user has completed the current step
  • Use for section navigation—use breadcrumbs, a sidenav, or a subnav instead
  • Use for normal lists—use the list component instead
  • Use to display a list of events in chronological order—use a timeline instead

Accessibility #

  • Avoid redundant “step” labels. Use the aria-hidden="true" attribute to hide elements with the .rvt_steps__indicator class from screen readers if the element with the .rvt_steps__label class already has the step number in it.