Progress Ring
<sl-progress-ring> | SlProgressRing
            Progress rings are used to show the progress of a determinate operation in a circular fashion.
<sl-progress-ring value="25"></sl-progress-ring>
Examples
Size
Use the --size custom property to set the diameter of the progress ring.
<sl-progress-ring value="50" style="--size: 200px;"></sl-progress-ring>
Track and Indicator Width
            Use the --track-width and --indicator-width custom properties to set the width of
            the progress ring’s track and indicator.
          
<sl-progress-ring value="50" style="--track-width: 6px; --indicator-width: 12px;"></sl-progress-ring>
Colors
            To change the color, use the --track-color and --indicator-color custom
            properties.
          
<sl-progress-ring value="50" style=" --track-color: pink; --indicator-color: deeppink; " ></sl-progress-ring>
Labels
            Use the label attribute to label the progress ring and tell assistive devices how to announce
            it.
          
<sl-progress-ring value="50" label="Upload progress"></sl-progress-ring>
Showing Values
Use the default slot to show a label inside the progress ring.
<sl-progress-ring value="50" class="progress-ring-values" style="margin-bottom: .5rem;">50%</sl-progress-ring> <br /> <sl-button circle><sl-icon name="dash" label="Decrease"></sl-icon></sl-button> <sl-button circle><sl-icon name="plus" label="Increase"></sl-icon></sl-button> <script> const progressRing = document.querySelector('.progress-ring-values'); const subtractButton = progressRing.nextElementSibling.nextElementSibling; const addButton = subtractButton.nextElementSibling; addButton.addEventListener('click', () => { const value = Math.min(100, progressRing.value + 10); progressRing.value = value; progressRing.textContent = `${value}%`; }); subtractButton.addEventListener('click', () => { const value = Math.max(0, progressRing.value - 10); progressRing.value = value; progressRing.textContent = `${value}%`; }); </script>
Slots
| Name | Description | 
|---|---|
| (default) | A label to show inside the ring. | 
Learn more about using slots.
Properties
| Name | Description | Reflects | Type | Default | 
|---|---|---|---|---|
| value | The current progress as a percentage, 0 to 100. |  | number | 0 | 
| label | A custom label for assistive devices. | string | '' | |
| updateComplete | A read-only promise that resolves when the component has finished updating. | 
Learn more about attributes and properties.
Custom Properties
| Name | Description | Default | 
|---|---|---|
| --size | The diameter of the progress ring (cannot be a percentage). | |
| --track-width | The width of the track. | |
| --track-color | The color of the track. | |
| --indicator-width | The width of the indicator. Defaults to the track width. | |
| --indicator-color | The color of the indicator. | |
| --indicator-transition-duration | The duration of the indicator’s transition when the value changes. | 
Learn more about customizing CSS custom properties.
Parts
| Name | Description | 
|---|---|
| base | The component’s base wrapper. | 
| label | The progress ring label. | 
Learn more about customizing CSS parts.