Skip to content

Progress ring

How much of a quota is used.

Definition · Updated Nov 2, 2026

A progress ring fills a circle by the share used, with the percentage in the middle and the used, remaining and forecast amounts beside it. Use it for quotas, plan usage and goals with one limit.

Pay once. Every update included.

Live preview

Token budget7.2M of a 10M token budget used (72%), 2.8M remaining; the forecast at reset is 10.4M, and the budget resets in 9 days.72%USEDUsed7.2MRemaining2.8MForecast at reset10.4MResets in9 days
Token budget
ItemValue
Used7.2M
Remaining2.8M
Forecast at reset10.4M
Resets in9 days

Sample data: 72% of the token quota used, 7.2M used, 2.8M remaining, resets in 9 days

Size
Data shape
A share used of a total, and the rows beside it
Good for
Quotas, plan usage, goals
Avoid when
There are several limits to compare
Sizes
XS, S, M and L, re-laid out from the data

Anatomy

Inspect it like the Figma file.

The same layers, names and tokens as the component. Select one to read its size, fill and style.

Layers

020 / Progress ring

chart/020-progress-ring
plot · ring
Layer
slice · used
Type
Ellipse
Size
168 × 168
Fill
data/primary
Group
Marks · 1

Layers

020 / Progress ring

chart/020-progress-ring
plot · ring
Layer
slice · used
Type
Ellipse
Size
98 × 98
Fill
data/primary
Group
Marks · 1

Sizes

Re-laid out, never scaled.

The same data at XS, S, M and L. Every size is redrawn from the data, so text and line weights never shrink.

M against S

Width360 px480 px

Plot328 px440 px

Labels1010

Marks11

Height212 px246 px

Same tokens at every size: text styles, 1 px lines and mark radius stay put.

When to use

One quota, one ring.

Three signs it fits, and three signs another type fits better.

Is there one limit?

Several limits.

Yes: Keep the progress ring

Is it a share of a limit?

A reading against a threshold.

Yes: Keep the progress ring

Is the share used now enough?

The spend over the month matters.

Yes: Keep the progress ring

Code and Figma

One name in Figma and in code.

Every Figma property is a prop with the same name and values. One command installs it.

Figma

chart/020-progress-ring

size
legend
Property = propValuesDefault
size"xs" · "s" · "m" · "l""xs"
legendfalsefalse
color"cat-1" · "cat-2" · "cat-3" · "cat-4""cat-1"
npx shadcn add @chartory/progress-ring
progress-ring.tsx
import { ProgressRing } from "@/components/chartory/progress-ring"import { tokenQuota } from "./token-quota"export function TokenQuota() {  return (    <ProgressRing      data={tokenQuota}      size="m"      legend={false}    />  )}

Hearth widget

Progress ring as a widget.

The chart in a Hearth card with a hero number and two blocks. One token set, light and dark.

Code
Get the code

EmberPreset

ChartoryDefault preset

Pick the blocks, the size and the preset for your own widget.

Read the Hearth widget docs

FAQ

Progress ring questions.

What people ask before they put a progress ring in a dashboard.

Something else?

hello@usechartory.com
  • Used, remaining, the forecast at reset and the days to reset. In the sample the forecast (10.4M) is above the 10M quota, so it reads as a warning.

Related types

The same question, a different shape of answer. Every type ships in Figma and in code.

Same family

Part of a whole

16 types in Chartory answer this question.