Feedback

ProgressCircle

The circular ring rendered by `Progress`'s circle variants, used internally.

html
<UiProgressCircle />

Reach for Progress instead

This is the ring Progress renders for its circle variants, split out so the ring and the bar can be maintained separately. Everything here is reachable through Progress, which is the component to use unless you need the ring without its wrapper.

Model value

modelValue is the current progress, read against max. It's clamped into range, so a value past the maximum closes the ring rather than winding past it.

0%
35%
100%

Max

max is the value that counts as a full ring. Set it to the real total and pass raw numbers as modelValue rather than converting to a percentage yourself.

35%
of 100
70%
of 50

Color

color themes the filled arc. The track behind it stays neutral, so the arc is what carries the meaning.

neutral
primary
secondary
success
error
warning
info
pending

Size

size is the ring's diameter in pixels. The line width and the centred readout scale with it, so a small ring stays legible rather than becoming a thin smudge.

60%
60%
60%

Outline

outline draws a hairline boundary with a background-coloured track inset inside it, instead of the solid track. It reads lighter on a busy surface, where a filled track would compete with what's around it.

60%
60%

Lg

lg switches to the thicker line width. Pair it with a larger size for a ring that has to read as the main thing on a card rather than as an indicator beside a label.

60%
60%

Label

label is the text below the ring, naming what's progressing.

60%
60%
of quota

Show value

showValue centres the percentage inside the ring. Without it the ring is a shape with no number — fine beside a figure you're already printing, thin on its own.

Storage
60%
Storage

Indeterminate

indeterminate spins the arc instead of holding it at a fixed angle, for work that's underway but whose completion you can't measure. modelValue, buffer and showValue are all ignored while it's set.

Connecting

Buffering

buffering sweeps a bright highlight around the buffer ring, saying the gap ahead of the arc is actively filling in. It's the same sweep Shimmer and ProgressBar use, so everything loading on a screen moves in step.

Streaming

Buffer

buffer draws a dimmed ring behind the arc — how far ahead the data has loaded compared with where playback or processing has actually reached.

35%
No buffer
35%
Buffered to 60%

API Reference

Generated from the component's source — props, slots and emits as the component actually declares them.

Props

Prop
Type
Default
Description
number
0
The current progress value.
number
100
The value that represents 100% progress.
"primary" | "secondary" | "success" | "warning" | "error" | "info" | "pending" | "neutral"
'neutral'
The color theme of the ring.
number
64
Diameter in pixels.
boolean
false
Renders a hairline boundary ring with a `background`-colored track inset inside it, instead of a solid `elevated` track — the ring equivalent of the bar's `outline` variant.
boolean
false
Uses the thicker `lg` line width instead of the default line width.
string
Text label displayed below the ring.
boolean
false
Shows the current percentage centered inside the ring.
boolean
false
Displays a spinning indeterminate animation instead of a fixed value.
boolean
false
Sweeps a bright highlight around the buffer ring, matching `Shimmer`/`ProgressBar`'s buffering look.
number
The amount of progress buffered ahead of the current value, shown as a dimmed ring behind it. Ignored when `indeterminate` is true.

Slots

Slot
default