Progress
Determinate or indeterminate task progress with native browser semantics.
Interactive preview
Upload · 35%
Waiting for a connection
Usage
import { Progress } from "@devvy-ui/react";
<Progress label="Uploading files" value={42} />
<Progress label="Connecting" />API reference
Native HTML attributes, className, style and a forwarded ref are supported. Component-specific props:
| Prop | Type | Default | Description |
|---|---|---|---|
| label | string | required | Accessible name of the task. |
| value | number | omitted | Finite values clamp to 0..max. Omit for indeterminate progress. |
| max | number | 100 | Positive finite maximum; invalid values fall back to 100. |
| size | sm | md | lg | md | Track thickness. |
| tone | brand | neutral | brand | Fill color. |
Accessibility & behavior
Platform Behavior & Guidelines
Uses a native progress element and HTMLProgressElement ref. Provide visible context too; aria-describedby can connect details. Nonfinite values are indeterminate. The indeterminate stripe stays still, including under reduced motion. Consumers own task state and announcements; progress is not a live region. CSS variables, className and style allow customization.
Source ownership
Run npx @devvy-ui/cli init once in your React project, then add the source:
npx @devvy-ui/cli add progressMake the source yours.
Start from the canonical implementation used by the package and registry. Change the code, keep the MIT notice, and build the behavior your project needs.
Edit your own copy. Downloaded source uses your changes; the component preview above uses the shipped version. Run the source installer first to include shared helpers.