Gauge
A circular visual for conveying a percentage.
Arc priority
When using the gauge to display a ratio, use the equal arc priority to make both arcs are equally sized.
Best Practices
When to use
- A 0–100 ratio against a fixed maximum where the comparison is the point, like quota usage, build cache hit rate, uptime, or billing-period consumption.
- For determinate task progress with a known total (uploads, multi-step setup), use Progress.
- For binary or enumerated state, use Status Dot for deployments or Badge for everything else.
Behavior
- Use
arc="equal"for true ratios so 50% reads as exactly half. Use the defaultprimaryarc for single-percentage usage where the filled portion is the story. - Threshold colors should match the same numeric breakpoints used elsewhere in the product (
>=80%warning,>=95%error). Don’t invent gauge-only thresholds. - Pair
indeterminatewith explanatory copy nearby (Calculating usage…) so the user knows the value is loading, not zero.
Content
- Always pair the gauge with an adjacent label or Tooltip naming what the number represents (
Build Cache Hit Rate). The gauge alone is not self-describing. - Don’t put units inside
children; the label carries the unit (Uptime · 99.97%).childrenis reserved for an icon overlay. - When
showValueis on, the rendered number is the value only. Never inject a%or unit string into the prop.
Accessibility
- The component sets
role="progressbar"witharia-valuemin,aria-valuemax, andaria-valuenow. Don’t override those. - The adjacent label is the gauge’s accessible name. Tie it with
aria-labelledbyon the gauge wrapper so screen readers read “Uptime, 99 percent.” - Don’t use color to encode the threshold without redundant text; pair the warning tint with copy below or in the Tooltip.
Was this helpful?