Snippets Carousel

Bootstrap 5 Testimonial Carousel with Autoplay

A testimonial carousel showing quote cards with star ratings and customer portraits. It scrolls and snaps one card at a time, autoplays, pauses on hover or focus, and shows one, two or three cards depending on screen width.

Bootstrap 5 Bootstrap 6 No jQuery May 2020 5.5K views

<section class="wdw-stage">
  <div class="container" style="max-width:1140px">
    <div class="d-flex flex-column flex-md-row align-items-md-end justify-content-between gap-3 mb-4">
      <div>
        <span class="wdw-eyebrow">Testimonials</span>
        <h2 class="wdw-heading display-6 mb-0">Loved by teams that ship</h2>
      </div>
      <p class="mb-0 d-flex align-items-center gap-2 wdw-muted"><span class="fs-3 fw-bold text-body-emphasis lh-1">4.9</span><span class="text-warning" aria-hidden="true">★★★★★</span><span>from 2,100 reviews</span></p>
    </div>
    <div class="row g-4 align-items-stretch">
      <div class="col-12 col-lg-4">
        <figure class="wdw-aurora rounded-4 p-4 p-lg-5 m-0 h-100 d-flex flex-column gap-3 overflow-hidden">
          <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" class="opacity-75"><path d="M9.5 6C6.5 7 4 9.800 4 14v4h6v-6H7c0-2 1-3 3-3.700L9.500 6Zm10 0c-3 1-5.500 3.800-5.500 8v4h6v-6h-3c0-2 1-3 3-3.700L19.500 6Z"/></svg>
          <blockquote class="mb-0 flex-grow-1"><p class="fs-4 fw-semibold lh-base mb-0">We replaced three tools with one, and the team never looked back. It is the calmest launch week we have had.</p></blockquote>
          <figcaption class="d-flex align-items-center gap-3">
            <img class="rounded-circle border border-2 border-white border-opacity-50" width="48" height="48" src="https://i.pravatar.cc/96?img=47" alt="Portrait of Priya Raman">
            <span class="lh-sm"><strong class="d-block">Priya Raman</strong><small class="text-white-50 d-block mb-1">VP Operations</small><span class="badge rounded-pill bg-white bg-opacity-25 fw-semibold">Meridian</span></span>
            <span class="visually-hidden">Rated 5 out of 5 stars.</span>
          </figcaption>
        </figure>
      </div>
      <div class="col-12 col-lg-8">
        <div class="wdw-slider" id="wdwSlider" role="region" aria-roledescription="carousel" aria-label="Customer testimonials" tabindex="0">
          <div class="wdw-track" id="wdwTrack" aria-live="off">
        <div class="wdw-slide" role="group" aria-roledescription="slide" aria-label="1 of 6">
          <figure class="position-relative wdw-card-sm h-100 p-4 m-0 d-flex flex-column gap-3">
            <div class="wdw-stars text-warning" aria-hidden="true">★★★★★</div>
            <blockquote class="mb-0 flex-grow-1"><p class="mb-0">“Reviews on site changed how we sell. Visitors trust us faster and our checkout conversion went up within weeks.”</p></blockquote>
            <figcaption class="d-flex align-items-center gap-3">
              <img class="rounded-circle" width="48" height="48" src="https://i.pravatar.cc/96?img=11" alt="Portrait of Delbert Simonas">
              <span class="lh-sm"><strong class="d-block text-body-emphasis">Delbert Simonas</strong><small class="wdw-muted d-block mb-1">Head of Product</small><span class="badge rounded-pill text-bg-light border fw-semibold">Lumen</span></span>
              <span class="visually-hidden">Rated 5 out of 5 stars.</span>
            </figcaption>
          </figure>
        </div>
        <div class="wdw-slide" role="group" aria-roledescription="slide" aria-label="2 of 6">
          <figure class="position-relative wdw-card-sm h-100 p-4 m-0 d-flex flex-column gap-3">
            <div class="wdw-stars text-warning" aria-hidden="true">★★★★★</div>
            <blockquote class="mb-0 flex-grow-1"><p class="mb-0">“I was skeptical it would fit our workflow. Two days in, the whole team had stopped asking for alternatives.”</p></blockquote>
            <figcaption class="d-flex align-items-center gap-3">
              <img class="rounded-circle" width="48" height="48" src="https://i.pravatar.cc/96?img=12" alt="Portrait of Tikoh Amin">
              <span class="lh-sm"><strong class="d-block text-body-emphasis">Tikoh Amin</strong><small class="wdw-muted d-block mb-1">Design Lead</small><span class="badge rounded-pill text-bg-light border fw-semibold">Northwind</span></span>
              <span class="visually-hidden">Rated 5 out of 5 stars.</span>
            </figcaption>
          </figure>
        </div>
        <div class="wdw-slide" role="group" aria-roledescription="slide" aria-label="3 of 6">
          <figure class="position-relative wdw-card-sm h-100 p-4 m-0 d-flex flex-column gap-3">
            <div class="wdw-stars text-warning" aria-hidden="true">★★★★★</div>
            <blockquote class="mb-0 flex-grow-1"><p class="mb-0">“The build quality and attention to detail are what sold me. It is the tool I open first every morning.”</p></blockquote>
            <figcaption class="d-flex align-items-center gap-3">
              <img class="rounded-circle" width="48" height="48" src="https://i.pravatar.cc/96?img=13" alt="Portrait of Malachi Lensing">
              <span class="lh-sm"><strong class="d-block text-body-emphasis">Malachi Lensing</strong><small class="wdw-muted d-block mb-1">Founder</small><span class="badge rounded-pill text-bg-light border fw-semibold">Orbit Studio</span></span>
              <span class="visually-hidden">Rated 5 out of 5 stars.</span>
            </figcaption>
          </figure>
        </div>
        <div class="wdw-slide" role="group" aria-roledescription="slide" aria-label="4 of 6">
          <figure class="position-relative wdw-card-sm h-100 p-4 m-0 d-flex flex-column gap-3">
            <div class="wdw-stars text-warning" aria-hidden="true">★★★★★</div>
            <blockquote class="mb-0 flex-grow-1"><p class="mb-0">“Fast, stable and genuinely well thought out. Setup took minutes and nothing has broken since.”</p></blockquote>
            <figcaption class="d-flex align-items-center gap-3">
              <img class="rounded-circle" width="48" height="48" src="https://i.pravatar.cc/96?img=14" alt="Portrait of Christian Isla">
              <span class="lh-sm"><strong class="d-block text-body-emphasis">Christian Isla</strong><small class="wdw-muted d-block mb-1">Engineer</small><span class="badge rounded-pill text-bg-light border fw-semibold">Fieldnote</span></span>
              <span class="visually-hidden">Rated 5 out of 5 stars.</span>
            </figcaption>
          </figure>
        </div>
        <div class="wdw-slide" role="group" aria-roledescription="slide" aria-label="5 of 6">
          <figure class="position-relative wdw-card-sm h-100 p-4 m-0 d-flex flex-column gap-3">
            <div class="wdw-stars text-warning" aria-hidden="true">★★★★★</div>
            <blockquote class="mb-0 flex-grow-1"><p class="mb-0">“Support answered in under an hour and the rollout to forty people was painless.”</p></blockquote>
            <figcaption class="d-flex align-items-center gap-3">
              <img class="rounded-circle" width="48" height="48" src="https://i.pravatar.cc/96?img=15" alt="Portrait of Amara Okafor">
              <span class="lh-sm"><strong class="d-block text-body-emphasis">Amara Okafor</strong><small class="wdw-muted d-block mb-1">COO</small><span class="badge rounded-pill text-bg-light border fw-semibold">Brightside</span></span>
              <span class="visually-hidden">Rated 5 out of 5 stars.</span>
            </figcaption>
          </figure>
        </div>
        <div class="wdw-slide" role="group" aria-roledescription="slide" aria-label="6 of 6">
          <figure class="position-relative wdw-card-sm h-100 p-4 m-0 d-flex flex-column gap-3">
            <div class="wdw-stars text-warning" aria-hidden="true">★★★★★</div>
            <blockquote class="mb-0 flex-grow-1"><p class="mb-0">“Clean docs, honest pricing and zero surprises. Exactly what we wanted from a vendor.”</p></blockquote>
            <figcaption class="d-flex align-items-center gap-3">
              <img class="rounded-circle" width="48" height="48" src="https://i.pravatar.cc/96?img=16" alt="Portrait of Jonas Weber">
              <span class="lh-sm"><strong class="d-block text-body-emphasis">Jonas Weber</strong><small class="wdw-muted d-block mb-1">CTO</small><span class="badge rounded-pill text-bg-light border fw-semibold">Parcel</span></span>
              <span class="visually-hidden">Rated 5 out of 5 stars.</span>
            </figcaption>
          </figure>
        </div>
          </div>
        </div>
        <div class="d-flex align-items-center justify-content-between flex-nowrap gap-2 mt-3">
          <div class="d-flex align-items-center" id="wdwDots" role="group" aria-label="Choose slide"></div>
          <div class="d-flex flex-nowrap gap-2">
            <button type="button" class="btn btn-outline-secondary rounded-circle p-0 wdw-ctl" id="wdwPause" aria-pressed="false" aria-label="Pause automatic rotation"><span class="wdw-ico-pause"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M8 5v14M16 5v14"/></svg></span><span class="wdw-ico-play d-none"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m7 4 13 8-13 8V4Z"/></svg></span></button>
            <button type="button" class="btn btn-outline-secondary rounded-circle p-0 wdw-ctl" id="wdwPrev" aria-label="Previous testimonials (loops to the end)"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m15 18-6-6 6-6"/></svg></button>
            <button type="button" class="btn btn-outline-secondary rounded-circle p-0 wdw-ctl" id="wdwNext" aria-label="Next testimonials (loops to the start)"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"/></svg></button>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

Built on Bootstrap 6.0.0-alpha.1 (ES modules, no jQuery). Load Bootstrap through an import map and run the JavaScript as type="module" — the downloaded file is already set up that way. Alpha releases can still change class names.

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