Skip to content
← Inventory

Progress

Linear progress bar showing completion from 0 to 100; omit value for an indeterminate (empty) track. Built on Radix Progress for accessible semantics.

Uploading swatches

64%

Usage

import { Progress, ProgressCircle } from "@desk/ui/components/progress";

Best practices

  • Use Progress for determinate 0–100 completion (omit value for an indeterminate track); position in a stepped flow is ProgressDots.

  • For a ring instead of a bar use ProgressCircle — it needs an explicit label for its role="progressbar" accessible name.

Props

PropTypeDefaultDescription
childrenReact.ReactNode

Optional content rendered centered over the ring (e.g. a percentage).

classNamestring
indicatorClassNamestring
label(required)string

Accessible label announced by screen readers (required).

maxnumber100

Value that maps to a full ring.

sizenumber44

Ring diameter in pixels.

strokeWidthnumber3

Ring stroke width in pixels.

trackClassNamestring
value(required)number

Current progress; clamped to 0..max.

valueFormatter(value: number, max: number) => stringrounded percentage of max

Formats the ring's hover title text.

Also exports

  • componentProgress

Composition