31 / 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 Prismatic Light Sweep Card with Screen Blend Bar
A soft rainbow bar travels diagonally across an optics-lab card, blurred and screen-blended so it reads as light refracting through coated glass. The sweep is one rotated, blurred element animating a single left value — the simplest possible implementation of the most expensive-looking effect here.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tch-31 w-full min-h-svh grid place-items-center bg-tch31-bg font-tch31-sans p-8">
<article tabindex="0" class="group relative w-[340px] h-[440px] rounded-[20px] overflow-hidden cursor-pointer outline-none bg-[linear-gradient(160deg,#14141f,#0a0a12)] border border-white/7 focus-visible:outline-2 focus-visible:outline-tch31-acc focus-visible:outline-offset-4">
<div class="absolute -top-3/5 -left-[120%] w-3/5 h-[220%] z-1 pointer-events-none rotate-[22deg] blur-[8px] mix-blend-screen transition-[left] duration-700 ease-[cubic-bezier(0.4,0,0.2,1)] group-hover:left-[160%] group-focus-visible:left-[160%] motion-reduce:transition-none bg-[linear-gradient(90deg,transparent,rgb(255_0_128/0.5),rgb(255_200_0/0.5),rgb(0_255_170/0.5),rgb(0_170_255/0.5),rgb(180_80_255/0.5),transparent)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none bg-[repeating-linear-gradient(115deg,transparent_0_40px,rgb(255_255_255/0.015)_40px_41px)]"></div>
<div class="relative z-2 h-full p-[2.4rem] flex flex-col justify-between text-tch31-ink">
<span class="font-tch31-mono text-[0.72rem] tracking-[0.22em] uppercase text-tch31-mut">Optics Lab</span>
<h2 class="font-extrabold text-[2.5rem] leading-none">Refraction<br>No. 9</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch31-body">A coated-glass installation. Light enters white and leaves as a spectrum sweeping the wall.</p>
<div class="flex gap-6 font-tch31-mono text-[0.74rem] text-tch31-mut">
<span><b class="block text-[1.1rem] text-tch31-ink">540nm</b>peak</span>
<span><b class="block text-[1.1rem] text-tch31-ink">1.52</b>index</span>
</div>
</div>
</article>
</section><section class="tch-31 w-full min-h-svh grid place-items-center bg-tch31-bg font-tch31-sans p-8">
<article tabindex="0" class="group relative w-[340px] h-[440px] rounded-[20px] overflow-hidden cursor-pointer outline-none bg-[linear-gradient(160deg,#14141f,#0a0a12)] border border-white/7 focus-visible:outline-2 focus-visible:outline-tch31-acc focus-visible:outline-offset-4">
<div class="absolute -top-3/5 -left-[120%] w-3/5 h-[220%] z-1 pointer-events-none rotate-[22deg] blur-[8px] mix-blend-screen transition-[left] duration-700 ease-[cubic-bezier(0.4,0,0.2,1)] group-hover:left-[160%] group-focus-visible:left-[160%] motion-reduce:transition-none bg-[linear-gradient(90deg,transparent,rgb(255_0_128/0.5),rgb(255_200_0/0.5),rgb(0_255_170/0.5),rgb(0_170_255/0.5),rgb(180_80_255/0.5),transparent)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none bg-[repeating-linear-gradient(115deg,transparent_0_40px,rgb(255_255_255/0.015)_40px_41px)]"></div>
<div class="relative z-2 h-full p-[2.4rem] flex flex-col justify-between text-tch31-ink">
<span class="font-tch31-mono text-[0.72rem] tracking-[0.22em] uppercase text-tch31-mut">Optics Lab</span>
<h2 class="font-extrabold text-[2.5rem] leading-none">Refraction<br>No. 9</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch31-body">A coated-glass installation. Light enters white and leaves as a spectrum sweeping the wall.</p>
<div class="flex gap-6 font-tch31-mono text-[0.74rem] text-tch31-mut">
<span><b class="block text-[1.1rem] text-tch31-ink">540nm</b>peak</span>
<span><b class="block text-[1.1rem] text-tch31-ink">1.52</b>index</span>
</div>
</div>
</article>
</section>@import "tailwindcss";
@theme {
--color-tch31-bg: #06060c;
--color-tch31-bg: oklch(0.09 0.008 285);
--color-tch31-ink: #eef0f7;
--color-tch31-ink: oklch(0.95 0.005 275);
--color-tch31-body: #a3a7bd;
--color-tch31-body: oklch(0.72 0.02 280);
--color-tch31-mut: #8b8fa6;
--color-tch31-mut: oklch(0.63 0.02 280);
--color-tch31-acc: #6ad6ff;
--color-tch31-acc: oklch(0.83 0.12 225);
--font-tch31-sans: 'Sora', system-ui, sans-serif;
--font-tch31-mono: 'Geist Mono', ui-monospace, monospace;
}
.tch-31 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tch31-bg: #06060c;
--color-tch31-bg: oklch(0.09 0.008 285);
--color-tch31-ink: #eef0f7;
--color-tch31-ink: oklch(0.95 0.005 275);
--color-tch31-body: #a3a7bd;
--color-tch31-body: oklch(0.72 0.02 280);
--color-tch31-mut: #8b8fa6;
--color-tch31-mut: oklch(0.63 0.02 280);
--color-tch31-acc: #6ad6ff;
--color-tch31-acc: oklch(0.83 0.12 225);
--font-tch31-sans: 'Sora', system-ui, sans-serif;
--font-tch31-mono: 'Geist Mono', ui-monospace, monospace;
}
.tch-31 {
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-tch31-bg: #06060c;
--color-tch31-bg: oklch(0.09 0.008 285);
--color-tch31-ink: #eef0f7;
--color-tch31-ink: oklch(0.95 0.005 275);
--color-tch31-body: #a3a7bd;
--color-tch31-body: oklch(0.72 0.02 280);
--color-tch31-mut: #8b8fa6;
--color-tch31-mut: oklch(0.63 0.02 280);
--color-tch31-acc: #6ad6ff;
--color-tch31-acc: oklch(0.83 0.12 225);
--font-tch31-sans: 'Sora', system-ui, sans-serif;
--font-tch31-mono: 'Geist Mono', ui-monospace, monospace;
}
.tch-31 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tch31-bg: #06060c;
--color-tch31-bg: oklch(0.09 0.008 285);
--color-tch31-ink: #eef0f7;
--color-tch31-ink: oklch(0.95 0.005 275);
--color-tch31-body: #a3a7bd;
--color-tch31-body: oklch(0.72 0.02 280);
--color-tch31-mut: #8b8fa6;
--color-tch31-mut: oklch(0.63 0.02 280);
--color-tch31-acc: #6ad6ff;
--color-tch31-acc: oklch(0.83 0.12 225);
--font-tch31-sans: 'Sora', system-ui, sans-serif;
--font-tch31-mono: 'Geist Mono', ui-monospace, monospace;
}
.tch-31 {
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=Sora:wght@400;600;800&family=Geist+Mono: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=Sora:wght@400;600;800&family=Geist+Mono:wght@400;500&display=swap">What changed in the port
Which parts became utilities, which stayed CSS, and why.
- A transition rather than an animation is the right call for a one-pass reflection, and it ports to a single
group-hover:left-[160%]— no keyframes, no@themeanimation entry. - The negative fractional positions (
-top-3/5,-left-[120%]) are v4 utilities doing work that used to need arbitrary properties. - UI change from the CSS original: focusable card with a ring, sweep fires on
group-focus-visible:, and the spec figures use a nestedblockutility instead of a bare<b>style rule.
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 Prismatic Light Sweep Card with Screen Blend Bar
Source: https://codefronts.com/motion/tailwind-css-card-hover-effects/tailwind-prismatic-light-sweep-card/
A soft rainbow bar travels diagonally across an optics-lab card, blurred and screen-blended so it reads as light refracting through coated glass. The sweep is one rotated, blurred element animating a single left value — the simplest possible implementation of the most expensive-looking effect here.
## HTML
```html
<section class="tch-31 w-full min-h-svh grid place-items-center bg-tch31-bg font-tch31-sans p-8">
<article tabindex="0" class="group relative w-[340px] h-[440px] rounded-[20px] overflow-hidden cursor-pointer outline-none bg-[linear-gradient(160deg,#14141f,#0a0a12)] border border-white/7 focus-visible:outline-2 focus-visible:outline-tch31-acc focus-visible:outline-offset-4">
<div class="absolute -top-3/5 -left-[120%] w-3/5 h-[220%] z-1 pointer-events-none rotate-[22deg] blur-[8px] mix-blend-screen transition-[left] duration-700 ease-[cubic-bezier(0.4,0,0.2,1)] group-hover:left-[160%] group-focus-visible:left-[160%] motion-reduce:transition-none bg-[linear-gradient(90deg,transparent,rgb(255_0_128/0.5),rgb(255_200_0/0.5),rgb(0_255_170/0.5),rgb(0_170_255/0.5),rgb(180_80_255/0.5),transparent)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none bg-[repeating-linear-gradient(115deg,transparent_0_40px,rgb(255_255_255/0.015)_40px_41px)]"></div>
<div class="relative z-2 h-full p-[2.4rem] flex flex-col justify-between text-tch31-ink">
<span class="font-tch31-mono text-[0.72rem] tracking-[0.22em] uppercase text-tch31-mut">Optics Lab</span>
<h2 class="font-extrabold text-[2.5rem] leading-none">Refraction<br>No. 9</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch31-body">A coated-glass installation. Light enters white and leaves as a spectrum sweeping the wall.</p>
<div class="flex gap-6 font-tch31-mono text-[0.74rem] text-tch31-mut">
<span><b class="block text-[1.1rem] text-tch31-ink">540nm</b>peak</span>
<span><b class="block text-[1.1rem] text-tch31-ink">1.52</b>index</span>
</div>
</div>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tch31-bg: #06060c;
--color-tch31-bg: oklch(0.09 0.008 285);
--color-tch31-ink: #eef0f7;
--color-tch31-ink: oklch(0.95 0.005 275);
--color-tch31-body: #a3a7bd;
--color-tch31-body: oklch(0.72 0.02 280);
--color-tch31-mut: #8b8fa6;
--color-tch31-mut: oklch(0.63 0.02 280);
--color-tch31-acc: #6ad6ff;
--color-tch31-acc: oklch(0.83 0.12 225);
--font-tch31-sans: 'Sora', system-ui, sans-serif;
--font-tch31-mono: 'Geist Mono', ui-monospace, monospace;
}
.tch-31 {
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 Prismatic Light Sweep Card with Screen Blend Bar
Source: https://codefronts.com/motion/tailwind-css-card-hover-effects/tailwind-prismatic-light-sweep-card/
A soft rainbow bar travels diagonally across an optics-lab card, blurred and screen-blended so it reads as light refracting through coated glass. The sweep is one rotated, blurred element animating a single left value — the simplest possible implementation of the most expensive-looking effect here.
## HTML
```html
<section class="tch-31 w-full min-h-svh grid place-items-center bg-tch31-bg font-tch31-sans p-8">
<article tabindex="0" class="group relative w-[340px] h-[440px] rounded-[20px] overflow-hidden cursor-pointer outline-none bg-[linear-gradient(160deg,#14141f,#0a0a12)] border border-white/7 focus-visible:outline-2 focus-visible:outline-tch31-acc focus-visible:outline-offset-4">
<div class="absolute -top-3/5 -left-[120%] w-3/5 h-[220%] z-1 pointer-events-none rotate-[22deg] blur-[8px] mix-blend-screen transition-[left] duration-700 ease-[cubic-bezier(0.4,0,0.2,1)] group-hover:left-[160%] group-focus-visible:left-[160%] motion-reduce:transition-none bg-[linear-gradient(90deg,transparent,rgb(255_0_128/0.5),rgb(255_200_0/0.5),rgb(0_255_170/0.5),rgb(0_170_255/0.5),rgb(180_80_255/0.5),transparent)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none bg-[repeating-linear-gradient(115deg,transparent_0_40px,rgb(255_255_255/0.015)_40px_41px)]"></div>
<div class="relative z-2 h-full p-[2.4rem] flex flex-col justify-between text-tch31-ink">
<span class="font-tch31-mono text-[0.72rem] tracking-[0.22em] uppercase text-tch31-mut">Optics Lab</span>
<h2 class="font-extrabold text-[2.5rem] leading-none">Refraction<br>No. 9</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch31-body">A coated-glass installation. Light enters white and leaves as a spectrum sweeping the wall.</p>
<div class="flex gap-6 font-tch31-mono text-[0.74rem] text-tch31-mut">
<span><b class="block text-[1.1rem] text-tch31-ink">540nm</b>peak</span>
<span><b class="block text-[1.1rem] text-tch31-ink">1.52</b>index</span>
</div>
</div>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tch31-bg: #06060c;
--color-tch31-bg: oklch(0.09 0.008 285);
--color-tch31-ink: #eef0f7;
--color-tch31-ink: oklch(0.95 0.005 275);
--color-tch31-body: #a3a7bd;
--color-tch31-body: oklch(0.72 0.02 280);
--color-tch31-mut: #8b8fa6;
--color-tch31-mut: oklch(0.63 0.02 280);
--color-tch31-acc: #6ad6ff;
--color-tch31-acc: oklch(0.83 0.12 225);
--font-tch31-sans: 'Sora', system-ui, sans-serif;
--font-tch31-mono: 'Geist Mono', ui-monospace, monospace;
}
.tch-31 {
width: 100%;
min-height: 100svh;
}
```How this works
One element, one property. The bar is a tall rotated rectangle parked off the left edge. Hover moves its left to past the right edge; the 700ms transition does the rest. Because it is a transition rather than an infinite animation, the light passes once and stays gone until you leave and return — which is what a reflection does.
Blur plus screen blend is the material. Unblurred, the bar is a rainbow rectangle. At blur-[8px] with mix-blend-screen it only brightens what it crosses, and the colour arrives as a wash rather than a shape.
The striations do the rest. A 1px repeating gradient at 1.5% opacity, angled with the sweep, suggests a coated surface for almost nothing.
Make it yours
- Sweep angle:
rotate-[22deg]reads as light from above; steeper angles read as a faster pass. - Bar width and blur together control softness — a narrow, sharp bar reads as a laser rather than refraction.
- Speed: 700ms is a slow pass; 400ms reads as a glint.
Gotchas — read before shipping
- Animating
leftis a layout property, but the bar is absolutely positioned inside anoverflow-hiddencard and has no siblings to push — the exception, not a licence. mix-blend-screenneeds an opaque card background; on transparency the bar shows raw.- Keep peak opacity around 0.5 per colour stop or the title washes out as the light crosses it.
motion-reduce:removes the transition, so the bar simply never travels — acceptable here because the card is complete without it.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
mix-blend-mode, filters and transitions are universally supported; the floor is Tailwind v4's generated sheet.