value/min/max/variant API as Progress but takes up less horizontal space, making it ideal for dashboards and status panels.
Basic Usage
Sizes
Three sizes control the ring diameter:sm (64px), default (96px), and lg (128px).
Variants
Semantic variants color the filled arc to communicate meaning at a glance:Thickness
Thethickness prop controls the stroke width of the ring arc. The default is 6.
Indicator Class
indicator_class applies Tailwind classes directly to the filled arc, just like Progress’s indicator_class targets the bar. The Ring wrapper acts as a group, so group-hover: classes let you trigger effects when hovering anywhere on the ring.
Because the Ring arc is an SVG stroke, use stroke-* classes (not bg-*) to override colors.
Target Marker
Thetarget prop renders a tick mark on the ring at a specific position. Use target_class to style it.
Custom Range
Setmin and max to define a range other than 0–100. The renderer normalizes the value to a percentage automatically.
Custom Center Content
Use Ring as a container to place arbitrary components in the center. When children are present, they replace thelabel text.
API Reference
Ring Parameters
Current value. Can be a template expression for dynamic binding.
Minimum value. The renderer normalizes
(value - min) / (max - min) to a 0–100 percentage.Maximum value.
Text displayed in the center of the ring. Supports template expressions. Ignored when children are present.
Arbitrary components rendered in the center of the ring, replacing the label.
Visual variant:
"default", "success", "warning", "destructive", "info", "muted".Ring diameter:
"sm" (64px), "default" (96px), "lg" (128px).Stroke width of the ring arc in pixels.
Target marker position. Renders a tick mark on the ring at this value.
Tailwind classes applied to the filled arc. The Ring wrapper is a
group, so group-hover: classes trigger on hover anywhere on the ring.Tailwind classes for the target tick mark.
Tailwind classes for the outer container.
Protocol Reference
Ring