# Progress Circular An indicator showing the progress or completion of a task. ```tsx const [value, setValue] = useState(50); return (
Label setValue(e.value[0])} step={10}>
); } ``` ## Size ```tsx return (
); } ``` ## Color ```tsx return (
); } ``` ## Centered Content ```tsx return (
); } ``` ## Indeterminate Set the value to `null` to make the progress indeterminate. ```tsx return ( ); } ``` ## Format Use the `format` prop to customize the output of the `ValueText` component, options are: - `percentage` (default) - shows the percentage value - `decimal` - shows the decimal value (0.0 - 1.0) - Provide formatting using the [Intl API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl) ```tsx return (
); } ``` ## Custom Value Text ```tsx return ( {(progress) => `${progress.value} of ${progress.max}`} ); } ``` ## API Reference ### ProgressRoot | Property | Type | Description | | --- | --- | --- | | `ids` | Partial<{ root: string; track: string; label: string; circle: string; }> | undefined | The ids of the elements in the progress bar. Useful for composition. | | `value` | number | null | undefined | The controlled value of the progress bar. | | `defaultValue` | number | 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. Default: 50 | | `min` | number | undefined | The minimum allowed value of the progress bar. Default: 0 | | `max` | number | undefined | The maximum allowed value of the progress bar. Default: 100 | | `translations` | IntlTranslations | undefined | The localized messages to use. | | `onValueChange` | ((details: ValueChangeDetails) => void) | undefined | Callback fired when the value changes. | | `formatOptions` | NumberFormatOptions | undefined | The options to use for formatting the value. Default: { style: "percent" } | | `locale` | string | undefined | The locale to use for formatting the value. Default: "en-US" | | `dir` | "ltr" | "rtl" | undefined | The document's text/writing direction. Default: "ltr" | | `getRootNode` | (() => ShadowRoot | Node | Document) | undefined | A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron. | | `orientation` | "horizontal" | "vertical" | undefined | The orientation of the element. Default: "horizontal" | | `element` | ((attributes: HTMLAttributes<"div">) => Element) | undefined | Render the element yourself | ### ProgressRootProvider | Property | Type | Description | | --- | --- | --- | | `value`* | ProgressApi | | | `element` | ((attributes: HTMLAttributes<"div">) => Element) | undefined | Render the element yourself | ### ProgressRootContext | Property | Type | Description | | --- | --- | --- | | `children`* | (progress: ProgressApi) => ReactNode | | ### ProgressLabel | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"div">) => Element) | undefined | Render the element yourself | ### ProgressValueText | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"span">) => Element) | undefined | Render the element yourself | ### ProgressTrack | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"div">) => Element) | undefined | Render the element yourself | ### ProgressRange | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"div">) => Element) | undefined | Render the element yourself | ### ProgressCircle | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"svg">) => Element) | undefined | Render the element yourself | ### ProgressCircleTrack | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"circle">) => Element) | undefined | Render the element yourself | ### ProgressCircleRange | Property | Type | Description | | --- | --- | --- | | `element` | ((attributes: HTMLAttributes<"circle">) => Element) | undefined | Render the element yourself |