1. framework components
  2. progress circular

Progress - Circular

Circular progress indicators for showing task progress.

Progress
50%

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).

50%

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 .
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

Anatomy

Here’s an overview of how the Progress (Circular) component is structured in code:

tsx
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>
	);
}

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

View page on GitHub