Progress Bar

A progress bar is used to provide feedback on an action status and inform users about current progress. Although it is a small interface element, it is extremely helpful in managing user expectations and preventing abandonment of an initiated process.

Default markup

To create a default progress bar, add a .progress class to a <div> element. Thanks to that, you will be able to notify users how long they have to wait for a process to complete.

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

Progress size

Using Bootstrap’s typical naming structure, you can create a standard progress bar or scale it up or down to different sizes based on what’s needed.

<div class="progress progress-sm">...</div>

Look at the example below to see how it works:

57% Complete
<div class="progress progress-sm">
  <div class="progress-bar" style="width: 57%" role="progressbar"
    aria-valuenow="57" aria-valuemin="0" aria-valuemax="100"
    aria-label="57% Complete">
    <span class="visually-hidden">57% Complete</span>
  </div>
</div>

Indeterminate progress

You can create a progress bar which shows indeterminate progress by adding .progress-bar-indeterminate to the .progress-bar element.

<div class="progress progress-sm">
  <div class="progress-bar progress-bar-indeterminate"></div>
</div>

Native progress element

You can also use the native HTML5 <progress> element. It is a great way to create a progress bar without the need for additional HTML elements. This is what it looks like:

<progress class="progress progress-sm" value="15" max="100" />

Progress color

You can change the color of the progress bar by adding a color class to the .progress-bar element. You can use the color classes like .bg-primary, .bg-success, etc. to change the color of the progress bar.

See the full list of available colors for more details.

24% Complete
45% Complete
64% Complete
38% Complete
<div class="progress">
  <div class="progress-bar bg-red" style="width: 24%" role="progressbar"
    aria-valuenow="24" aria-valuemin="0" aria-valuemax="100"
    aria-label="24% Complete">
    <span class="visually-hidden">24% Complete</span>
  </div>
</div>
<div class="progress">
  <div class="progress-bar bg-green" style="width: 45%" role="progressbar"
    aria-valuenow="45" aria-valuemin="0" aria-valuemax="100"
    aria-label="45% Complete">
    <span class="visually-hidden">45% Complete</span>
  </div>
</div>
<div class="progress">
  <div class="progress-bar bg-purple" style="width: 64%" role="progressbar"
    aria-valuenow="64" aria-valuemin="0" aria-valuemax="100"
    aria-label="64% Complete">
    <span class="visually-hidden">64% Complete</span>
  </div>
</div>
<div class="progress">
  <div class="progress-bar bg-blue" style="width: 38%" role="progressbar"
    aria-valuenow="38" aria-valuemin="0" aria-valuemax="100"
    aria-label="38% Complete">
    <span class="visually-hidden">38% Complete</span>
  </div>
</div>

Multiple progress bars

You can stack multiple progress bars on top of each other to create a visually appealing design. This can be done by adding multiple .progress elements inside a .progress-stacked container.

<div class="progress-stacked">
  <div class="progress">...</div>
</div>

This is how it looks:

<div class="progress-stacked">
  <div class="progress" style="width: 15%">
    <div class="progress-bar"></div>
  </div>
  <div class="progress" style="width: 30%">
    <div class="progress-bar bg-success"></div>
  </div>
  <div class="progress" style="width: 20%">
    <div class="progress-bar bg-info"></div>
  </div>
</div>

Striped progress

You can create a striped progress bar by adding the .progress-bar-striped class to the .progress-bar element.

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

Progress background

By using a progress bar component as a background element, designers can create a dynamic and engaging visual experience for users. For example, the progress bar could be used to represent the completion of a long-term goal or project, such as a fundraising campaign or construction project. As users interact with the page, the progress bar could gradually fill up, creating a sense of momentum and progress.

Thanks to this you can create a nice looking statistics section:

65% Complete

Poland
65%

35% Complete

Germany
35%

28% Complete

United Stated
28%

20% Complete

United Kingdom
20%

15% Complete

France
15%

<div class="progressbg">


  <div class="progress progress-3 progressbg-progress">

    <div class="progress-bar bg-primary-lt" style="width: 65%"
      role="progressbar" aria-valuenow="65" aria-valuemin="0"
      aria-valuemax="100" aria-label="65% Complete">

      <span class="visually-hidden">65% Complete</span>

    </div>

  </div>

  <div class="progressbg-text">Poland</div>
  <div class="progressbg-value">65%</div>
</div>



<div class="progressbg">


  <div class="progress progress-3 progressbg-progress">

    <div class="progress-bar bg-primary-lt" style="width: 35%"
      role="progressbar" aria-valuenow="35" aria-valuemin="0"
      aria-valuemax="100" aria-label="35% Complete">

      <span class="visually-hidden">35% Complete</span>

    </div>

  </div>

  <div class="progressbg-text">Germany</div>
  <div class="progressbg-value">35%</div>
</div>



<div class="progressbg">


  <div class="progress progress-3 progressbg-progress">

    <div class="progress-bar bg-primary-lt" style="width: 28%"
      role="progressbar" aria-valuenow="28" aria-valuemin="0"
      aria-valuemax="100" aria-label="28% Complete">

      <span class="visually-hidden">28% Complete</span>

    </div>

  </div>

  <div class="progressbg-text">United Stated</div>
  <div class="progressbg-value">28%</div>
</div>



<div class="progressbg">


  <div class="progress progress-3 progressbg-progress">

    <div class="progress-bar bg-primary-lt" style="width: 20%"
      role="progressbar" aria-valuenow="20" aria-valuemin="0"
      aria-valuemax="100" aria-label="20% Complete">

      <span class="visually-hidden">20% Complete</span>

    </div>

  </div>

  <div class="progressbg-text">United Kingdom</div>
  <div class="progressbg-value">20%</div>
</div>



<div class="progressbg">


  <div class="progress progress-3 progressbg-progress">

    <div class="progress-bar bg-primary-lt" style="width: 15%"
      role="progressbar" aria-valuenow="15" aria-valuemin="0"
      aria-valuemax="100" aria-label="15% Complete">

      <span class="visually-hidden">15% Complete</span>

    </div>

  </div>

  <div class="progressbg-text">France</div>
  <div class="progressbg-value">15%</div>
</div>
© 2026 Tabler. All rights reserved.