Bootstrap - Bootstrap 5 progress bars
Bootstrap 5 progress bars are used to visually represent completion or progress of a task. They are highly customizable, responsive, and support colors, labels, striped effects, animated stripes, stacked bars, and height variations.
Here’s a detailed explanation with examples:
1. Basic Progress Bar
<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>
Explanation:
-
.progress
→ Container for the progress bar. -
.progress-bar
→ The actual progress bar. -
style="width: 50%;"
→ Sets the progress visually. -
aria-valuenow
,aria-valuemin
,aria-valuemax
→ Accessibility.
2. Colored Progress Bars
Bootstrap 5 provides contextual color classes:
<div class="progress mb-3">
<div class="progress-bar bg-success" style="width: 25%;">25%</div>
</div>
<div class="progress mb-3">
<div class="progress-bar bg-info" style="width: 50%;">50%</div>
</div>
<div class="progress mb-3">
<div class="progress-bar bg-warning" style="width: 75%;">75%</div>
</div>
<div class="progress mb-3">
<div class="progress-bar bg-danger" style="width: 100%;">100%</div>
</div>
-
bg-success
,bg-info
,bg-warning
,bg-danger
change the color.
3. Striped Progress Bars
Add .progress-bar-striped
to create striped patterns.
<div class="progress mb-3">
<div class="progress-bar progress-bar-striped" style="width: 50%;">50%</div>
</div>
4. Animated Striped Progress Bars
Add .progress-bar-animated
along with .progress-bar-striped
for moving stripes.
<div class="progress mb-3">
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width: 75%;">75%</div>
</div>
5. Multiple / Stacked Progress Bars
You can stack multiple bars inside a single .progress
container.
<div class="progress mb-3">
<div class="progress-bar bg-success" style="width: 35%"></div>
<div class="progress-bar bg-warning" style="width: 20%"></div>
<div class="progress-bar bg-danger" style="width: 25%"></div>
</div>
6. Progress Bar Heights
Set height using inline style
or .progress
height:
<div class="progress mb-3" style="height: 1rem;">
<div class="progress-bar bg-info" style="width: 40%"></div>
</div>
<div class="progress mb-3" style="height: 2rem;">
<div class="progress-bar bg-primary" style="width: 60%"></div>
</div>
7. Progress Bar Labels
You can add text inside the bar:
<div class="progress mb-3">
<div class="progress-bar bg-success" style="width: 70%;">70% Complete</div>
</div>
8. Progress Bars with Tooltips
You can combine Bootstrap tooltips:
<div class="progress mb-3" style="height: 2rem;">
<div class="progress-bar bg-info" style="width: 60%;" data-bs-toggle="tooltip" title="60% Complete">60%</div>
</div>
<script>
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
const tooltipList = [...tooltipTriggerList].map(el => new bootstrap.Tooltip(el));
</script>
9. Full Example: Bootstrap 5 Progress Bars
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Bootstrap 5 Progress Bars</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="p-4">
<h3>Bootstrap 5 Progress Bars</h3>
<!-- Basic -->
<div class="progress mb-3">
<div class="progress-bar" role="progressbar" style="width: 50%;">50%</div>
</div>
<!-- Colors -->
<div class="progress mb-3">
<div class="progress-bar bg-success" style="width: 25%;">25%</div>
</div>
<div class="progress mb-3">
<div class="progress-bar bg-info" style="width: 50%;">50%</div>
</div>
<div class="progress mb-3">
<div class="progress-bar bg-warning" style="width: 75%;">75%</div>
</div>
<div class="progress mb-3">
<div class="progress-bar bg-danger" style="width: 100%;">100%</div>
</div>
<!-- Striped -->
<div class="progress mb-3">
<div class="progress-bar progress-bar-striped" style="width: 50%;">50%</div>
</div>
<!-- Animated -->
<div class="progress mb-3">
<div class="progress-bar progress-bar-striped progress-bar-animated" style="width: 75%;">75%</div>
</div>
<!-- Stacked -->
<div class="progress mb-3">
<div class="progress-bar bg-success" style="width: 35%"></div>
<div class="progress-bar bg-warning" style="width: 20%"></div>
<div class="progress-bar bg-danger" style="width: 25%"></div>
</div>
<!-- Height variation -->
<div class="progress mb-3" style="height: 2rem;">
<div class="progress-bar bg-primary" style="width: 60%;">60%</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>