Forms
Progress
A horizontal bar showing how far a task has gotten, or that it’s still running.
Uploading64%
Installation #
With the Nuxt module, every component is auto-imported — there is nothing to add. In a plain Vue project, import what you use:
Copy
import { JProgress } from '@juxtui/ui'Usage #
Copy
<JProgress :value="64" label="Uploading" show-value />Pass null (or leave value unset) for an indeterminate bar — a soft highlight sweeps across it instead of showing a fraction. Under reduced motion it pulses in place rather than sliding.
Variants & examples #
Indeterminate#
Unknown duration: value is null.
Preparing your download
Sizes and variants#
Storage used72%
Disk usage30%
API #
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| value | number | null | null | Current value out of max. null shows an indeterminate bar. |
| max | number | 100 | Value representing full progress. |
| size | 'sm' | 'md' | 'md' | Bar height. |
| label | string | — | Visible label above the bar; also its accessible name. |
| showValue | boolean | false | Show the percentage next to the label. Hidden while indeterminate. |
| variant | 'accent' | 'neutral' | 'accent' | accent for progress toward a goal, neutral for plain measurement. |
Accessibility #
- Renders
role="progressbar"witharia-valuemin,aria-valuemaxandaria-valuenowset fromvalueandmax;aria-valuenowis omitted while indeterminate, matching the native semantics for “busy, unknown duration”. aria-valuetextreads the percentage, or “Loading” while indeterminate, so the announcement matches whatshowValuedisplays.- When there’s a
label, the track is labelled by it viaaria-labelledby; without one, pass your own accessible name through the surrounding markup.