Snippets Buttons

Bootstrap 5 Buttons with Icon Labels

A set of pill buttons that pair a coloured icon disc with a text label, with icon-left and icon-right layouts, semantic confirm and delete variants, plus loading and disabled states.

Bootstrap 5 No jQuery Jul 2019 2.3K views

<section class="wdw-stage">
  <div class="container" style="max-width:720px">
    <div class="wdw-card p-4 p-md-5">
      <span class="wdw-eyebrow">Buttons</span>
      <h1 class="h3 wdw-heading mb-4">Icon label buttons</h1>
      <p class="small fw-semibold text-body-secondary mb-2">Icon left</p>
      <div class="d-flex flex-wrap gap-3 mb-4">
        <button type="button" class="btn btn-outline-secondary btn-label rounded-pill pe-4"><span class="label-disc label-disc-primary"><i class="bi bi-bookmark" aria-hidden="true"></i></span>Bookmark</button>
        <button type="button" class="btn btn-outline-secondary btn-label rounded-pill pe-4"><span class="label-disc label-disc-success"><i class="bi bi-check-lg" aria-hidden="true"></i></span>Confirm</button>
        <button type="button" class="btn btn-outline-secondary btn-label rounded-pill pe-4"><span class="label-disc label-disc-danger"><i class="bi bi-trash3" aria-hidden="true"></i></span>Delete</button>
      </div>
      <p class="small fw-semibold text-body-secondary mb-2">Icon right</p>
      <div class="d-flex flex-wrap gap-3 mb-4">
        <button type="button" class="btn btn-outline-secondary btn-label rounded-pill ps-4">Continue<span class="label-disc label-disc-primary"><i class="bi bi-arrow-right" aria-hidden="true"></i></span></button>
      </div>
      <p class="small fw-semibold text-body-secondary mb-2">States</p>
      <div class="d-flex flex-wrap gap-3">
        <button type="button" class="btn btn-outline-secondary btn-label rounded-pill pe-4" id="loadBtn" aria-busy="false"><span class="label-disc label-disc-primary"><i class="bi bi-cloud-arrow-up icon-idle" aria-hidden="true"></i><span class="spinner-border spinner-border-sm d-none" aria-hidden="true"></span></span><span class="lbl">Upload</span></button>
        <button type="button" class="btn btn-outline-secondary btn-label rounded-pill pe-4" disabled><span class="label-disc label-disc-primary"><i class="bi bi-lock" aria-hidden="true"></i></span>Disabled</button>
      </div>
      <div class="visually-hidden" role="status" aria-live="polite" id="loadStatus"></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.