Snippets Animation

Bootstrap 5 Team Members Grid with Hover Social Links

A four-person team grid with square portraits, names and roles. Hovering or focusing a card zooms the photo and reveals social links over a soft scrim, which stay visible on touch devices.

Bootstrap 5 No jQuery Aug 2020 2.3K views

<section class="wdw-stage"><div class="container" style="max-width:1040px">
<div class="text-center mb-5"><span class="wdw-eyebrow">The people</span><h2 class="wdw-heading display-6 mt-2 mb-2">Meet our team</h2><p class="wdw-muted mx-auto mb-0" style="max-width:32rem">A small group of makers who care about the details.</p></div>
<div class="row g-3 g-lg-4"><div class="col-6 col-lg-3"><article class="tm wdw-card-sm h-100 overflow-hidden">
  <div class="tm-photo"><img src="https://images.unsplash.com/photo-1560250097-0b93528c311a?w=480&h=480&fit=crop&crop=faces&q=70" alt="Portrait of Daniel Foster" loading="lazy" width="480" height="480">
  <div class="tm-over"><div class="d-flex gap-2 justify-content-center"><a href="#" class="tm-soc" aria-label="Daniel Foster on LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9v9M6 6v.01M10 18V9m0 4a3 3 0 0 1 6 0v5"/></svg></a><a href="#" class="tm-soc" aria-label="Daniel Foster on X"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m4 4 16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Daniel Foster on GitHub"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4 1-4-2-6-2m12 4v-3a3 3 0 0 0-1-2c3 0 6-1.500 6-5a4 4 0 0 0-1-3 4 4 0 0 0 0-3s-1 0-3 1a10 10 0 0 0-5 0C8 4 7 4 7 4a4 4 0 0 0 0 3 4 4 0 0 0-1 3c0 3.500 3 5 6 5a3 3 0 0 0-1 2v3"/></svg></a></div></div></div>
  <div class="p-3 text-center"><h3 class="h6 fw-bold mb-0">Daniel Foster</h3><p class="wdw-muted small mb-0">Team Lead</p></div></article></div><div class="col-6 col-lg-3"><article class="tm wdw-card-sm h-100 overflow-hidden">
  <div class="tm-photo"><img src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=480&h=480&fit=crop&crop=faces&q=70" alt="Portrait of Marcus Reyes" loading="lazy" width="480" height="480">
  <div class="tm-over"><div class="d-flex gap-2 justify-content-center"><a href="#" class="tm-soc" aria-label="Marcus Reyes on LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9v9M6 6v.01M10 18V9m0 4a3 3 0 0 1 6 0v5"/></svg></a><a href="#" class="tm-soc" aria-label="Marcus Reyes on X"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m4 4 16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Marcus Reyes on GitHub"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4 1-4-2-6-2m12 4v-3a3 3 0 0 0-1-2c3 0 6-1.500 6-5a4 4 0 0 0-1-3 4 4 0 0 0 0-3s-1 0-3 1a10 10 0 0 0-5 0C8 4 7 4 7 4a4 4 0 0 0 0 3 4 4 0 0 0-1 3c0 3.500 3 5 6 5a3 3 0 0 0-1 2v3"/></svg></a></div></div></div>
  <div class="p-3 text-center"><h3 class="h6 fw-bold mb-0">Marcus Reyes</h3><p class="wdw-muted small mb-0">Web Developer</p></div></article></div><div class="col-6 col-lg-3"><article class="tm wdw-card-sm h-100 overflow-hidden">
  <div class="tm-photo"><img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=480&h=480&fit=crop&crop=faces&q=70" alt="Portrait of Elias Novak" loading="lazy" width="480" height="480">
  <div class="tm-over"><div class="d-flex gap-2 justify-content-center"><a href="#" class="tm-soc" aria-label="Elias Novak on LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9v9M6 6v.01M10 18V9m0 4a3 3 0 0 1 6 0v5"/></svg></a><a href="#" class="tm-soc" aria-label="Elias Novak on X"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m4 4 16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Elias Novak on GitHub"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4 1-4-2-6-2m12 4v-3a3 3 0 0 0-1-2c3 0 6-1.500 6-5a4 4 0 0 0-1-3 4 4 0 0 0 0-3s-1 0-3 1a10 10 0 0 0-5 0C8 4 7 4 7 4a4 4 0 0 0 0 3 4 4 0 0 0-1 3c0 3.500 3 5 6 5a3 3 0 0 0-1 2v3"/></svg></a></div></div></div>
  <div class="p-3 text-center"><h3 class="h6 fw-bold mb-0">Elias Novak</h3><p class="wdw-muted small mb-0">Software Tester</p></div></article></div><div class="col-6 col-lg-3"><article class="tm wdw-card-sm h-100 overflow-hidden">
  <div class="tm-photo"><img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=480&h=480&fit=crop&crop=faces&q=70" alt="Portrait of Sofia Lindgren" loading="lazy" width="480" height="480">
  <div class="tm-over"><div class="d-flex gap-2 justify-content-center"><a href="#" class="tm-soc" aria-label="Sofia Lindgren on LinkedIn"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9v9M6 6v.01M10 18V9m0 4a3 3 0 0 1 6 0v5"/></svg></a><a href="#" class="tm-soc" aria-label="Sofia Lindgren on X"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m4 4 16 16M20 4 4 20"/></svg></a><a href="#" class="tm-soc" aria-label="Sofia Lindgren on GitHub"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9 19c-4 1-4-2-6-2m12 4v-3a3 3 0 0 0-1-2c3 0 6-1.500 6-5a4 4 0 0 0-1-3 4 4 0 0 0 0-3s-1 0-3 1a10 10 0 0 0-5 0C8 4 7 4 7 4a4 4 0 0 0 0 3 4 4 0 0 0-1 3c0 3.500 3 5 6 5a3 3 0 0 0-1 2v3"/></svg></a></div></div></div>
  <div class="p-3 text-center"><h3 class="h6 fw-bold mb-0">Sofia Lindgren</h3><p class="wdw-muted small mb-0">Web Designer</p></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.