<div class="progress mb-3"><div class="progress-bar"role="progressbar"aria-valuenow="0"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar"role="progressbar"style="width:25%"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar"role="progressbar"style="width:50%"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar"role="progressbar"style="width:75%"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress"><div class="progress-bar"role="progressbar"style="width:100%"aria-valuenow="100"aria-valuemin="0"aria-valuemax="100"></div></div>
Progress components are built with two HTML elements,some CSS to set the width,and a few attributes. We don’t use the HTML5 <progress>
element,ensuring you can stack progress bars,animate them,and place text labels over them.
.progress
as a wrapper to indicate the max value of the progress bar.
.progress-bar
to indicate the progress so far.
.progress-bar
requires an inline style,utility class,or custom CSS to set their width.
.progress-bar
also requires some role
and aria
attributes to make it accessible.
Put that all together,and you have the following examples.
<div class="progress mb-3"style="height:3px;"><div class="progress-bar"role="progressbar"style="width:25%;"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100">25%</div></div><div class="progress mb-3"style="height:10px;"><div class="progress-bar"role="progressbar"style="width:50%;"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100">50%</div></div><div class="progress mb-3"style="height:15px;"><div class="progress-bar"role="progressbar"style="width:75%;"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100">75%</div></div><div class="progress"style="height:20px;"><div class="progress-bar"role="progressbar"style="width:99%;"aria-valuenow="99"aria-valuemin="0"aria-valuemax="100">99%</div></div>
We only set a height
value on the .progress
,so if you change that value the inner .progress-bar
will automatically resize accordingly.
<div class="progress mb-3"><div class="progress-bar progress-bar-striped progress-bar-animated"role="progressbar"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"style="width:75%"></div></div><div class="progress"><div class="progress-bar progress-bar-striped progress-bar-animated bg-success"role="progressbar"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"style="width:75%"></div></div>
The striped gradient can also be animated. Add .progress-bar-animated
to .progress-bar
to animate the stripes right to left via CSS3 animations.
<div class="progress mb-3"><div class="progress-bar"role="progressbar"style="width:25%;"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100">25%</div></div><div class="progress mb-3"><div class="progress-bar"role="progressbar"style="width:50%;"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100">50%</div></div><div class="progress mb-3"><div class="progress-bar"role="progressbar"style="width:75%;"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100">75%</div></div><div class="progress"><div class="progress-bar"role="progressbar"style="width:99%;"aria-valuenow="99"aria-valuemin="0"aria-valuemax="100">99%</div></div>
Add labels to your progress bars by placing text within the .progress-bar
.
<div class="progress mb-3"><div class="progress-bar bg-success"role="progressbar"style="width:25%"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar bg-info"role="progressbar"style="width:50%"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar bg-warning"role="progressbar"style="width:75%"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress"><div class="progress-bar bg-danger"role="progressbar"style="width:100%"aria-valuenow="100"aria-valuemin="0"aria-valuemax="100"></div></div>
Use background utility classes to change the appearance of individual progress bars.
<div class="progress"><div class="progress-bar"role="progressbar"style="width:15%"aria-valuenow="15"aria-valuemin="0"aria-valuemax="100"></div><div class="progress-bar bg-success"role="progressbar"style="width:30%"aria-valuenow="30"aria-valuemin="0"aria-valuemax="100"></div><div class="progress-bar bg-info"role="progressbar"style="width:20%"aria-valuenow="20"aria-valuemin="0"aria-valuemax="100"></div></div>
Include multiple progress bars in a progress component if you need.
<div class="progress mb-3"><div class="progress-bar progress-bar-striped"role="progressbar"style="width:10%"aria-valuenow="10"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar progress-bar-striped bg-success"role="progressbar"style="width:25%"aria-valuenow="25"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar progress-bar-striped bg-info"role="progressbar"style="width:50%"aria-valuenow="50"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress mb-3"><div class="progress-bar progress-bar-striped bg-warning"role="progressbar"style="width:75%"aria-valuenow="75"aria-valuemin="0"aria-valuemax="100"></div></div><div class="progress"><div class="progress-bar progress-bar-striped bg-danger"role="progressbar"style="width:100%"aria-valuenow="100"aria-valuemin="0"aria-valuemax="100"></div></div>
Add .progress-bar-striped
to any .progress-bar
to apply a stripe via CSS gradient over the progress bar’s background color.