Snippets Card

Bootstrap 5 Team Section with Hover Social Icons

A responsive team grid of portrait cards where hovering or focusing a card zooms the photo and reveals social profile links over a gradient scrim.

Bootstrap 5 No jQuery Dec 2019 3.1K views

<section class="wdw-stage">
  <div class="container" style="max-width:1080px">
    <div class="text-center mx-auto mb-4 mb-lg-5" style="max-width:560px">
      <span class="wdw-eyebrow">Our people</span>
      <h1 class="wdw-heading h2 mt-1 mb-2">Meet our team</h1>
      <p class="wdw-muted mb-0">A small group of designers, engineers and analysts who like building useful things together.</p>
    </div>
    <div class="row g-4 row-cols-2 row-cols-lg-4">
      <div class="col">
        <article class="tm-card">
          <img src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?auto=format&fit=crop&w=600&h=750&q=70" alt="Portrait of Tim Cook" width="600" height="750" loading="lazy">
          <div class="tm-cover">
            <h2 class="h5 fw-bold mb-0">Tim Cook</h2>
            <p class="mb-0 small opacity-75">Android Developer</p>
            <div class="tm-socials d-flex gap-2 mt-3"><a href="#" class="tm-soc" aria-label="Tim Cook on Facebook"><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="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg></a><a href="#" class="tm-soc" aria-label="Tim Cook on Twitter"><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="M4 4l16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Tim Cook on Instagram"><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"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><path d="M17.5 6.5h.01"/></svg></a></div>
          </div>
        </article>
      </div>
      <div class="col">
        <article class="tm-card">
          <img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?auto=format&fit=crop&w=600&h=750&q=70" alt="Portrait of Sara Lindqvist" width="600" height="750" loading="lazy">
          <div class="tm-cover">
            <h2 class="h5 fw-bold mb-0">Sara Lindqvist</h2>
            <p class="mb-0 small opacity-75">Product Designer</p>
            <div class="tm-socials d-flex gap-2 mt-3"><a href="#" class="tm-soc" aria-label="Sara Lindqvist on Facebook"><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="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg></a><a href="#" class="tm-soc" aria-label="Sara Lindqvist on Twitter"><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="M4 4l16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Sara Lindqvist on Instagram"><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"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><path d="M17.5 6.5h.01"/></svg></a></div>
          </div>
        </article>
      </div>
      <div class="col">
        <article class="tm-card">
          <img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?auto=format&fit=crop&w=600&h=750&q=70" alt="Portrait of Carlos Vento" width="600" height="750" loading="lazy">
          <div class="tm-cover">
            <h2 class="h5 fw-bold mb-0">Carlos Vento</h2>
            <p class="mb-0 small opacity-75">Business Analyst</p>
            <div class="tm-socials d-flex gap-2 mt-3"><a href="#" class="tm-soc" aria-label="Carlos Vento on Facebook"><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="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg></a><a href="#" class="tm-soc" aria-label="Carlos Vento on Twitter"><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="M4 4l16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Carlos Vento on Instagram"><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"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><path d="M17.5 6.5h.01"/></svg></a></div>
          </div>
        </article>
      </div>
      <div class="col">
        <article class="tm-card">
          <img src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?auto=format&fit=crop&w=600&h=750&q=70" alt="Portrait of Emma Clarke" width="600" height="750" loading="lazy">
          <div class="tm-cover">
            <h2 class="h5 fw-bold mb-0">Emma Clarke</h2>
            <p class="mb-0 small opacity-75">Engineering Lead</p>
            <div class="tm-socials d-flex gap-2 mt-3"><a href="#" class="tm-soc" aria-label="Emma Clarke on Facebook"><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="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></svg></a><a href="#" class="tm-soc" aria-label="Emma Clarke on Twitter"><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="M4 4l16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Emma Clarke on Instagram"><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"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><path d="M17.5 6.5h.01"/></svg></a></div>
          </div>
        </article>
      </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.