Prototype Library

Progress Bar

Linear progress indicator with determinate and indeterminate modes, sizes, color variants, and an optional label and percentage.

Inherited .astro import EsaProgressBar from '@esa/ecology/esa-progress-bar.astro';

Preview

Uploading 68%
<ProgressBar value={68} label="Uploading" showValue={true} />

Variants

60%
60%
60%
60%
<ProgressBar value={60} variant="primary" />
<ProgressBar value={60} variant="success" />
<ProgressBar value={60} variant="warning" />
<ProgressBar value={60} variant="danger" />

Sizes

50%
50%
50%
50%
<ProgressBar value={50} size="xs" />
<ProgressBar value={50} size="sm" />
<ProgressBar value={50} size="md" />
<ProgressBar value={50} size="lg" />

Label & indeterminate

Add a label (and showValue for the percentage) above the track. Indeterminate mode runs a looping translate animation when the completion is unknown.

Processing 40%
Loading…
<ProgressBar value={40} label="Processing" showValue={true} variant="warning" />
<ProgressBar mode="indeterminate" label="Loading…" />

API

PropTypeDefaultDescription
value number 0 Progress, clamped to 0–100. Ignored in indeterminate mode.
mode 'determinate' | 'indeterminate' 'determinate' Determinate fill vs a looping indeterminate animation.
size 'xs' | 'sm' | 'md' | 'lg' 'md' Track height (2 / 4 / 8 / 12px).
variant 'primary' | 'success' | 'warning' | 'danger' 'primary' Fill color intent.
label string '' Optional text shown above the track; also used as the accessible label.
showValue boolean true Shows the percentage next to the label (determinate only).

Accessibility

  • Renders role="progressbar" with aria-valuemin="0" and aria-valuemax="100".
  • aria-valuenow is set in determinate mode and omitted while indeterminate.
  • aria-label falls back to "Progress" when no label is provided.