25 / 33
All 33 in 33 Tailwind CSS Card Hover Effects
- 01Tailwind 3D Tilt & Parallax Card with Depth Layers
- 02Tailwind Glowing Gradient & Glassmorphic Border Card
- 03Tailwind Image Zoom Card with Slide-Up Content Reveal
- 04Tailwind 3D Flip Card (Front to Back) with backface-visibility
- 05Tailwind Sibling De-emphasis Pricing Grid with has-hover
- 06Tailwind Minimalist Elevation Card with Layered Dynamic Shadows
- 07Tailwind Elastic Lift Card with Spring Cubic-Bezier
- 08Tailwind Animated Conic Gradient Border Card with @property
- 09Tailwind Stacked Layer Reveal Card (Fanned Risograph Deck)
- 10Tailwind Holographic Foil Shimmer Card with mix-blend-mode
- 11Tailwind Curtain Reveal Card (Parting Velvet Halves)
- 12Tailwind Corner Peel Card with clip-path Triangles
- 13Tailwind Neon Sign Card with Layered Text-Shadow Glow
- 14Tailwind CRT Scanline Terminal Card with Sweeping Beam
- 15Tailwind Depth Parallax Landscape Card with Layer Multipliers
- 16Tailwind Cursor Spotlight Card with Masked Border Highlight
- 17Tailwind 3D Tilt Product Card with Specular Glare
- 18Tailwind Slide-Up Panel Card with Peek Header Swap
- 19Tailwind Credit Card Flip with Magnetic Strip & CVV
- 20Tailwind RGB Channel-Split Glitch Card
- 21Tailwind Rotating Conic Aura Card with Blurred Gradient Bloom
- 22Tailwind Blob-to-Rectangle Border Morph Card
- 23Tailwind Magnetic Float Orb Card with Pointer Attraction
- 24Tailwind Typewriter Reveal Card with Steps Animation & Caret
- 25Tailwind Magazine Overlay Slide Card (Full-Face Panel Takeover)
- 26Tailwind Breathing Film Grain Card with SVG Turbulence Noise
- 27Tailwind Frosted Glass Intensify Card with Deepening Backdrop Blur
- 28Tailwind Blueprint Reveal Card with Circular clip-path Wipe
- 29Tailwind Cursor-Anchored Shockwave Ripple Card
- 30Tailwind Color-Burn Ignition Card with Grayscale-to-Fire Hover
- 31Tailwind Prismatic Light Sweep Card with Screen Blend Bar
- 32Tailwind Book Cover Open Card with Hinged 3D Rotation
- 33Tailwind Drifting Aurora Ribbons Card with Blurred Gradient Bands
Tailwind Magazine Overlay Slide Card (Full-Face Panel Takeover)
A magazine card where a full-bleed red panel slides up and takes over the entire face, swapping a quiet cover for full issue details. Unlike the partial sheets in demos 03 and 18, this panel covers everything — which makes the easing choice the whole design.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tch-25 w-full min-h-svh grid place-items-center bg-tch25-bg font-tch25-sans p-8">
<article class="group relative w-[330px] h-[440px] rounded-sm overflow-hidden cursor-pointer bg-tch25-ink shadow-[0_18px_40px_rgb(0_0_0/0.2)]">
<div class="absolute inset-0 flex flex-col justify-end p-9 text-white bg-[linear-gradient(rgb(0_0_0/0.2),rgb(0_0_0/0.45)),linear-gradient(135deg,#6b7c8c,#2f3a44)]">
<span class="text-[0.7rem] tracking-[0.25em] uppercase opacity-85">Editorial</span>
<h2 class="font-tch25-display font-black text-[2.4rem] leading-none mt-1.5">Issue<br>No. 27</h2>
</div>
<div class="absolute inset-0 z-2 p-9 flex flex-col justify-between text-white bg-tch25-panel translate-y-[101%] transition-transform duration-550 ease-[cubic-bezier(0.76,0,0.24,1)] group-hover:translate-y-0 group-focus-within:translate-y-0 motion-reduce:transition-none">
<span class="font-tch25-display italic text-base">№ 27 — Spring</span>
<h3 class="font-tch25-display font-black text-[2.6rem] leading-[0.95]">The Red<br>Issue</h3>
<p class="text-[0.88rem] leading-[1.6] text-white/92">Forty pages on color, courage, and the people painting cities awake.</p>
<a href="#" class="flex items-center min-h-11 text-[0.78rem] tracking-[0.18em] uppercase text-white no-underline border-t border-white/40 pt-4 transition-colors duration-200 hover:text-tch25-bg focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2">Read the issue →</a>
</div>
</article>
</section><section class="tch-25 w-full min-h-svh grid place-items-center bg-tch25-bg font-tch25-sans p-8">
<article class="group relative w-[330px] h-[440px] rounded-sm overflow-hidden cursor-pointer bg-tch25-ink shadow-[0_18px_40px_rgb(0_0_0/0.2)]">
<div class="absolute inset-0 flex flex-col justify-end p-9 text-white bg-[linear-gradient(rgb(0_0_0/0.2),rgb(0_0_0/0.45)),linear-gradient(135deg,#6b7c8c,#2f3a44)]">
<span class="text-[0.7rem] tracking-[0.25em] uppercase opacity-85">Editorial</span>
<h2 class="font-tch25-display font-black text-[2.4rem] leading-none mt-1.5">Issue<br>No. 27</h2>
</div>
<div class="absolute inset-0 z-2 p-9 flex flex-col justify-between text-white bg-tch25-panel translate-y-[101%] transition-transform duration-550 ease-[cubic-bezier(0.76,0,0.24,1)] group-hover:translate-y-0 group-focus-within:translate-y-0 motion-reduce:transition-none">
<span class="font-tch25-display italic text-base">№ 27 — Spring</span>
<h3 class="font-tch25-display font-black text-[2.6rem] leading-[0.95]">The Red<br>Issue</h3>
<p class="text-[0.88rem] leading-[1.6] text-white/92">Forty pages on color, courage, and the people painting cities awake.</p>
<a href="#" class="flex items-center min-h-11 text-[0.78rem] tracking-[0.18em] uppercase text-white no-underline border-t border-white/40 pt-4 transition-colors duration-200 hover:text-tch25-bg focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2">Read the issue →</a>
</div>
</article>
</section>@import "tailwindcss";
@theme {
--color-tch25-bg: #f2f0eb;
--color-tch25-bg: oklch(0.96 0.005 85);
--color-tch25-ink: #1a1a1a;
--color-tch25-ink: oklch(0.2 0 0);
--color-tch25-panel: #e23744;
--color-tch25-panel: oklch(0.6 0.2 22);
--font-tch25-sans: 'Work Sans', system-ui, sans-serif;
--font-tch25-display: 'Bodoni Moda', Georgia, serif;
}
.tch-25 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tch25-bg: #f2f0eb;
--color-tch25-bg: oklch(0.96 0.005 85);
--color-tch25-ink: #1a1a1a;
--color-tch25-ink: oklch(0.2 0 0);
--color-tch25-panel: #e23744;
--color-tch25-panel: oklch(0.6 0.2 22);
--font-tch25-sans: 'Work Sans', system-ui, sans-serif;
--font-tch25-display: 'Bodoni Moda', Georgia, serif;
}
.tch-25 {
width: 100%;
min-height: 100svh;
}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-tch25-bg: #f2f0eb;
--color-tch25-bg: oklch(0.96 0.005 85);
--color-tch25-ink: #1a1a1a;
--color-tch25-ink: oklch(0.2 0 0);
--color-tch25-panel: #e23744;
--color-tch25-panel: oklch(0.6 0.2 22);
--font-tch25-sans: 'Work Sans', system-ui, sans-serif;
--font-tch25-display: 'Bodoni Moda', Georgia, serif;
}
.tch-25 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tch25-bg: #f2f0eb;
--color-tch25-bg: oklch(0.96 0.005 85);
--color-tch25-ink: #1a1a1a;
--color-tch25-ink: oklch(0.2 0 0);
--color-tch25-panel: #e23744;
--color-tch25-panel: oklch(0.6 0.2 22);
--font-tch25-sans: 'Work Sans', system-ui, sans-serif;
--font-tch25-display: 'Bodoni Moda', Georgia, serif;
}
.tch-25 {
width: 100%;
min-height: 100svh;
}<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,500;6..96,900&family=Work+Sans:wght@400;500&display=swap">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,500;6..96,900&family=Work+Sans:wght@400;500&display=swap">What changed in the port
Which parts became utilities, which stayed CSS, and why.
- Simplest port in the collection: one transform, one curve, two content layers. Worth keeping as the reference for how little a good hover effect needs.
translate-y-[101%]is an arbitrary value wheretranslate-y-fullwould read nicer — the extra percent is a real rendering defence, not fussiness.- UI change from the CSS original: the panel link is a real
<a>with a 44px target, andgroup-focus-within:drives the takeover for keyboard users.
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 Magazine Overlay Slide Card (Full-Face Panel Takeover)
Source: https://codefronts.com/motion/tailwind-css-card-hover-effects/tailwind-magazine-overlay-slide-card/
A magazine card where a full-bleed red panel slides up and takes over the entire face, swapping a quiet cover for full issue details. Unlike the partial sheets in demos 03 and 18, this panel covers everything — which makes the easing choice the whole design.
## HTML
```html
<section class="tch-25 w-full min-h-svh grid place-items-center bg-tch25-bg font-tch25-sans p-8">
<article class="group relative w-[330px] h-[440px] rounded-sm overflow-hidden cursor-pointer bg-tch25-ink shadow-[0_18px_40px_rgb(0_0_0/0.2)]">
<div class="absolute inset-0 flex flex-col justify-end p-9 text-white bg-[linear-gradient(rgb(0_0_0/0.2),rgb(0_0_0/0.45)),linear-gradient(135deg,#6b7c8c,#2f3a44)]">
<span class="text-[0.7rem] tracking-[0.25em] uppercase opacity-85">Editorial</span>
<h2 class="font-tch25-display font-black text-[2.4rem] leading-none mt-1.5">Issue<br>No. 27</h2>
</div>
<div class="absolute inset-0 z-2 p-9 flex flex-col justify-between text-white bg-tch25-panel translate-y-[101%] transition-transform duration-550 ease-[cubic-bezier(0.76,0,0.24,1)] group-hover:translate-y-0 group-focus-within:translate-y-0 motion-reduce:transition-none">
<span class="font-tch25-display italic text-base">№ 27 — Spring</span>
<h3 class="font-tch25-display font-black text-[2.6rem] leading-[0.95]">The Red<br>Issue</h3>
<p class="text-[0.88rem] leading-[1.6] text-white/92">Forty pages on color, courage, and the people painting cities awake.</p>
<a href="#" class="flex items-center min-h-11 text-[0.78rem] tracking-[0.18em] uppercase text-white no-underline border-t border-white/40 pt-4 transition-colors duration-200 hover:text-tch25-bg focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2">Read the issue →</a>
</div>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tch25-bg: #f2f0eb;
--color-tch25-bg: oklch(0.96 0.005 85);
--color-tch25-ink: #1a1a1a;
--color-tch25-ink: oklch(0.2 0 0);
--color-tch25-panel: #e23744;
--color-tch25-panel: oklch(0.6 0.2 22);
--font-tch25-sans: 'Work Sans', system-ui, sans-serif;
--font-tch25-display: 'Bodoni Moda', Georgia, serif;
}
.tch-25 {
width: 100%;
min-height: 100svh;
}
```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 Magazine Overlay Slide Card (Full-Face Panel Takeover)
Source: https://codefronts.com/motion/tailwind-css-card-hover-effects/tailwind-magazine-overlay-slide-card/
A magazine card where a full-bleed red panel slides up and takes over the entire face, swapping a quiet cover for full issue details. Unlike the partial sheets in demos 03 and 18, this panel covers everything — which makes the easing choice the whole design.
## HTML
```html
<section class="tch-25 w-full min-h-svh grid place-items-center bg-tch25-bg font-tch25-sans p-8">
<article class="group relative w-[330px] h-[440px] rounded-sm overflow-hidden cursor-pointer bg-tch25-ink shadow-[0_18px_40px_rgb(0_0_0/0.2)]">
<div class="absolute inset-0 flex flex-col justify-end p-9 text-white bg-[linear-gradient(rgb(0_0_0/0.2),rgb(0_0_0/0.45)),linear-gradient(135deg,#6b7c8c,#2f3a44)]">
<span class="text-[0.7rem] tracking-[0.25em] uppercase opacity-85">Editorial</span>
<h2 class="font-tch25-display font-black text-[2.4rem] leading-none mt-1.5">Issue<br>No. 27</h2>
</div>
<div class="absolute inset-0 z-2 p-9 flex flex-col justify-between text-white bg-tch25-panel translate-y-[101%] transition-transform duration-550 ease-[cubic-bezier(0.76,0,0.24,1)] group-hover:translate-y-0 group-focus-within:translate-y-0 motion-reduce:transition-none">
<span class="font-tch25-display italic text-base">№ 27 — Spring</span>
<h3 class="font-tch25-display font-black text-[2.6rem] leading-[0.95]">The Red<br>Issue</h3>
<p class="text-[0.88rem] leading-[1.6] text-white/92">Forty pages on color, courage, and the people painting cities awake.</p>
<a href="#" class="flex items-center min-h-11 text-[0.78rem] tracking-[0.18em] uppercase text-white no-underline border-t border-white/40 pt-4 transition-colors duration-200 hover:text-tch25-bg focus-visible:outline-2 focus-visible:outline-white focus-visible:outline-offset-2">Read the issue →</a>
</div>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tch25-bg: #f2f0eb;
--color-tch25-bg: oklch(0.96 0.005 85);
--color-tch25-ink: #1a1a1a;
--color-tch25-ink: oklch(0.2 0 0);
--color-tch25-panel: #e23744;
--color-tch25-panel: oklch(0.6 0.2 22);
--font-tch25-sans: 'Work Sans', system-ui, sans-serif;
--font-tch25-display: 'Bodoni Moda', Georgia, serif;
}
.tch-25 {
width: 100%;
min-height: 100svh;
}
```How this works
One transform, full coverage. The panel is absolute inset-0 — the whole card, not a bottom sheet — parked at translate-y-[101%]. On hover it returns to zero and the cover is simply gone. Because the panel is opaque and full-bleed, there is no blend, no frost, and no compromise on the detail copy's legibility.
101% is not a typo. At fractional device pixel ratios, a panel parked at exactly 100% can leave a hairline of itself visible at the card's bottom edge. The extra percent is the standard defence.
Both faces live in the DOM. The cover is not removed and the panel is not mounted on demand, so the card's full content is available to assistive tech and search at rest.
Make it yours
- Direction:
-translate-y-[101%]drops the panel from above;translate-x-[101%]slides from the right. - Panel colour is the brand statement here —
--color-tch25-panelis the one token worth changing first. - Duration: 550ms suits a full takeover; anything under 300ms feels like a jump cut.
Gotchas — read before shipping
overflow-hiddenon the card, or the parked panel is visible below it.- Use an opaque panel. A semi-transparent full-face overlay reads as a dimming bug rather than a reveal.
group-focus-within:is required — the panel holds the article link.- Under
motion-reduce:fade instead of sliding a full-card panel; the travel distance is the largest in this collection.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
Transforms, transitions and :focus-within are universally supported; the floor is Tailwind v4's generated sheet.