# Progress Circular An indicator showing the progress or completion of a task. ```tsx import { Progress, Slider } from '@skeletonlabs/skeleton-react'; import { useState } from 'react'; export default function Default() { const [value, setValue] = useState(50); return (
Label setValue(e.value[0])} step={10}>
); } ``` ## Size ```tsx import { Progress } from '@skeletonlabs/skeleton-react'; import type { CSSProperties } from 'react'; export default function Size() { return (
); } ``` ## Color ```tsx import { Progress } from '@skeletonlabs/skeleton-react'; export default function Color() { return (
); } ``` ## Centered Content ```tsx import { Progress } from '@skeletonlabs/skeleton-react'; export default function CenteredContent() { return (
); } ``` ## Indeterminate Set the value to `null` to make the progress indeterminate. ```tsx import { Progress } from '@skeletonlabs/skeleton-react'; export default function Default() { 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 import { Progress } from '@skeletonlabs/skeleton-react'; export default function Format() { return (
); } ``` ## Custom Value Text ```tsx import { Progress } from '@skeletonlabs/skeleton-react'; export default function CustomValueText() { return ( {(progress) => `${progress.value} of ${progress.max}`} ); } ``` ## API Reference ### ProgressRootProps | Property | Default | 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? | 50 | 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. | | min? | 0 | number \| undefined | The minimum allowed value of the progress bar. | | max? | 100 | number \| undefined | The maximum allowed value of the progress bar. | | translations? | - | IntlTranslations \| 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 | ### ProgressRootProviderProps | Property | Default | Type | Description | | -------- | ------- | -------------------------------------------------------------- | --------------------------- | | value | - | ProgressApi\ | - | | element? | - | ((attributes: HTMLAttributes\<"div">) => Element) \| undefined | Render the element yourself | ### ProgressRootContextProps | Property | Default | Type | Description | | -------- | ------- | ------------------------------------------------ | ----------- | | children | - | (progress: ProgressApi\) => ReactNode | - | ### ProgressLabelProps | Property | Default | Type | Description | | -------- | ------- | -------------------------------------------------------------- | --------------------------- | | element? | - | ((attributes: HTMLAttributes\<"div">) => Element) \| undefined | Render the element yourself | ### ProgressValueTextProps | Property | Default | Type | Description | | -------- | ------- | --------------------------------------------------------------- | --------------------------- | | element? | - | ((attributes: HTMLAttributes\<"span">) => Element) \| undefined | Render the element yourself | ### ProgressTrackProps | Property | Default | Type | Description | | -------- | ------- | -------------------------------------------------------------- | --------------------------- | | element? | - | ((attributes: HTMLAttributes\<"div">) => Element) \| undefined | Render the element yourself | ### ProgressRangeProps | Property | Default | Type | Description | | -------- | ------- | -------------------------------------------------------------- | --------------------------- | | element? | - | ((attributes: HTMLAttributes\<"div">) => Element) \| undefined | Render the element yourself | ### ProgressCircleProps | Property | Default | Type | Description | | -------- | ------- | -------------------------------------------------------------- | --------------------------- | | element? | - | ((attributes: HTMLAttributes\<"svg">) => Element) \| undefined | Render the element yourself | ### ProgressCircleTrackProps | Property | Default | Type | Description | | -------- | ------- | ----------------------------------------------------------------- | --------------------------- | | element? | - | ((attributes: HTMLAttributes\<"circle">) => Element) \| undefined | Render the element yourself | ### ProgressCircleRangeProps | Property | Default | Type | Description | | -------- | ------- | ----------------------------------------------------------------- | --------------------------- | | element? | - | ((attributes: HTMLAttributes\<"circle">) => Element) \| undefined | Render the element yourself |