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
float | str
default:"0"
Current value. Can be a template expression for dynamic binding.
float
default:"0"
Minimum value. The renderer normalizes
(value - min) / (max - min) to a 0–100 percentage.float
default:"100"
Maximum value.
str | None
default:"None"
Text displayed in the center of the ring. Supports template expressions. Ignored when children are present.
list[Component]
default:"[]"
Arbitrary components rendered in the center of the ring, replacing the label.
str
default:"default"
Visual variant:
"default", "success", "warning", "destructive", "info", "muted".str
default:"default"
Ring diameter:
"sm" (64px), "default" (96px), "lg" (128px).float
default:"6"
Stroke width of the ring arc in pixels.
float | str | None
default:"None"
Target marker position. Renders a tick mark on the ring at this value.
str | None
default:"None"
Tailwind classes applied to the filled arc. The Ring wrapper is a
group, so group-hover: classes trigger on hover anywhere on the ring.str | None
default:"None"
Tailwind classes for the target tick mark.
bool | None
default:"None"
Gradient stroke.
None inherits the theme default, True forces a gradient on, False forces a solid stroke.str | None
default:"None"
Tailwind classes for the outer container.
Protocol Reference
Ring