Skip to component content

Show the completion progress of a task using Bootstrap's native progress bar.

Upload progress 64%

Usage

Use .progress and .progress-bar when completion can be measured as a value between a minimum and maximum. Render the bar with an accessible label, set the current value and maximum, and show nearby text when users need the task name, percentage, or status outside the visual track.

Keep the progress bar itself simple: Bootstrap drives the fill from width, supports labels when the bar is tall enough, and can stack multiple bars when the same track represents related segments. Moo UI uses a slim track, so readable labels belong beside or above the bar rather than inside it.

Use contextual color only when it communicates real state, and never rely on color alone. If the amount of work cannot be measured, use Spinner or a loading state instead of showing a fake percentage.

Default

A slim, rounded bar; the fill width is driven entirely by value/max.

Progress
<div class="w-100">
  <div>
    <div
        class="progress"
        role="progressbar"
        aria-label="Upload progress"
        aria-valuenow="66"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 66%"></div>
    </div>
  </div>
</div>

Values

Stack several bars to compare progress across related tasks.

Progress
<div class="d-grid gap-3">
  <div>
    <div
        class="progress"
        role="progressbar"
        aria-label="Step 1 progress"
        aria-valuenow="20"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 20%"></div>
    </div>
  </div>
  <div>
    <div
        class="progress"
        role="progressbar"
        aria-label="Step 2 progress"
        aria-valuenow="50"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 50%"></div>
    </div>
  </div>
  <div>
    <div
        class="progress"
        role="progressbar"
        aria-label="Step 3 progress"
        aria-valuenow="90"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 90%"></div>
    </div>
  </div>
</div>

With label

Set show_label=true to render the name and percentage above the bar; the 4px track is too thin for readable inline text.

Progress
Download progress 40%
<div class="w-100">
  <div>
    <div class="d-flex justify-content-between small mb-1">
      <span>Download progress</span>
      <span class="text-body-secondary">40%</span>
    </div>
    <div
        class="progress"
        role="progressbar"
        aria-label="Download progress"
        aria-valuenow="40"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 40%"></div>
    </div>
  </div>
</div>

RTL

Use tabs to compare Arabic, Hebrew, and English progress bars with the fill growing from the reading-direction start.

تقدم التنزيل 40%
<div dir="rtl" class="w-100">
  <div>
    <div class="d-flex justify-content-between small mb-1">
      <span>تقدم التنزيل</span>
      <span class="text-body-secondary">40%</span>
    </div>
    <div
        class="progress"
        role="progressbar"
        aria-label="تقدم التنزيل"
        aria-valuenow="40"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 40%"></div>
    </div>
  </div>
</div>
התקדמות ההורדה 40%
<div dir="rtl" class="w-100">
  <div>
    <div class="d-flex justify-content-between small mb-1">
      <span>התקדמות ההורדה</span>
      <span class="text-body-secondary">40%</span>
    </div>
    <div
        class="progress"
        role="progressbar"
        aria-label="התקדמות ההורדה"
        aria-valuenow="40"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 40%"></div>
    </div>
  </div>
</div>
Download progress 40%
<div dir="ltr" class="w-100">
  <div>
    <div class="d-flex justify-content-between small mb-1">
      <span>Download progress</span>
      <span class="text-body-secondary">40%</span>
    </div>
    <div
        class="progress"
        role="progressbar"
        aria-label="Download progress"
        aria-valuenow="40"
        aria-valuemin="0"
        aria-valuemax="100"
      >
      <div class="progress-bar" style="width: 40%"></div>
    </div>
  </div>
</div>

Component reference

Status
Accepted
Runtime
native HTML/CSS
Markup
Bootstrap/native HTML
Reference

For Bootstrap's source behavior and stacked/striped/animated variants, see the Bootstrap Progress documentation.

Settings

Theme
Choose how Moo UI looks on this device.
Sidebar
Choose how the sidebar sits on the page.
Theme Builder
Tune catalog tokens and chart colors for this browser.
Base color
Theme color
Chart color
Heading font
Body font
Radius
Direction
Choose the reading direction. RTL flips the layout live.
Reset

Restore the default appearance.