Size
Use different sizes for context-appropriate indicators.
Color
Change the track and indicator color 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).
Indeterminate
Set 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 .
Custom Value Text
Provide a custom renderer for the ValueText if you need to show a different layout or label.
Anatomy
Here’s an overview of how the Progress (Circular) component is structured in code:
import { Progress } from '@skeletonlabs/skeleton-react';
export default function Anatomy() {
return (
<Progress>
<Progress.Label />
<Progress.Circle>
<Progress.CircleTrack />
<Progress.CircleRange />
</Progress.Circle>
<Progress.ValueText />
</Progress>
);
}<script lang="ts">
import { Progress } from '@skeletonlabs/skeleton-svelte';
</script>
<Progress>
<Progress.Label />
<Progress.Circle>
<Progress.CircleTrack />
<Progress.CircleRange />
</Progress.Circle>
<Progress.ValueText />
</Progress>API Reference
Root
| Prop | Default | Type |
|---|---|---|
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 |
Provider
| Prop | Default | Type |
|---|---|---|
value | — | ProgressApi<PropTypes> |
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Context
| Prop | Default | Type |
|---|---|---|
children | — | (progress: ProgressApi<PropTypes>) => ReactNode |
Label
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
ValueText
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"span">) => Element) | undefined Render the element yourself |
Track
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Range
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"div">) => Element) | undefined Render the element yourself |
Circle
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"svg">) => Element) | undefined Render the element yourself |
CircleTrack
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"circle">) => Element) | undefined Render the element yourself |
CircleRange
| Prop | Default | Type |
|---|---|---|
element | — | ((attributes: HTMLAttributes<"circle">) => Element) | undefined Render the element yourself |
Root
| Prop | Default | Type |
|---|---|---|
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 | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Provider
| Prop | Default | Type |
|---|---|---|
value | — | () => ProgressApi<PropTypes> |
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Context
| Prop | Default | Type |
|---|---|---|
children | — | Snippet<[() => ProgressApi<PropTypes>]> |
Label
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
ValueText
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"span">]> | undefined Render the element yourself |
Track
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Range
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"div">]> | undefined Render the element yourself |
Circle
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"svg">]> | undefined Render the element yourself |
CircleTrack
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"circle">]> | undefined Render the element yourself |
CircleRange
| Prop | Default | Type |
|---|---|---|
element | — | Snippet<[HTMLAttributes<"circle">]> | undefined Render the element yourself |