Options
With multiple segments
A progress bar may use segments to represent multiple parts of a whole.
Tasks: 8 completed, 3 in progress, 2 pending
Completed (8)
In Progress (3)
Pending (2)
Color
The color of the filled part(s) of the progress bar may be customized. Default to using success.emphasis for a single segment.
Success (default): 70%
Accent: 85%
Attention: 45%
Size
The size may be adjusted to adapt the progress bar to different contexts.
Small
Medium (default)
Large
Width
By default, a progress bar will fill its parent. However, a progress bar can be any width.
Full width
Custom width (300px)
Accessibility
Key accessibility considerations:
- When rendering multiple segments, segment colors should have a 3:1 contrast ratio with adjacent segments
- Progress bars can only be interpreted by sighted users - include text descriptions for screen readers
- Use descriptive text like "tasks: 8 of 10 complete" for single segments
- For multiple segments: "tasks: 80 done, 14 in progress, 6 open"
- Don't use redundant labels if progress value is already shown as adjacent text
Good accessibility example
File upload progress: 8 of 10 files complete
Multiple segments with proper labeling
Project status: 45 tasks done, 25 in progress, 30 remaining
Done (45)
In Progress (25)
Remaining (30)
Resources
React component documentation | Rails component documentation | Figma design file | Accessibility guidelines
Feedback
Help us improve this component by providing feedback, asking questions on Slack, or updating this file on GitHub.