Snippets Billing

Bootstrap 5 Billing Summary Card with Checkout Button

A compact booking summary card showing appointment time, stylist, service duration and price, ending in a full-width checkout button.

Bootstrap 5 No jQuery Jul 2020 2K views

<section class="wdw-stage">
  <div class="container" style="max-width:440px">
    <article class="wdw-card overflow-hidden" aria-labelledby="bkTitle">
      <div class="p-4 d-flex justify-content-between align-items-center gap-3">
        <div>
          <span class="wdw-eyebrow mb-1">Your appointment</span>
          <h1 class="h5 wdw-heading mb-1" id="bkTitle">10:00 – 11:00 AM</h1>
          <div class="text-body-secondary small">Monday, August 19</div>
        </div>
        <img class="rounded-circle object-fit-cover" src="https://i.pravatar.cc/120?img=47" width="56" height="56" alt="Lindsey Johnson">
      </div>
      <div class="px-4 py-3 border-top d-flex justify-content-between align-items-center gap-3 bg-body-tertiary">
        <div>
          <div class="fw-semibold">Lindsey Johnson</div>
          <div class="d-flex align-items-center gap-2 mt-1"><span class="small text-body-secondary text-uppercase fw-semibold">Women’s cut</span><span class="badge rounded-pill bg-primary-subtle text-primary-emphasis">1 hr</span></div>
        </div>
        <div class="fw-bold fs-5 text-primary" id="bkPrice">$80.00</div>
      </div>
      <div class="px-4 py-3 border-top">
        <div class="d-flex justify-content-between small text-body-secondary mb-3"><span>Tax included</span><span class="d-inline-flex align-items-center gap-1"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg>Secure payment</span></div>
        <button type="button" class="btn btn-primary rounded-pill w-100 py-2" id="bkCheckout"><span>Checkout $80</span><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 6 6 6-6 6"/></svg></button>
        <div class="text-center small text-body-secondary mt-3" role="status" aria-live="polite" id="bkStatus"></div>
      </div>
    </article>
  </div>
</section>

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