Gauge

A circular visual for conveying a percentage.

Playground

Open Show controls to change the size and value, and to try the options.

64

Sizes

sm, md, lg and xl are 20, 32, 64 and 128px. The default is md.

Show value

showValue prints the number in the center from md up. It never adds a unit; put units in the label beside it.

80
80
80
100

Custom colors

Pass a threshold map keyed by the value where each color starts. This one treats higher usage as worse.

12
50
80
95
100

Indeterminate

A static unknown state: a neutral track with a sparkle in the center. It hides the value and children.

With icon

children renders in the center and wins over showValue. Icons scale with the gauge: 10, 16, 32 and 64px.

Best practices

When to use

  • Use for a 0–100 ratio against a fixed maximum where the comparison is the point — quota usage, hit rate, uptime, or billing-period consumption.
  • For determinate task progress with a known total (uploads, multi-step setup), use a progress bar or Stepper. For binary or enumerated state, use a status pill or Badge.

Behavior

  • Use arcPriority="equal" for true ratios so 50% reads as half. Keep the default primary arc when the filled portion is the story.
  • Threshold colors should match the same numeric breakpoints used elsewhere in the product. Do not invent gauge-only thresholds.
  • Use indeterminate for an unknown value. It is static (track + sparkle) — pair with nearby copy so it does not read as zero.

Content

  • Always pair the gauge with an adjacent label or Tooltip naming the metric. The gauge alone is not self-describing.
  • When showValue is on, render the number only — never inject a % or unit. Put units in the adjacent label.
  • children is reserved for an icon overlay, not units or captions.
  • showValue does nothing at sm; use md or larger when the number must show.

Accessibility

  • The component sets role="progressbar" with aria-valuemin, aria-valuemax, and aria-valuenow. Do not override those.
  • Tie an adjacent label with aria-labelledby, or pass aria-label naming the metric (“Minutes used”); an unlabelled progressbar is announced without context.
  • Do not encode thresholds with color alone; pair warning or danger tints with redundant text.