Snippets Animation

Bootstrap 5 CSS Loaders and Loading Button

A set of pure CSS loading animations, including a liquid-fill tile, ring, dots and bars, plus a button with an inline loading state.

Bootstrap 5 No jQuery Feb 2020 2.2K views

<section class="wdw-stage">
  <div class="container" style="max-width: 760px">
    <div class="wdw-card p-4 p-md-5">
      <div class="text-center">
        <span class="wdw-eyebrow mb-2">Loading states</span>
        <h2 class="wdw-heading h3 mb-4">Pure CSS loaders</h2>
        <div class="ld-liquid mx-auto" role="status"><span class="visually-hidden">Loading...</span></div>
        <p class="wdw-muted mt-4 mb-0">Syncing your workspace…</p>
      </div>

      <div class="row g-3 mt-4">
        <div class="col-4">
          <div class="bg-body-tertiary rounded-4 p-3 p-md-4 text-center h-100">
            <div class="ld-ring mx-auto" role="status"><span class="visually-hidden">Loading...</span></div>
            <p class="small fw-semibold mt-3 mb-0">Ring</p>
          </div>
        </div>
        <div class="col-4">
          <div class="bg-body-tertiary rounded-4 p-3 p-md-4 text-center h-100">
            <div class="ld-dots mx-auto" role="status"><i></i><i></i><i></i><span class="visually-hidden">Loading...</span></div>
            <p class="small fw-semibold mt-3 mb-0">Dots</p>
          </div>
        </div>
        <div class="col-4">
          <div class="bg-body-tertiary rounded-4 p-3 p-md-4 text-center h-100">
            <div class="ld-bars mx-auto" role="status"><i></i><i></i><i></i><i></i><span class="visually-hidden">Loading...</span></div>
            <p class="small fw-semibold mt-3 mb-0">Bars</p>
          </div>
        </div>
      </div>

      <div class="d-flex flex-wrap align-items-center justify-content-center gap-3 mt-4 pt-4 border-top">
        <button type="button" class="btn btn-primary rounded-pill px-4 ld-btn">
          <span class="spinner-border spinner-border-sm d-none" aria-hidden="true"></span>
          <span class="ld-btn-label">Save changes</span>
        </button>
        <span class="small wdw-muted">Click the button to see an inline loading state.</span>
      </div>
    </div>
  </div>
</section>

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