Progress
Displays an indicator showing the completion progress of a task — as a bar, a segmented bar, a ring or a gauge.
Usage
Approximate web preview — the HarmonyOS rendering is the reference.
Sizes
sizing: 'sm' | 'default' | 'lg', or any thickness; showValue adds the percentage.
Approximate web preview — the HarmonyOS rendering is the reference.
Tones
default | success | warning | info | destructive; valueText replaces the percentage.
Approximate web preview — the HarmonyOS rendering is the reference.
Buffer, stripes, steps, indeterminate
The indeterminate bar slides forever on its own node; toggle it to see it stop.
Approximate web preview — the HarmonyOS rendering is the reference.
Circle
shape: 'circle' — size, thickness, value / caption / custom centre, indeterminate spin.
Approximate web preview — the HarmonyOS rendering is the reference.
Gauge
shape: 'gauge' — a 240° meter for levels and quotas.
Approximate web preview — the HarmonyOS rendering is the reference.
API
Extracted from the @Param / @Event / @BuilderParam declarations in the library sources.
SProgress
shadcn-vue Progress, extended with the forms a design system usually needs.
linear(default):h-2 w-full rounded-full bg-primary/20track,bg-primaryindicator whose width animates tovalue / max. Extras:sizing/thickness,buffer(a lighter second bar, e.g. buffered video),striped(+animated),segments(a stepped bar of N parts) andindeterminate(a sliding bar).circle: a ring (diameter,thickness) with the value (showValue/valueText), acaptionor any slot content in its centre;indeterminatespins a quarter arc.gauge: a 240° meter with the same centre content.
tone colours the indicator: default (primary) | success | warning | info | destructive.
Infinite motion (indeterminate, moving stripes) lives on its own child node and stops when that node is removed; with motion disabled (--motion-progress-enabled: false) a static state is shown instead.
| Prop | Type | Default | Description |
|---|---|---|---|
value | number | 0 | 0…max |
max | number | 100 | |
label | string | undefined | undefined | Accessible name. |
shape | ProgressShapeProgressShape = 'linear' | 'circle' | 'gauge' | 'linear' | |
sizing | ProgressSizeProgressSize = 'sm' | 'default' | 'lg' | 'default' | |
thickness | number | undefined | undefined | Bar height / ring stroke in vp; overrides the sizing preset. |
diameter | number | undefined | undefined | Ring / gauge diameter in vp; overrides the sizing preset. |
tone | SparkToneSparkTone = 'default' | 'success' | 'warning' | 'info' | 'destructive' | 'default' | |
indeterminate | boolean | false | Unknown duration: sliding bar (linear) or spinning arc (circle). |
buffer | number | undefined | undefined | linear: secondary (buffered) value, 0…max, drawn lighter behind the indicator. |
striped | boolean | false | linear: diagonal stripes on the indicator. |
animated | boolean | false | linear + striped: the stripes move. |
segments | number | 0 | linear: split the track into N equal parts (steps). 0 = continuous. |
showValue | boolean | false | Show the value: right of a bar, in the centre of a ring / gauge. |
valueText | ResourceStr | undefined | undefined | Custom value text (default "66%"). Implies showValue. |
caption | ResourceStr | undefined | undefined | ring / gauge: small muted text under the value. |
tokens | ProgressTokens | {} | Per-instance token overrides, see {@link ProgressTokens}. |
Slots: children (trailing closure)