Progress
Uses Base UI Progress progressbar semantics. Normalizes valid max and value values, and exposes an indeterminate state when value is missing or invalid.
@neumorphism-ui/progressPreview
Registry build82%
Theme tokens12 / 16
Waiting for data—
Installation
Installation: progress
npx shadcn@latest add @neumorphism-ui/progressThe CLI resolves npm dependencies, base tokens, utilities, and component source in order.
New to this Registry? Set up the namespace before continuing.
Usage
Import
Progress import code
import { Progress } from "@/components/ui/progress"Example
Progress usage code
<div className="grid gap-2">
<div id="upload-label" className="flex justify-between">
<span>File upload</span>
<span>72%</span>
</div>
<Progress value={72} max={100} aria-labelledby="upload-label" />
</div>API Reference
| Component | Prop | Type | Default | Description |
|---|---|---|---|---|
Progress | value | number | null | null | The current progress value, normalized between 0 and max. |
Progress | max | number | 100 | The total range greater than 0; invalid values fall back to 100. |
Progress | aria-label / aria-labelledby | string | — | The accessible name of the task in progress. |
Progress | getValueLabel | (value, max) => string | — | Creates aria-valuetext when a description beyond the numeric value is needed. |
Accessibility
- 01
Progress needs an aria-label or aria-labelledby that describes the task, such as File upload.
- 02
A visible percentage is not automatically associated with the progressbar, so connect its label explicitly.
- 03
A null value represents an indeterminate state and should not be accompanied by completion-percentage text.