Snippets Caption

Bootstrap 5 Carousel with Captions and Call to Action

A full-width fashion carousel with fading slides, a text scrim, headline captions and call-to-action buttons. It includes arrow controls, pill indicators and auto-play.

Bootstrap 5 No jQuery Apr 2020 2.5K views

<section class="wdw-stage">
  <div class="container" style="max-width:1000px">
    <div id="fashionSlider" class="carousel slide carousel-fade fashion-slider" data-bs-ride="carousel" data-bs-interval="6000" aria-label="Featured collections" aria-roledescription="carousel">
      <div class="carousel-indicators"><button type="button" data-bs-target="#fashionSlider" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button><button type="button" data-bs-target="#fashionSlider" data-bs-slide-to="1" aria-label="Slide 2"></button><button type="button" data-bs-target="#fashionSlider" data-bs-slide-to="2" aria-label="Slide 3"></button></div>
      <div class="carousel-inner">
        <div class="carousel-item active" role="group" aria-roledescription="slide" aria-label="1 of 3">
          <img src="https://images.unsplash.com/photo-1483985988355-763728e1935b?auto=format&fit=crop&w=1600&q=75" class="d-block w-100" alt="Woman in a light spring coat walking through a sunlit city street">
          <div class="cap-scrim"></div>
          <div class="cap-body">
            <span class="cap-eyebrow">Spring 2026</span>
            <h2 class="cap-title">Top new collections</h2>
            <p class="cap-text">Lightweight layers and clean silhouettes, designed to move from the studio to the street.</p>
            <a href="#" class="btn btn-light rounded-pill px-4">Shop new in</a>
          </div>
        </div>
        <div class="carousel-item" role="group" aria-roledescription="slide" aria-label="2 of 3">
          <img src="https://images.unsplash.com/photo-1515886657613-9f3515b0c78f?auto=format&fit=crop&w=1600&q=75" class="d-block w-100" alt="Rail of folded knitwear and shirts in a bright boutique" loading="lazy">
          <div class="cap-scrim"></div>
          <div class="cap-body">
            <span class="cap-eyebrow">Featured brands</span>
            <h2 class="cap-title">Made to be worn daily</h2>
            <p class="cap-text">Fifty independent labels, one considered edit. Free returns on every order.</p>
            <a href="#" class="btn btn-light rounded-pill px-4">Meet the brands</a>
          </div>
        </div>
        <div class="carousel-item" role="group" aria-roledescription="slide" aria-label="3 of 3">
          <img src="https://images.unsplash.com/photo-1445205170230-053b83016050?auto=format&fit=crop&w=1600&q=75" class="d-block w-100" alt="Neutral blazers and trousers hanging on a clothing rack" loading="lazy">
          <div class="cap-scrim"></div>
          <div class="cap-body">
            <span class="cap-eyebrow">Season edit</span>
            <h2 class="cap-title">Tailoring, softened</h2>
            <p class="cap-text">Relaxed cuts in natural fabrics. New pieces land every Thursday.</p>
            <a href="#" class="btn btn-light rounded-pill px-4">View the edit</a>
          </div>
        </div>
      </div>
      <button class="carousel-control-prev" type="button" data-bs-target="#fashionSlider" data-bs-slide="prev"><span class="ctl"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M15 5l-7 7 7 7"/></svg></span><span class="visually-hidden">Previous</span></button>
      <button class="carousel-control-next" type="button" data-bs-target="#fashionSlider" data-bs-slide="next"><span class="ctl"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.25" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 5l7 7-7 7"/></svg></span><span class="visually-hidden">Next</span></button>
      <button type="button" class="btn-pause" id="sliderToggle" aria-label="Pause automatic slide show"><svg class="ic-pause" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><rect x="6" y="5" width="4" height="14" rx="1"/><rect x="14" y="5" width="4" height="14" rx="1"/></svg><svg class="ic-play" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M8 5.5v13a1 1 0 0 0 1.5.86l10.5-6.5a1 1 0 0 0 0-1.72L9.5 4.64A1 1 0 0 0 8 5.5z"/></svg></button>
    </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.