Skip to content

Progress

Progress bars show the completion status of tasks or processes. They provide visual feedback about the progress of operations.

Basic Usage

html
<div class="progress">
  <div class="progress-bar" style="width: 60%"></div>
</div>

With Value

html
<div class="progress" data-value="75">
  <div class="progress-bar" style="width: 75%"></div>
</div>

Sizes

Use size modifiers to create progress bars of different heights.



html
<!-- Small -->
<div class="progress progress-sm">
  <div class="progress-bar" style="width: 45%"></div>
</div>
<br>

<!-- Medium (default) -->
<div class="progress">
  <div class="progress-bar" style="width: 60%"></div>
</div>
<br>

<!-- Large -->
<div class="progress progress-lg">
  <div class="progress-bar" style="width: 75%"></div>
</div>

Colors

Customize the progress bar color using color modifiers.





html
<!-- Primary (default) -->
<div class="progress">
  <div class="progress-bar" style="width: 60%"></div>
</div>

<!-- Secondary -->
<div class="progress">
  <div class="progress-bar progress-bar-secondary" style="width: 60%"></div>
</div>

<!-- Success -->
<div class="progress">
  <div class="progress-bar progress-bar-success" style="width: 60%"></div>
</div>

<!-- Warning -->
<div class="progress">
  <div class="progress-bar progress-bar-warning" style="width: 60%"></div>
</div>

<!-- Error -->
<div class="progress">
  <div class="progress-bar progress-bar-error" style="width: 60%"></div>
</div>

With Label

Show progress percentage or custom text.

Downloading...45%
html

<div>
  <div class="flex justify-between mb-1">
    <span class="text-sm font-medium">Downloading...</span>
    <span class="text-sm text-600">45%</span>
  </div>
  <div class="progress">
    <div class="progress-bar" style="width: 45%"></div>
  </div>
</div>

Striped

Add a striped pattern to the progress bar.

html
<div class="progress">
  <div class="progress-bar progress-bar-striped" style="width: 60%"></div>
</div>

Animated

Animate the stripes for active progress indication.

html
<div class="progress">
  <div class="progress-bar progress-bar-striped progress-bar-animated" style="width: 60%"></div>
</div>

Multiple Bars

Stack multiple progress bars for complex progress visualization.

html
<div class="progress">
  <div class="progress-bar progress-bar-success" style="width: 35%"></div>
  <div class="progress-bar progress-bar-warning" style="width: 20%"></div>
  <div class="progress-bar progress-bar-error" style="width: 10%"></div>
</div>

TypeScript Usage

typescript
import { Progress } from 'sageui';

// Create a progress bar
const progress = new Progress({
  value: 0,
  max: 100,
  color: 'primary',
  size: 'md',
  showLabel: true
});

// Update progress
progress.setValue(45);

// Set progress with animation
progress.animateTo(75, 1000); // animate to 75% over 1 second

Props

PropTypeDefaultDescription
valuenumber0Current progress value
maxnumber100Maximum progress value
size'sm' | 'md' | 'lg''md'Progress bar height
color'primary' | 'secondary' | 'success' | 'warning' | 'error''primary'Color theme
stripedbooleanfalseEnable striped pattern
animatedbooleanfalseAnimate the stripes
showLabelbooleanfalseShow progress label

CSS Classes

ClassDescription
progressBase progress container
progress-barProgress bar element
progress-smSmall size
progress-lgLarge size
progress-bar-secondarySecondary color
progress-bar-successSuccess color
progress-bar-warningWarning color
progress-bar-errorError color
progress-bar-stripedStriped pattern
progress-bar-animatedAnimated stripes
progress-labelProgress label text

Accessibility

  • Progress bars include appropriate ARIA attributes
  • Use role="progressbar" for screen readers
  • Include aria-valuenow, aria-valuemin, and aria-valuemax
html
<div class="progress" 
     role="progressbar" 
     aria-valuenow="60" 
     aria-valuemin="0" 
     aria-valuemax="100"
     aria-label="Upload progress">
  <div class="progress-bar" style="width: 60%">
    <span class="progress-label">60%</span>
  </div>
</div>

Examples

File Upload Progress

Uploading document.pdf67%
2.3 MB of 3.4 MB
html
<div class="space-y-2">
  <div class="flex justify-between">
    <span class="text-sm font-medium">Uploading document.pdf</span>
    <span class="text-sm text-600">67%</span>
  </div>
  <div class="progress">
    <div class="progress-bar progress-bar-striped progress-bar-animated" 
         style="width: 67%"></div>
  </div>
  <div class="text-xs text-500">2.3 MB of 3.4 MB</div>
</div>

Skill Level Indicator

JavaScript90%
Python75%
html
<div class="space-y-4">
  <div>
    <div class="flex justify-between mb-1">
      <span class="font-medium">JavaScript</span>
      <span class="text-600">90%</span>
    </div>
    <div class="progress">
      <div class="progress-bar progress-bar-success" style="width: 90%"></div>
    </div>
  </div>
  
  <div>
    <div class="flex justify-between mb-1">
      <span class="font-medium">Python</span>
      <span class="text-600">75%</span>
    </div>
    <div class="progress">
      <div class="progress-bar" style="width: 75%"></div>
    </div>
  </div>
</div>

Released under the MIT License.