
Progress bars visualize the expected time for a user to complete a process. They help the user anticipate how much time is needed to reach an end state. Progress bars should be visible, readable, and accurately reflect the progress made towards an end state.
- Track: Illustrates the length of the process.
- Indicator: Forward and backward movement to show where the user is in the process versus what they’ve completed.
- Value label: Numeric values to describe the number of steps total, remaining, and completed.
- Label (optional): Describes a specific step or summarizes the overall process to orient users. Label should be a max of 35 characters.
Variants
Step
- The value label should reflect the type of steps (e.g. "Step X of Y" or "Section X of Y").
- If a label is specified, it is separated from the value label with a colon (e.g. "Step X of X: Title").
Percentage
- The value label will show a percentage from 0-100%.
- If a label is specified, it is separated from the value label with a dot ("•") (e.g. "Home information • 20% completed").
Design guidelines
Show users how long the process takes to complete

Do
Clearly state how much time is remaining in the process.Help users navigate the process

Do
Use an affordance that allows a user to move to a previous question, next question, or exit the process.
Don't
Move the indicator backward unless the user chose to move to the previous question.Keep progress bars clearly visible and readable

Do
Place the progress bar at the top of the page and and in close proximity of page content.
Don't
Place the progress bar below questions or directly above back/controls.Development
import ProgressBar from '@nerdwallet/react-progress-bar';<ProgressBar />;
Customizing the value label
When using the step
variant of this component, you can use the stepLabel
and separator
props to influence how the value label is rendered.
Props
<ProgressBar>
className
string
max
= 100
number
label
string
value
number
Required
variant
= 'step'
'step' | 'percentage'
separator
= ' of '
string
stepLabel
= 'Step'
string