Progress & Meter
Progress bars and meters visualize completion and measurement. Progress tracks how far a task has advanced toward completion; meter displays a value within a known range.
Use progress for tasks that have a beginning and end, and meter for static measurements within a defined range, when authored technical or reporting content inside Prose needs a native visual indicator.
When to use
Progress
A task is underway and the reader benefits from knowing how far along it is — uploading documents, processing submissions, completing a multi-step form.
Indeterminate progress
A task is running but the duration is unknown — waiting for a server response, background processing.
Meter
Displaying a measurement within a known range — a bank's capital ratio against regulatory minimums, storage capacity, compliance score.
Examples
- Determinate progress communicates known completion toward a finish line.
- Indeterminate progress is honest about work in flight when you cannot predict duration.
- Meter communicates a current value within a range rather than progress toward completion.
Best practices
Always pair the bar with a label and text value
Always pair a progress bar or meter with a visible label and text value — "75 of 100 items processed (75%)."
Don't show a bar without context
A bare bar is ambiguous — users cannot tell what is being measured, what the scale is, or how far along the task is without a label and value.
Use meter for static measurements
Use meter (not progress) for static measurements — compliance scores, capital ratios, capacity levels.
Don't use progress for values that aren't progressing
Progress implies a task moving toward completion. A static measurement like a compliance score should use meter instead.
Use indeterminate progress for unknown durations
Use indeterminate progress when the task is running but the duration is unknown.
Don't fake a percentage
A fabricated number erodes trust. An honest indeterminate bar tells the user the task is running without making promises about when it will finish.
Use meter ranges to communicate status
Use meter's optimum, suboptimum, and sub-sub-optimum ranges to color-code whether a value is acceptable (green), concerning (yellow), or critical (red).
Don't rely on color alone
Color-blind users and those in high-contrast mode cannot distinguish green from red. The numeric value and label text must convey the same status information the color does.
Content guidelines
"Call Reports submitted — 847 of 1,200 (71%)"
"Progress: 71%"
"Tier 1 capital ratio: 12.4% (well-capitalized minimum: 6%)"
"Ratio: 12.4%"
Accessibility
- Every progress bar and meter needs a visible label. The label connects the visual bar to its meaning for all users.
- The text value provides the information screen readers announce. The text value (e.g., "75 of 100") provides the information screen readers announce. Don't rely on the visual bar alone.
- Indeterminate progress respects reduced motion. Indeterminate progress bars use animated stripes to show activity. Users who prefer reduced motion see a static striped pattern instead.
- Meter color changes must be paired with numeric values. Meter color changes (green/yellow/red) must be paired with the numeric value — color alone does not convey whether a value is good or bad.