Progress
A progress indicator for communicating measurable completion or ongoing work.
Import Progress
Import Progress from Tavix:
import { Progress } from "tavix";Component API
<Progress
value={0}
max={100}
size="md"
variant="primary"
label
showValue={false}
indeterminate={false}
className=""
{...props}
/>Props
value: Current progress value. Defaults to0.max: Maximum progress value. Defaults to100. Invalid or non-positive values use100.size: Progress size:sm,md, orlg. Defaults tomd.variant: Visual treatment:primary,success,warning,error, orinfo.label: Optional text displayed above the progress bar.showValue: Displays the calculated percentage whentrue. Defaults tofalse.indeterminate: Shows progress without a known completion value. Defaults tofalse.className: Additional classes applied to the progress component....props: Additional props forwarded to the outer element.
Behavior
- Calculates determinate progress as a percentage from
valueandmax. - Clamps determinate values between
0and100percent. - Uses
100as the maximum whenmaxis invalid or non-positive. - Displays the percentage when
showValueistrueand progress is determinate. - Displays an animated moving bar when
indeterminateistrue. - Omits
aria-valuenowfor indeterminate progress. - Applies the selected
sizeandvariantstyling. - Displays
labelabove the progress bar when provided. - Forwards additional props to the outer element.
Examples
Determinate progress
<Progress value={60} label="Uploading" showValue />
<Progress variant="success" value={100} label="Complete" />
<Progress indeterminate label="Loading data" />Custom maximum
<Progress
value={3}
max={10}
label="Completed steps"
showValue
/>;The displayed percentage is calculated from value / max.
Variants
<Progress value={45} variant="primary" label="In progress" />
<Progress value={100} variant="success" label="Complete" />
<Progress value={60} variant="warning" label="Needs attention" />
<Progress value={20} variant="error" label="Failed" />
<Progress value={70} variant="info" label="Processing" />Sizes
<Progress value={35} size="sm" label="Small" />
<Progress value={55} size="md" label="Medium" />
<Progress value={75} size="lg" label="Large" />Loading state
<Progress
indeterminate
variant="primary"
label="Loading results"
/>;Use indeterminate progress when the duration or completion percentage is unknown.
Accessibility
- Progress exposes
role="progressbar". - Determinate progress exposes
aria-valuemin,aria-valuemax, andaria-valuenow. - Indeterminate progress does not expose
aria-valuenow. - Provide a visible
labelor an accessible name when the visual label is not sufficient. - Keep the label meaningful so users understand what operation is progressing.
- Do not rely on color alone to communicate success, warning, or error states.
Notes
- Determinate values are clamped to
0-100percent. - Invalid or non-positive
maxvalues use100. showValueis ignored for indeterminate progress.- Supported sizes are
sm,md, andlg. - Supported variants are
primary,success,warning,error, andinfo. - Use indeterminate mode when completion cannot be measured.