Snippets Sidebar

Bootstrap 5 Coupon Card Template

A ticket-style coupon card with a photo, discounted price, included services and a copy-code and print footer.

Bootstrap 5 No jQuery Aug 2020 2K views

<section class="wdw-stage">
  <div class="container" style="max-width: 56rem;">
    <article class="wdw-card overflow-hidden">
      <div class="row g-0">
        <div class="col-md-5 position-relative wdw-coupon-photo">
          <img src="https://images.unsplash.com/photo-1560066984-138dadb4c035?auto=format&fit=crop&w=800&q=70" alt="Stylist cutting a client's hair in a bright salon" class="position-absolute top-0 start-0 w-100 h-100 object-fit-cover" width="800" height="1000">
          <span class="badge text-bg-light rounded-pill position-absolute top-0 start-0 m-3 px-3 py-2">Glow Salon</span>
        </div>
        <div class="col-md-7 d-flex flex-column">
          <div class="p-4 p-lg-5 flex-grow-1">
            <span class="wdw-eyebrow mb-2">Spa day bundle</span>
            <div class="d-flex align-items-end gap-3 mb-3">
              <p class="wdw-heading display-4 lh-1 mb-0">$99</p>
              <p class="wdw-muted mb-1"><s>$180</s> <span class="badge text-bg-success rounded-pill ms-1">Save 45%</span></p>
            </div>
            <ul class="list-unstyled d-grid gap-2 mb-4">
              <li class="d-flex align-items-center gap-2"><svg class="text-primary flex-shrink-0" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12 5 5L20 7"/></svg>Two hair spa sessions</li>
              <li class="d-flex align-items-center gap-2"><svg class="text-primary flex-shrink-0" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12 5 5L20 7"/></svg>Haircut and styling</li>
              <li class="d-flex align-items-center gap-2"><svg class="text-primary flex-shrink-0" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12 5 5L20 7"/></svg>Full arms and legs waxing</li>
              <li class="d-flex align-items-center gap-2"><svg class="text-primary flex-shrink-0" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12 5 5L20 7"/></svg>Manicure and pedicure</li>
              <li class="d-flex align-items-center gap-2"><svg class="text-primary flex-shrink-0" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m5 12 5 5L20 7"/></svg>Eyebrow threading</li>
            </ul>
            <p class="small wdw-muted mb-0">Not valid with other offers. Show this coupon at write-up. No cash value.</p>
          </div>
          <div class="wdw-coupon-foot p-3 p-lg-4 d-flex flex-wrap align-items-center gap-3">
            <div class="me-auto">
              <p class="small wdw-muted mb-0">Code · expires Sep 29</p>
              <p class="fw-bold font-monospace fs-5 mb-0" id="couponCode">ADDY08</p>
            </div>
            <button type="button" class="btn btn-primary rounded-pill px-4" id="copyCoupon">Copy code</button>
            <button type="button" class="btn btn-outline-primary rounded-pill" id="printCoupon">Print</button>
          </div>
        </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.

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