Snippets Card

Bootstrap 5 Vertical Testimonial Carousel

A vertical stacked-card testimonial carousel that auto-rotates, pauses on hover and has previous and next controls.

Bootstrap 5 No jQuery Jan 2020 3.6K views

<section class="wdw-stage">
  <div class="container" style="max-width:1100px">
    <div class="row align-items-center gy-5 gx-lg-5">
      <div class="col-lg-5">
        <span class="wdw-eyebrow">Testimonials</span>
        <h2 class="wdw-heading display-6 mt-2">Loved by teams who ship fast</h2>
        <p class="wdw-muted fs-5">No contracts, no lock-in. Just great content, whenever you need it.</p>
        <div class="d-flex gap-2 mt-4">
          <button type="button" class="btn btn-outline-primary rounded-pill px-3" id="vcPrev" aria-label="Previous testimonial">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 15l6-6 6 6"/></svg>
          </button>
          <button type="button" class="btn btn-primary rounded-pill px-3" id="vcNext" aria-label="Next testimonial">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>
          </button>
          <button type="button" class="btn btn-outline-secondary rounded-pill px-3" id="vcPause" aria-pressed="false" aria-label="Pause auto-rotation"><svg class="vc-i-pause" width="18" height="18" 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="vc-i-play" width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M7 4.5v15a1 1 0 0 0 1.5.9l12-7.5a1 1 0 0 0 0-1.8l-12-7.5A1 1 0 0 0 7 4.5z"/></svg></button>
        </div>
      </div>
      <div class="col-lg-7">
        <div class="vc-stack" id="vcStack" role="region" aria-roledescription="carousel" aria-label="Customer testimonials" aria-live="off">
          <article class="vc-card wdw-card p-4 pb-3 d-flex flex-column" data-pos="0" aria-hidden="false">
            <svg class="vc-quote" width="48" height="48" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.5 6.8 4 9.6 4 13.5V18h6v-6H7c0-2 1-3.4 2.8-4zM19.5 6c-3 .8-5.5 3.6-5.5 7.5V18h6v-6h-3c0-2 1-3.4 2.8-4z"/></svg>
            <span class="text-warning d-flex gap-1 mb-3" role="img" aria-label="5 out of 5 stars"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg></span>
            <blockquote class="fs-5 fw-semibold text-body-emphasis mb-auto lh-base">With no contractual commitments comes the freedom of having top notch content created whenever you need it.</blockquote>
            <div class="d-flex align-items-center gap-3 pt-3">
              <img class="rounded-circle flex-shrink-0" src="https://i.pravatar.cc/112?img=5" width="48" height="48" alt="Charlize Theron">
              <div>
                <h3 class="h6 fw-bold mb-0 text-body-emphasis">Charlize Theron</h3>
                <p class="small text-body-secondary mb-0">Head of Content, Northwind · New York, NY</p>
              </div>
            </div>
          </article>
          <article class="vc-card wdw-card p-4 pb-3 d-flex flex-column" data-pos="1" aria-hidden="true">
            <svg class="vc-quote" width="48" height="48" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.5 6.8 4 9.6 4 13.5V18h6v-6H7c0-2 1-3.4 2.8-4zM19.5 6c-3 .8-5.5 3.6-5.5 7.5V18h6v-6h-3c0-2 1-3.4 2.8-4z"/></svg>
            <span class="text-warning d-flex gap-1 mb-3" role="img" aria-label="5 out of 5 stars"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg></span>
            <blockquote class="fs-5 fw-semibold text-body-emphasis mb-auto lh-base">Our turnaround dropped from two weeks to three days. The team feels like an extension of ours.</blockquote>
            <div class="d-flex align-items-center gap-3 pt-3">
              <img class="rounded-circle flex-shrink-0" src="https://i.pravatar.cc/112?img=12" width="48" height="48" alt="Marcus Oyelaran">
              <div>
                <h3 class="h6 fw-bold mb-0 text-body-emphasis">Marcus Oyelaran</h3>
                <p class="small text-body-secondary mb-0">Product Lead, Kobo Labs · Lagos, NG</p>
              </div>
            </div>
          </article>
          <article class="vc-card wdw-card p-4 pb-3 d-flex flex-column" data-pos="2" aria-hidden="true">
            <svg class="vc-quote" width="48" height="48" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.5 6.8 4 9.6 4 13.5V18h6v-6H7c0-2 1-3.4 2.8-4zM19.5 6c-3 .8-5.5 3.6-5.5 7.5V18h6v-6h-3c0-2 1-3.4 2.8-4z"/></svg>
            <span class="text-warning d-flex gap-1 mb-3" role="img" aria-label="5 out of 5 stars"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg></span>
            <blockquote class="fs-5 fw-semibold text-body-emphasis mb-auto lh-base">Clear scopes, honest timelines and design that actually ships. We renewed within a month.</blockquote>
            <div class="d-flex align-items-center gap-3 pt-3">
              <img class="rounded-circle flex-shrink-0" src="https://i.pravatar.cc/112?img=44" width="48" height="48" alt="Sofia Lindqvist">
              <div>
                <h3 class="h6 fw-bold mb-0 text-body-emphasis">Sofia Lindqvist</h3>
                <p class="small text-body-secondary mb-0">Design Director, Fjord & Co · Stockholm, SE</p>
              </div>
            </div>
          </article>
          <article class="vc-card wdw-card p-4 pb-3 d-flex flex-column" data-pos="3" aria-hidden="true">
            <svg class="vc-quote" width="48" height="48" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.5 6.8 4 9.6 4 13.5V18h6v-6H7c0-2 1-3.4 2.8-4zM19.5 6c-3 .8-5.5 3.6-5.5 7.5V18h6v-6h-3c0-2 1-3.4 2.8-4z"/></svg>
            <span class="text-warning d-flex gap-1 mb-3" role="img" aria-label="5 out of 5 stars"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg></span>
            <blockquote class="fs-5 fw-semibold text-body-emphasis mb-auto lh-base">The quality is consistent across every asset, which is rare for on-demand work.</blockquote>
            <div class="d-flex align-items-center gap-3 pt-3">
              <img class="rounded-circle flex-shrink-0" src="https://i.pravatar.cc/112?img=33" width="48" height="48" alt="Hiro Tanaka">
              <div>
                <h3 class="h6 fw-bold mb-0 text-body-emphasis">Hiro Tanaka</h3>
                <p class="small text-body-secondary mb-0">Marketing Manager, Kintsugi · Osaka, JP</p>
              </div>
            </div>
          </article>
          <article class="vc-card wdw-card p-4 pb-3 d-flex flex-column" data-pos="4" aria-hidden="true">
            <svg class="vc-quote" width="48" height="48" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M9.5 6C6.5 6.8 4 9.6 4 13.5V18h6v-6H7c0-2 1-3.4 2.8-4zM19.5 6c-3 .8-5.5 3.6-5.5 7.5V18h6v-6h-3c0-2 1-3.4 2.8-4z"/></svg>
            <span class="text-warning d-flex gap-1 mb-3" role="img" aria-label="5 out of 5 stars"><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg><svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2.5l2.9 6.1 6.6.9-4.8 4.6 1.2 6.6L12 17.5 6.1 20.7l1.2-6.6L2.5 9.5l6.6-.9z"/></svg></span>
            <blockquote class="fs-5 fw-semibold text-body-emphasis mb-auto lh-base">Flexible, fast and refreshingly easy to work with. Highly recommended for growing teams.</blockquote>
            <div class="d-flex align-items-center gap-3 pt-3">
              <img class="rounded-circle flex-shrink-0" src="https://i.pravatar.cc/112?img=25" width="48" height="48" alt="Amara Okafor">
              <div>
                <h3 class="h6 fw-bold mb-0 text-body-emphasis">Amara Okafor</h3>
                <p class="small text-body-secondary mb-0">Founder, Brightside · London, UK</p>
              </div>
            </div>
          </article>
        </div>
      </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.