Skip to main content
/
/
/
Progress bar

Progress bar

Since browser support for styling the <progress> element is rather limited, we have opted to implement our own.

Basic progress bar

<div class="bf-progressbar" title="25%"> <div class="bf-progressbar-progress" style="width: 25%"></div> </div>
<div class="bf-progressbar" title="25%"> <div class="bf-progressbar-progress" style="width: 25%"></div> </div>

With label

<div class="bf-progressbar-wrapper"> <div class="bf-progressbar"> <div class="bf-progressbar-progress" style="width: 70%"></div> </div> <span class="bf-progressbar-label">70%</span> </div>
<div class="bf-progressbar-wrapper"> <div class="bf-progressbar"> <div class="bf-progressbar-progress" style="width: 70%"></div> </div> <span class="bf-progressbar-label">70%</span> </div>
70%

Sizes

<div class="bf-progressbar-wrapper"> <div class="bf-progressbar bf-progressbar-small"> <div class="bf-progressbar-progress" style="width: 20%"></div> </div> <span class="bf-progressbar-label">20%</span> </div> <div class="bf-progressbar-wrapper"> <div class="bf-progressbar bf-progressbar-large"> <div class="bf-progressbar-progress" style="width: 55%"></div> </div> <span class="bf-progressbar-label">55%</span> </div>
<div class="bf-progressbar-wrapper"> <div class="bf-progressbar bf-progressbar-small"> <div class="bf-progressbar-progress" style="width: 20%"></div> </div> <span class="bf-progressbar-label">20%</span> </div> <div class="bf-progressbar-wrapper"> <div class="bf-progressbar bf-progressbar-large"> <div class="bf-progressbar-progress" style="width: 55%"></div> </div> <span class="bf-progressbar-label">55%</span> </div>
20%
55%

Disabled

<div class="bf-progressbar-wrapper"> <div class="bf-progressbar bf-progressbar-disabled"> <div class="bf-progressbar-progress" style="width: 69%"></div> </div> <span class="bf-progressbar-label">69%</span> </div>
<div class="bf-progressbar-wrapper"> <div class="bf-progressbar bf-progressbar-disabled"> <div class="bf-progressbar-progress" style="width: 69%"></div> </div> <span class="bf-progressbar-label">69%</span> </div>
69%

Sandbox

Changes between values are animated.

<link rel="stylesheet" href="https://unpkg.com/@intility/bifrost-css@latest/dist/bifrost-all.css" /><link rel="stylesheet" href="styles.css" />

<div class="bfl-grid bf-page-padding">
  <div class="bf-progressbar-wrapper">
    <div class="bf-progressbar">
      <div
        class="bf-progressbar-progress"
        style="width: 70%"
        id="progressElement"
      ></div>
    </div>
    <span class="bf-progressbar-label" id="progressLabel">70%</span>
  </div>
  <div>
    <button class="bf-button" id="demoButton">Set random value</button>
  </div>
</div>

<script>
  demoButton.addEventListener("click", () => {
    const randomPercentage = Math.round(Math.random() * 100) + "%";
    progressElement.style.width = randomPercentage;
    progressLabel.innerHTML = randomPercentage;
  });
</script>