14 / 30
All 30 in 30 Tailwind CSS Grid Layouts
- 01Tailwind Full-Bleed Article Layout for Long-Form Editorial
- 02Tailwind Docs Layout with Sticky Table of Contents
- 03Tailwind Photo Gallery Grid with auto-fill and Real Images
- 04Tailwind Holy Grail Page Layout for a News Site
- 05Tailwind Data Table with Subgrid Rows and Status Pills
- 06Tailwind Overlapping Card Hero for a Case Study
- 07Tailwind Help Center Layout with Fixed Sidebars
- 08Tailwind 12 Column Grid System for Marketing Pages
- 09Tailwind Bento Grid for a Product Feature Section
- 10Tailwind Magazine Spread Layout with Overlapping Headline
- 11Tailwind Responsive Card Grid for an Integrations Directory
- 12Tailwind CMS Category Grid that Compacts Itself with has()
- 13Tailwind Masonry Layout for a Saved Ideas Board
- 14Tailwind Hexagon Team Grid with clip-path Avatars
- 15Tailwind Subgrid Cards with Perfectly Aligned Buttons
- 16Tailwind Analytics Dashboard Layout with Grid App Shell
- 17Tailwind Pricing Table with Subgrid and a Featured Plan
- 18Tailwind Kanban Board with Scroll Snap Columns
- 19Tailwind Video Thumbnail Grid with Zero Layout Shift
- 20Tailwind Container Query Card for Reusable Article Teasers
- 21Tailwind Diagonal Section Band with skewY Counter-Skew
- 22Tailwind Asymmetric Poster Hero with Layered Grid Regions
- 23Tailwind Mosaic Photo Wall with a Designed Span Sequence
- 24Tailwind Dense Grid Packing for a Mixed-Size Asset Library
- 25Tailwind Onboarding Stepper with CSS Counters
- 26Tailwind macOS Window Layout with Vibrancy Sidebar
- 27Tailwind Scroll Snap Carousel with Peeking Slides
- 28Tailwind Status Map UI with Grid Coordinate Pins
- 29Tailwind Logo Wall with 1px Gap Hairline Dividers
- 30Tailwind Periodic Table Layout with Grid Coordinates
Tailwind Hexagon Team Grid with clip-path Avatars
A team page as an interlocking honeycomb: ten hexagonal portraits that nest peak-into-notch, each revealing a name and role on hover or keyboard focus. The photo is clipped by the same polygon as the cell, so the comb stays a comb.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tgx-14 w-full min-h-svh bg-tgx14-bg font-tgx14-sans px-6 py-10 grid place-items-center gap-6">
<header class="flex flex-col gap-1.5 text-center">
<p class="text-[0.66rem] tracking-[0.2em] uppercase text-tgx14-honey">Hexlab · Studio</p>
<h2 class="text-[1.5rem] font-semibold text-white tracking-[-0.015em]">Ten people, one comb</h2>
<p class="text-[0.8rem] text-tgx14-dim max-w-[44ch]">Hover or tab through the team — each cell reveals a name and a role without moving its neighbours.</p>
</header>
<ul class="list-none flex flex-col items-start">
<li class="flex gap-0">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ada N.</strong><span class="text-[0.62rem] text-tgx14-honey">Design lead</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Tomás R.</strong><span class="text-[0.62rem] text-tgx14-honey">Engineering</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ines K.</strong><span class="text-[0.62rem] text-tgx14-honey">Research</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Sam B.</strong><span class="text-[0.62rem] text-tgx14-honey">Platform</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)] ml-[calc(var(--hex)/2)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Noor A.</strong><span class="text-[0.62rem] text-tgx14-honey">Accessibility</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Jonas P.</strong><span class="text-[0.62rem] text-tgx14-honey">Performance</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1524504388940-b1c1722653e1?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Mei L.</strong><span class="text-[0.62rem] text-tgx14-honey">Brand</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ruth O.</strong><span class="text-[0.62rem] text-tgx14-honey">Content</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Dev S.</strong><span class="text-[0.62rem] text-tgx14-honey">Data</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1517841905240-472988babdf9?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Clara V.</strong><span class="text-[0.62rem] text-tgx14-honey">Ops</span></span>
</a>
</li>
</ul>
</section><section class="tgx-14 w-full min-h-svh bg-tgx14-bg font-tgx14-sans px-6 py-10 grid place-items-center gap-6">
<header class="flex flex-col gap-1.5 text-center">
<p class="text-[0.66rem] tracking-[0.2em] uppercase text-tgx14-honey">Hexlab · Studio</p>
<h2 class="text-[1.5rem] font-semibold text-white tracking-[-0.015em]">Ten people, one comb</h2>
<p class="text-[0.8rem] text-tgx14-dim max-w-[44ch]">Hover or tab through the team — each cell reveals a name and a role without moving its neighbours.</p>
</header>
<ul class="list-none flex flex-col items-start">
<li class="flex gap-0">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ada N.</strong><span class="text-[0.62rem] text-tgx14-honey">Design lead</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Tomás R.</strong><span class="text-[0.62rem] text-tgx14-honey">Engineering</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ines K.</strong><span class="text-[0.62rem] text-tgx14-honey">Research</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Sam B.</strong><span class="text-[0.62rem] text-tgx14-honey">Platform</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)] ml-[calc(var(--hex)/2)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Noor A.</strong><span class="text-[0.62rem] text-tgx14-honey">Accessibility</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Jonas P.</strong><span class="text-[0.62rem] text-tgx14-honey">Performance</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1524504388940-b1c1722653e1?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Mei L.</strong><span class="text-[0.62rem] text-tgx14-honey">Brand</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ruth O.</strong><span class="text-[0.62rem] text-tgx14-honey">Content</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Dev S.</strong><span class="text-[0.62rem] text-tgx14-honey">Data</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1517841905240-472988babdf9?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Clara V.</strong><span class="text-[0.62rem] text-tgx14-honey">Ops</span></span>
</a>
</li>
</ul>
</section>@import "tailwindcss";
@theme {
--color-tgx14-bg: #241a0f;
--color-tgx14-bg: oklch(0.21 0.03 65);
--color-tgx14-cell: #4a3a1c;
--color-tgx14-cell: oklch(0.34 0.06 75);
--color-tgx14-honey: #f0bd52;
--color-tgx14-honey: oklch(0.82 0.15 80);
--color-tgx14-dim: #cbbda6;
--color-tgx14-dim: oklch(0.81 0.03 80);
--font-tgx14-sans: 'Inter Tight', system-ui, sans-serif;
}
.tgx-14 {
width: 100%;
min-height: 100svh;
--hex: 104px;
background-image: radial-gradient(100% 120% at 50% 0%, oklch(0.28 0.05 70 / 0.9), transparent 60%);
}@import "tailwindcss";
@theme {
--color-tgx14-bg: #241a0f;
--color-tgx14-bg: oklch(0.21 0.03 65);
--color-tgx14-cell: #4a3a1c;
--color-tgx14-cell: oklch(0.34 0.06 75);
--color-tgx14-honey: #f0bd52;
--color-tgx14-honey: oklch(0.82 0.15 80);
--color-tgx14-dim: #cbbda6;
--color-tgx14-dim: oklch(0.81 0.03 80);
--font-tgx14-sans: 'Inter Tight', system-ui, sans-serif;
}
.tgx-14 {
width: 100%;
min-height: 100svh;
--hex: 104px;
background-image: radial-gradient(100% 120% at 50% 0%, oklch(0.28 0.05 70 / 0.9), transparent 60%);
}Setup — do this once per project
Skip this if your project already runs Tailwind v4.
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>Compiles in the browser — perfect for a CodePen or a quick test, not for production.
npm install tailwindcss @tailwindcss/vite
npm install tailwindcss @tailwindcss/vite// vite.config.js ("type": "module" in package.json)
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [tailwindcss()],
})// vite.config.js ("type": "module" in package.json)
import { defineConfig } from 'vite'
import tailwindcss from '@tailwindcss/vite'
export default defineConfig({
plugins: [tailwindcss()],
})Any v4 setup works — Vite, PostCSS or the CLI. Nothing in this demo is bundler-specific.
@import "tailwindcss";
@theme {
--color-tgx14-bg: #241a0f;
--color-tgx14-bg: oklch(0.21 0.03 65);
--color-tgx14-cell: #4a3a1c;
--color-tgx14-cell: oklch(0.34 0.06 75);
--color-tgx14-honey: #f0bd52;
--color-tgx14-honey: oklch(0.82 0.15 80);
--color-tgx14-dim: #cbbda6;
--color-tgx14-dim: oklch(0.81 0.03 80);
--font-tgx14-sans: 'Inter Tight', system-ui, sans-serif;
}
.tgx-14 {
width: 100%;
min-height: 100svh;
--hex: 104px;
background-image: radial-gradient(100% 120% at 50% 0%, oklch(0.28 0.05 70 / 0.9), transparent 60%);
}@import "tailwindcss";
@theme {
--color-tgx14-bg: #241a0f;
--color-tgx14-bg: oklch(0.21 0.03 65);
--color-tgx14-cell: #4a3a1c;
--color-tgx14-cell: oklch(0.34 0.06 75);
--color-tgx14-honey: #f0bd52;
--color-tgx14-honey: oklch(0.82 0.15 80);
--color-tgx14-dim: #cbbda6;
--color-tgx14-dim: oklch(0.81 0.03 80);
--font-tgx14-sans: 'Inter Tight', system-ui, sans-serif;
}
.tgx-14 {
width: 100%;
min-height: 100svh;
--hex: 104px;
background-image: radial-gradient(100% 120% at 50% 0%, oklch(0.28 0.05 70 / 0.9), transparent 60%);
}<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://images.unsplash.com"> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600;700&display=swap">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://images.unsplash.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;500;600;700&display=swap">What changed in the port
Which parts became utilities, which stayed CSS, and why.
- The portraits carry empty
altbecause the name is in the adjacent text — captioning a decorative crop twice is noise for a screen reader, and the link text is what matters. - Clipping the image with the same polygon as the cell (rather than relying on
overflow-hidden) is what keeps the hex edges crisp when the tile scales on hover. - Product upgrade: abbreviation tiles (UI, UX, CSS) became a real team page with portraits, names and roles — and the hover state now reveals information instead of just changing colour.
Here's a working CSS demo from CodeFronts. Use it as-is or adapt to your framework. All classes are scoped under a unique prefix so the code won't collide with your existing styles. MIT licensed.
Demo: Tailwind Hexagon Team Grid with clip-path Avatars
Source: https://codefronts.com/layouts/tailwind-css-grid-layouts/tailwind-hexagon-team-grid-clip-path-avatars/
A team page as an interlocking honeycomb: ten hexagonal portraits that nest peak-into-notch, each revealing a name and role on hover or keyboard focus. The photo is clipped by the same polygon as the cell, so the comb stays a comb.
## HTML
```html
<section class="tgx-14 w-full min-h-svh bg-tgx14-bg font-tgx14-sans px-6 py-10 grid place-items-center gap-6">
<header class="flex flex-col gap-1.5 text-center">
<p class="text-[0.66rem] tracking-[0.2em] uppercase text-tgx14-honey">Hexlab · Studio</p>
<h2 class="text-[1.5rem] font-semibold text-white tracking-[-0.015em]">Ten people, one comb</h2>
<p class="text-[0.8rem] text-tgx14-dim max-w-[44ch]">Hover or tab through the team — each cell reveals a name and a role without moving its neighbours.</p>
</header>
<ul class="list-none flex flex-col items-start">
<li class="flex gap-0">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ada N.</strong><span class="text-[0.62rem] text-tgx14-honey">Design lead</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Tomás R.</strong><span class="text-[0.62rem] text-tgx14-honey">Engineering</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ines K.</strong><span class="text-[0.62rem] text-tgx14-honey">Research</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Sam B.</strong><span class="text-[0.62rem] text-tgx14-honey">Platform</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)] ml-[calc(var(--hex)/2)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Noor A.</strong><span class="text-[0.62rem] text-tgx14-honey">Accessibility</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Jonas P.</strong><span class="text-[0.62rem] text-tgx14-honey">Performance</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1524504388940-b1c1722653e1?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Mei L.</strong><span class="text-[0.62rem] text-tgx14-honey">Brand</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ruth O.</strong><span class="text-[0.62rem] text-tgx14-honey">Content</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Dev S.</strong><span class="text-[0.62rem] text-tgx14-honey">Data</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1517841905240-472988babdf9?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Clara V.</strong><span class="text-[0.62rem] text-tgx14-honey">Ops</span></span>
</a>
</li>
</ul>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tgx14-bg: #241a0f;
--color-tgx14-bg: oklch(0.21 0.03 65);
--color-tgx14-cell: #4a3a1c;
--color-tgx14-cell: oklch(0.34 0.06 75);
--color-tgx14-honey: #f0bd52;
--color-tgx14-honey: oklch(0.82 0.15 80);
--color-tgx14-dim: #cbbda6;
--color-tgx14-dim: oklch(0.81 0.03 80);
--font-tgx14-sans: 'Inter Tight', system-ui, sans-serif;
}
.tgx-14 {
width: 100%;
min-height: 100svh;
--hex: 104px;
background-image: radial-gradient(100% 120% at 50% 0%, oklch(0.28 0.05 70 / 0.9), transparent 60%);
}
```Here's a working CSS demo from CodeFronts. Use it as-is or adapt to your framework. All classes are scoped under a unique prefix so the code won't collide with your existing styles. MIT licensed.
Demo: Tailwind Hexagon Team Grid with clip-path Avatars
Source: https://codefronts.com/layouts/tailwind-css-grid-layouts/tailwind-hexagon-team-grid-clip-path-avatars/
A team page as an interlocking honeycomb: ten hexagonal portraits that nest peak-into-notch, each revealing a name and role on hover or keyboard focus. The photo is clipped by the same polygon as the cell, so the comb stays a comb.
## HTML
```html
<section class="tgx-14 w-full min-h-svh bg-tgx14-bg font-tgx14-sans px-6 py-10 grid place-items-center gap-6">
<header class="flex flex-col gap-1.5 text-center">
<p class="text-[0.66rem] tracking-[0.2em] uppercase text-tgx14-honey">Hexlab · Studio</p>
<h2 class="text-[1.5rem] font-semibold text-white tracking-[-0.015em]">Ten people, one comb</h2>
<p class="text-[0.8rem] text-tgx14-dim max-w-[44ch]">Hover or tab through the team — each cell reveals a name and a role without moving its neighbours.</p>
</header>
<ul class="list-none flex flex-col items-start">
<li class="flex gap-0">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ada N.</strong><span class="text-[0.62rem] text-tgx14-honey">Design lead</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Tomás R.</strong><span class="text-[0.62rem] text-tgx14-honey">Engineering</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ines K.</strong><span class="text-[0.62rem] text-tgx14-honey">Research</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Sam B.</strong><span class="text-[0.62rem] text-tgx14-honey">Platform</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)] ml-[calc(var(--hex)/2)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Noor A.</strong><span class="text-[0.62rem] text-tgx14-honey">Accessibility</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Jonas P.</strong><span class="text-[0.62rem] text-tgx14-honey">Performance</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1524504388940-b1c1722653e1?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Mei L.</strong><span class="text-[0.62rem] text-tgx14-honey">Brand</span></span>
</a>
</li>
<li class="flex gap-0 mt-[calc(var(--hex)*-0.3)]">
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Ruth O.</strong><span class="text-[0.62rem] text-tgx14-honey">Content</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1487412720507-e7ab37603c6f?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Dev S.</strong><span class="text-[0.62rem] text-tgx14-honey">Data</span></span>
</a>
<a href="#0" class="group relative block w-[var(--hex)] aspect-[1/1.1547] no-underline [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)] bg-tgx14-cell transition duration-200 hover:scale-105 focus-visible:scale-105 focus-visible:outline-none motion-reduce:transition-none motion-reduce:hover:scale-100">
<img src="https://images.unsplash.com/photo-1517841905240-472988babdf9?w=260&h=300&q=80&auto=format&fit=crop" alt="" loading="lazy" class="absolute inset-0 w-full h-full object-cover [clip-path:polygon(50%_0,100%_25%,100%_75%,50%_100%,0_75%,0_25%)]">
<span class="absolute inset-0 grid content-end gap-0.5 px-3 pb-4 bg-[linear-gradient(180deg,transparent_45%,oklch(0.18_0.03_65/0.9))] opacity-0 transition-opacity duration-200 group-hover:opacity-100 group-focus-visible:opacity-100 motion-reduce:transition-none"><strong class="text-[0.76rem] font-semibold text-white leading-tight">Clara V.</strong><span class="text-[0.62rem] text-tgx14-honey">Ops</span></span>
</a>
</li>
</ul>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tgx14-bg: #241a0f;
--color-tgx14-bg: oklch(0.21 0.03 65);
--color-tgx14-cell: #4a3a1c;
--color-tgx14-cell: oklch(0.34 0.06 75);
--color-tgx14-honey: #f0bd52;
--color-tgx14-honey: oklch(0.82 0.15 80);
--color-tgx14-dim: #cbbda6;
--color-tgx14-dim: oklch(0.81 0.03 80);
--font-tgx14-sans: 'Inter Tight', system-ui, sans-serif;
}
.tgx-14 {
width: 100%;
min-height: 100svh;
--hex: 104px;
background-image: radial-gradient(100% 120% at 50% 0%, oklch(0.28 0.05 70 / 0.9), transparent 60%);
}
```How this works
Rows are flex, the comb is flex. Each visual row is its own container, which is how a 4-3-3 arrangement works where one grid template cannot. Rows after the first pull up 30% of hex width; alternate rows shift half a hex sideways so peaks land in the notches above.
The avatar is clipped twice. Cell and image share the polygon, so the portrait fills the hex exactly and object-cover keeps faces centred at any crop.
Make it yours
- Resize the whole comb through
--hex; every calculation derives from it. - Swap the overlay tint per department for a colour-coded org chart.
- Add rows by adding a row
<li>; offset rows just add the half-hex margin utility.
Gotchas — read before shipping
clip-pathclips the focus ring — the overlay + scale IS the focus indicator here.- Rows must share a left edge (
items-start), or auto-centring fights the offset and the middle row drifts. - Uniform tile size is mandatory; one different hex breaks the interlock instantly.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
clip-path polygons universal since 2020, aspect-ratio since 2021.