Snippets Animation

Bootstrap 5 Bar Loading Animations and Progress

A set of CSS-only loading animations, a rotating four-bar pinwheel, an equaliser and a sweeping track, with a determinate progress bar driven by a start button.

Bootstrap 5 No jQuery Mar 2020 2.1K views

<section class="wdw-stage loaders">
  <div class="container" style="max-width:960px">
    <div class="text-center mb-4">
      <span class="wdw-eyebrow">Loaders</span>
      <h2 class="wdw-heading h3 mb-1">Bar loading animations</h2>
      <p class="wdw-muted mb-0">Pure CSS loaders in one accent, shown in context.</p>
    </div>
    <div class="row g-4">
      <div class="col-md-4">
        <div class="wdw-card p-4 h-100 demo d-flex flex-column align-items-center justify-content-between text-center gap-3">
          <div class="stage-box"><div class="pinwheel" aria-hidden="true"><i></i><i></i><i></i><i></i></div></div>
          <div><h3 class="h6 fw-bold mb-0">Pinwheel</h3><p class="wdw-muted small mb-0">Four bars chasing each other</p></div>
        </div>
      </div>
      <div class="col-md-4">
        <div class="wdw-card p-4 h-100 demo d-flex flex-column align-items-center justify-content-between text-center gap-3">
          <div class="stage-box"><div class="wave" aria-hidden="true"><i></i><i></i><i></i><i></i><i></i><i></i><i></i></div></div>
          <div><h3 class="h6 fw-bold mb-0">Bars wave</h3><p class="wdw-muted small mb-0">A staggered rise and fall</p></div>
        </div>
      </div>
      <div class="col-md-4">
        <div class="wdw-card p-4 h-100 demo d-flex flex-column align-items-stretch justify-content-between gap-3">
          <div class="stage-box w-100" aria-hidden="true">
            <div class="skeleton w-100">
              <div class="d-flex gap-3 align-items-center mb-3"><span class="sk sk-avatar"></span><div class="flex-grow-1"><span class="sk sk-line w-75 mb-2"></span><span class="sk sk-line w-50"></span></div></div>
              <span class="sk sk-block"></span>
            </div>
          </div>
          <div class="text-center"><h3 class="h6 fw-bold mb-0">Skeleton</h3><p class="wdw-muted small mb-0">Shimmer placeholder card</p></div>
        </div>
      </div>
      <div class="col-md-4">
        <div class="wdw-card p-4 h-100 demo d-flex flex-column align-items-center justify-content-center gap-3 text-center">
          <button type="button" class="btn btn-primary rounded-pill px-4" data-save>
            <span class="mini-bars" aria-hidden="true"><i></i><i></i><i></i></span>
            <span data-save-label>Save changes</span>
          </button>
          <p class="wdw-muted small mb-0">Button loading state</p>
        </div>
      </div>
      <div class="col-md-8">
        <div class="wdw-card p-4 h-100 demo d-flex flex-column flex-sm-row align-items-sm-center gap-3">
          <div class="flex-grow-1">
            <div class="d-flex justify-content-between small fw-semibold mb-2"><span data-load-label role="status" aria-live="polite">Ready to upload</span><span data-load-pct aria-hidden="true">0%</span></div>
            <div class="progress" style="height:.75rem" role="progressbar" aria-label="Upload progress" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar rounded-pill" style="width:0"></div></div>
          </div>
          <button type="button" class="btn btn-primary rounded-pill px-4" data-load-start>Start upload</button>
        </div>
      </div>
    </div>
  </div>
</section>

Built on Bootstrap 5.3.8 with plain JavaScript — no jQuery. Supports light and dark mode via data-bs-theme.

Free to use in personal and commercial projects under the MIT license.