1. framework components
  2. progress circular

Progress - Circular

Circular progress indicators for showing task progress.

Label
50%

Size

Use different sizes for context-appropriate indicators.

Color

Change the track and indicator colour using utility classes or custom CSS variables to match your design system.

Centered Content

Place content in the center of the circular progress if needed (for example, a numeric value).

50%

Indeterminate

Use a null value to enable indeterminate mode.

Format

Use the format prop to customize the output of the ValueText component. Options include:

  • percentage (default)
  • decimal (0.0 - 1.0)
  • Custom - via the Intl API .
50%
0.5
€0.50

Custom Value Text

Provide a custom renderer for the ValueText if you need to show a different layout or label.

50 of 100

API Reference

Root

txt
flex flex-col gap-2 data-[orientation=horizontal]:w-full data-[orientation=vertical]:items-center
PropDefaultType
idsPartial<{ root: string; track: string; label: string; circle: string; }> | undefined

The ids of the elements in the progress bar. Useful for composition.

valuenumber | null | undefined

The controlled value of the progress bar.

defaultValue50number | null | undefined

The initial value of the progress bar when rendered. Use when you don't need to control the value of the progress bar.

min0number | undefined

The minimum allowed value of the progress bar.

max100number | undefined

The maximum allowed value of the progress bar.

translationsIntlTranslations | undefined

The localized messages to use.

onValueChange((details: ValueChangeDetails) => void) | undefined

Callback fired when the value changes.

formatOptions{ style: "percent" }NumberFormatOptions | undefined

The options to use for formatting the value.

locale"en-US"string | undefined

The locale to use for formatting the value.

dir"ltr""ltr" | "rtl" | undefined

The document's text/writing direction.

getRootNode(() => ShadowRoot | Node | Document) | undefined

A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.

orientation"horizontal""horizontal" | "vertical" | undefined

The orientation of the element.

element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Provider

PropDefaultType
valueProgressApi<PropTypes>

element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Context

PropDefaultType
children(progress: ProgressApi<PropTypes>) => ReactNode

Label

txt
whitespace-nowrap
PropDefaultType
element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

ValueText

PropDefaultType
element((attributes: HTMLAttributes<"span">) => Element) | undefined

Render the element yourself

Track

txt
bg-surface-200-800 rounded-base overflow-hidden data-[orientation=horizontal]:w-full data-[orientation=horizontal]:h-2 data-[orientation=vertical]:w-2 data-[orientation=vertical]:h-[100px]
PropDefaultType
element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Range

txt
h-full bg-surface-950-50 rounded-base data-[orientation=horizontal]:transition-[width] data-[orientation=horizontal]:data-[state=indeterminate]:animate-progress-linear-indeterminate-horizontal data-[orientation=vertical]:transition-[height] data-[orientation=vertical]:data-[state=indeterminate]:animate-progress-linear-indeterminate-vertical
PropDefaultType
element((attributes: HTMLAttributes<"div">) => Element) | undefined

Render the element yourself

Circle

PropDefaultType
element((attributes: HTMLAttributes<"svg">) => Element) | undefined

Render the element yourself

CircleTrack

txt
stroke-surface-200-800
PropDefaultType
element((attributes: HTMLAttributes<"circle">) => Element) | undefined

Render the element yourself

CircleRange

txt
stroke-primary-500 transition-[stroke-dashoffset] ease-in-out data-[state=indeterminate]:animate-progress-circular-indeterminate
PropDefaultType
element((attributes: HTMLAttributes<"circle">) => Element) | undefined

Render the element yourself

View page on GitHub