Skip to Content

Built by moveinready.casa  and the community

Shadcn Docs

Radix Docs

Progress

Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.

Usage

import {Progress} from "@/components/ui/progress"; <Progress value={62} />;

Components

Progress

PropTypeDefaultDescription
valuenumber | nullundefinedCurrent progress value from 0–100. Use null to render an indeterminate progress.
maxnumberundefinedThe maximum value representing 100%. If omitted, a11y exposes only min and now.
getValueLabel(value: number | null, max?: number) => stringundefinedFunction that returns accessible text for the progress value, e.g. 33 of 99 files.
size'sm' | 'md' | 'lg' | 'xl''md'Visual height of the track.
color'primary' | 'success' | 'warning' | 'destructive''primary'Semantic color for the fill, derived from theme (light/dark) to hex colors.
baseClassNamestringundefinedTailwind classes to apply to the track. Takes priority over className.

Also extends all React Native View props on the root container.

Accessibility

  • The root element sets accessibilityRole="progressbar" and maps min, now, and max (if provided) to accessibilityValue.
  • When value is null, the component exposes accessibilityState={{busy: true}} to indicate indeterminate progress.
  • On web, corresponding ARIA attributes are applied: role, aria-valuemin, aria-valuemax, aria-valuenow, and aria-valuetext when available.

Styling

Progress uses Tailwind Variants for the track with the following base styles and size variants:

track: "relative overflow-hidden rounded-xl bg-secondary" sizes: sm → h-1.5, md → h-2, lg → h-3, xl → h-4

The fill is an animated Reanimated.View whose width is driven by the value. Its color is sourced from the current theme (ThemeContext) using semantic keys: primary, success, warning, and destructive.

shadcn-native

Built by moveinready.casa and the community