Activity Gauge

Concentric SVG progress rings for comparing a few percentages at a glance, with an optional centre slot.

tsx
import { ActivityGauge } from "@pestoui/core"

Rings & centre slot

Rings paint outermost first. Anything passed as children sits in the innermost opening.

78%Resolved

With legend

showLegend prints a dot, label and rounded percentage per ring, and moves the reading out of the SVG label.

  • Uptime92%
  • Token budget61%
  • Error rate33%

Size & thickness

A single thick ring makes a compact dial; thickness and gap default off size.

42%
88%

Props

PropTypeDefaultDescription
rings{ value: number; tone?: "info" | "success" | "warning" | "destructive"; label?: string }[]—One arc per entry, outermost first. value is 0–100 and is clamped.
sizenumber160Outer diameter in px.
thicknessnumbermax(6, size / 14)Stroke width of each ring in px.
gapnumbermax(2, thickness * 0.4)Space between concentric rings in px.
showLegendbooleanfalseRender a dot / label / percentage list under the rings.
childrenReactNode—Centre slot, inset to the innermost ring's opening — usually a total.

Pesto UI · 117 documented components