Progress Circle
avonni-progress-circle
Displays progress or a value as a circular indicator with a customizable label.
Overview
Progress Circle is a Lightning Web Component that displays a percentage value as a circular ring with a centered numeric readout.
Use it in your own Lightning Web Components to visualize completion, scores, or any 0–100 metric at a glance. You control the value, size, ring thickness, fill direction, title placement, and an optional indeterminate loading animation—all through the component's attributes.
Use Cases
Task completion: Show how far along a record, checklist, or job is.
KPI dashboards: Surface a percentage metric in a compact, glanceable form.
Quotas and goals: Visualize progress toward a target.
Storage or capacity: Indicate how much of a limit has been used.
Loading states: Use the loading animation while a value is being fetched.
Size Guidelines
xx-small / x-small
Inline with text or in dense list rows.
small / medium
Cards and standard dashboard tiles.
large and up
Hero metrics and prominent KPI displays.
Use Case Examples
Example 1: Task completion indicator
Scenario: Show how far a project has progressed at the top of a custom record page component.
Result: A large ring filled clockwise to 65%, showing "65%" in the center with "Completion" above it.
Example 2: Loading state while fetching a value
Scenario: Display an indeterminate animation while a metric is being retrieved, then render the real value once it arrives.
Result: While loading is true, the ring animates and hides the value; once loading is false, it shows the resolved score.
Specifications
Attributes
alternative-text
The assistive text for the progress circle.
String
—
direction
Controls which way the color flows from the top of the ring, either clockwise or counterclockwise Valid values include fill and drain. The fill value corresponds to a color flow in the clockwise direction. The drain value indicates a color flow in the counterclockwise direction.
String
"fill"
is-loading
If present the progress bar displays a loading animation. The value goes from 0 to 100 repeatedly and the label displays a 3 dots animation. The value and labels become hidden.
Boolean
false
label
The label is displayed after the value in the progress circle.
String
—
size
The size of the progress circle. Valid values include xx-small (26x26px), 'x-small' (40x40px), small (52x52px), medium (104x104px), large (152x152px) and x-large (208x208px).
String
"medium"
thickness
Set progress circle thickness. Valid values include x-small, small, medium, large and x-large.
String
"medium"
title
The title is displayed at the bottom or top of the progress circle.
String
—
title-position
Position of the title. Valid values include top and bottom.
String
"bottom"
value
The percentage value of the progress circle. The value must be a number from 0 to 100. A value of 50 corresponds to a color fill of half the ring in a clockwise or counterclockwise direction, depending on the direction attribute.
Number
0
variant
Accepted variants include standard, value-hidden.
String
"standard"
Styling Hooks
--avonni-progress-circle-bar-color-background
color
#dddbda
--avonni-progress-circle-bar-color
color
#0176d3
--avonni-progress-circle-bar-content-color-background
color
#ffffff
--avonni-progress-circle-value-text-color
color
#0176d3
--avonni-progress-circle-value-font-style
font
normal
--avonni-progress-circle-value-font-weight
font
400
--avonni-progress-circle-title-text-color
color
#080707
--avonni-progress-circle-title-font-family
font
—
--avonni-progress-circle-title-font-size
font
—
--avonni-progress-circle-title-font-style
font
normal
--avonni-progress-circle-title-font-weight
font
400
--avonni-progress-circle-title-line-clamp
number
3
--avonni-progress-circle-title-line-height
dimension
—
--avonni-progress-circle-title-letter-spacing
dimension
—
--avonni-progress-circle-label-text-color
color
#706e6b
--avonni-progress-circle-label-font-style
font
normal
--avonni-progress-circle-label-font-weight
font
400
--avonni-progress-circle-label-font-size
font
xx-small:10px | x-small:10px | small:11px | medium:12px | large:14px | x-large:16px
--avonni-progress-circle-label-line-clamp
number
2
--avonni-progress-circle-value-font-size
font
—
Key Considerations
Value range: Values are clamped to 0–100; pass a normalized percentage.
Direction:
fillflows clockwise,drainflows counterclockwise from the top of the ring.Loading: When
is-loadingistrue, the value and label are hidden in favor of the animation.Hidden value: Use the
value-hiddenvariant to show the ring fill without the numeric readout.Accessibility: Provide
alternative-textso the progress is announced.Best Practice: Keep
valuewithin 0–100 and setalternative-textso screen readers can announce the progress.
Troubleshooting Common Issues
Ring not filling: Confirm
valueis a number between 0 and 100, not a string fraction.Value not showing: Check that
is-loadingis nottrueandvariantis notvalue-hidden.Title in the wrong place: Set
title-positiontotoporbottom.If issues persist: Contact our support team at [email protected] for assistance.
Last updated
Was this helpful?
