StartFoundationsComponentsContent

Progress ring

A progress ring shows how far a task has gone on a known scale, as an arc. It only reports progress; it can't be focused or clicked.

Stable Figma
OverviewUsageAPIAccessibility
<tk-progress-ring value="72" show-value label="Uploading photos"></tk-progress-ring>

Anatomy

Part What it is
tk-progress-ring the element; role="progressbar", never focusable
track the full circle: the whole scale
arc the done part, from 12 o'clock clockwise, with round ends
center value the value in the middle, with show-value
default slot your own label or status text, beside the ring

Variants

Synced Sync failed
<tk-progress-ring value="40" show-value label="Sync"></tk-progress-ring>
<tk-progress-ring value="100" intent="success" label="Sync">Synced</tk-progress-ring>
<tk-progress-ring value="40" intent="error" label="Sync">Sync failed</tk-progress-ring>
  • accent (default): ordinary progress, including at 100%.
  • success: a finished task, with text that says so.
  • error: a failed task, with text that says what went wrong.

Always pair intent with text; color alone doesn't tell everyone.

Sizes

<tk-progress-ring value="72" size="small" show-value label="Export"></tk-progress-ring>
<tk-progress-ring value="72" show-value label="Export"></tk-progress-ring>
<tk-progress-ring value="72" size="large" show-value label="Export"></tk-progress-ring>
<tk-progress-ring value="72" size="xlarge" show-value label="Export"></tk-progress-ring>
size Diameter Stroke Value
small 24px 2px beside the ring
medium (default) 40px 4px in the center
large 64px 4px in the center
xlarge 96px 8px in the center

On medium the center value is 10px. If people must read it easily, use large or show the value in text.

Value

  • Set value; it's clamped between min (0) and max (100). Without a value the ring draws empty and warns in the console.
  • show-value shows 72%, or 18 of 25 with value-format="fraction".
  • Text in the default slot appears beside the ring.