RingProgress
Renders a circular SVG progress ring composed of one or more colored arc segments. Optionally renders a label in the center — perfect for stats, gauges, and dashboard metrics.
Single segment
<RingProgress sections={[{ value: 65, color: 'blue' }]} />With center label
75%
42%
<RingProgress
sections={[{ value: 75, color: 'violet' }]}
label={<Text fw={700}>75%</Text>}
/>Multi-segment
<RingProgress
size={140}
sections={[
{ value: 40, color: 'blue', tooltip: 'Blue: 40%' },
{ value: 25, color: 'violet', tooltip: 'Violet: 25%' },
{ value: 20, color: 'green', tooltip: 'Green: 20%' },
{ value: 10, color: 'orange', tooltip: 'Orange: 10%' },
]}
/>Round caps and thickness
<RingProgress
sections={[{ value: 60, color: 'blue' }]}
roundCaps
thickness={8}
/>
<RingProgress
sections={[{ value: 60, color: 'teal' }]}
thickness={20}
/>Props
| Prop | Type | Default | Description |
|---|---|---|---|
sections | RingProgressSection[] | — | Arc segment definitions (required). Each has value, color, and optional tooltip |
size | number | 120 | Diameter of the SVG ring in pixels |
thickness | number | 12 | Stroke width of the ring arcs in pixels |
label | ReactNode | — | Content rendered in the center of the ring |
roundCaps | boolean | — | Applies rounded end caps to each arc segment |
rootColor | string | 'var(--dv-color-border)' | Color of the unfilled background track ring |
class | string | — | Additional CSS class names |
style | object | — | Inline styles |