Progress
Linear progress bar. Filled and gradient fills across eleven colors, with a built-in indeterminate state — wraps Ark UI's Progress machine for ARIA wiring.
Progress is a linear bar built on Ark UI's Progress state machine, so it ships role="progressbar", the aria-value* wiring, and indeterminate support for free. The fill axis (filled / gradient) and the palette mirror Badge, so a bar and a chip share the same accent language.
import { Progress } from '@42/ui-react/progress';
<Progress value={60} />
<Progress variant="gradient" value={70} />
<Progress value={null} /> {/* indeterminate */}Playground
Component
Dir
Presets
Modes
Props
Code
<Component size="md" value={60} />Full prop browser
Variants
Two fill treatments. filled (the default) routes through the palette; gradient paints its own stops.
Code
<Progress variant="filled" value={60} /><Progress variant="gradient" value={60} />Colors
Any palette color pairs with the filled variant via the kit's data-color system. Use it for status semantics: green for healthy, orange for warning, red for critical.
Code
<Progress color="green" value={70} /><Progress color="orange" value={45} /><Progress color="red" value={20} />Gradient
variant="gradient" defaults to a purple→pink sweep. Pass a gradient config (from / to / via / dir) to customize the stops and direction — same API as Badge.
The gradient spans the full track, not just the filled portion — the bar reveals a left slice of it, so the complete from→to only appears at 100%.
Code
<Progress variant="gradient" value={70} /><Progress variant="gradient" value={70} gradient={{ from: 'var(--color-cyan-400)', to: 'var(--color-blue-600)' }} />Sizes
Five track heights, matching the kit's xs–xl scale (Slider uses the same).
Code
<Progress size="xs" value={60} /><Progress size="sm" value={60} /><Progress size="md" value={60} /><Progress size="lg" value={60} /><Progress size="xl" value={60} />Indeterminate
When you can't measure progress, pass value={null} (or omit both value and defaultValue and call it indeterminate). The bar runs an animated sweep — and under the OS "reduce motion" setting it rests as a static partial bar instead of looping.
Code
<Progress value={null} />API
Prop
Type
All other props are forwarded to the underlying Ark Progress.Root.
Accessibility
Ark stamps role="progressbar" plus aria-valuenow / aria-valuemin / aria-valuemax on the bar. In the indeterminate state aria-valuenow is dropped, so assistive tech announces an unmeasured "busy" bar. Provide an aria-label (or wire aria-labelledby to a visible caption) so the bar names what it's tracking:
<Progress value={uploaded} aria-label="Upload progress" />Spinner
Inline activity indicator. Inherits color and size by default so Button / ActionIcon embed it cleanly; opt-in props for standalone use.
Circular Progress
Ring progress indicator. Filled and gradient arcs across eleven colors, with a built-in indeterminate spinner — the circular counterpart of Progress.