A circular SVG progress indicator for determinate upload or processing progress.
Preview
Usage
Use a progress circle to communicate deterministic progress to the user — for example, a file upload or media processing operation that reports a percentage complete.
Do
- Use when you have a concrete progress value (0–100) to display
- Always provide a meaningful
aria-labeldescribing the operation - Show the progress indicator only while an operation is active; remove it once complete
Don’t
- Don't use for indeterminate loading states — use Loader instead
- Don't omit the
aria-label; it is required for screen reader accessibility
Demo
Variants
Progress
Sizes
The size prop controls the diameter of the progress circle, aligning to Dialtone icon sizes.
Kinds
The kind prop sets the color variant of the progress circle.
Vue API
Props
Classes
Accessibility
- The root element has
role="progressbar"witharia-valuemin="0",aria-valuemax="100", and:aria-valuenowbound to the current progress value. - Always provide an
aria-labelthat describes the ongoing operation (e.g.,"Uploading photo"). - The element has
tabindex="-1"so it is not in the natural tab order, but can receive programmatic focus if needed.