30 / 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 Color-Burn Ignition Card with Grayscale-to-Fire Hover
A BBQ card that sits grey and dim until hover, then ignites: the grayscale filter releases, a color-burn fire layer rises from below, and screen-blended embers fade in. Three stacked state changes on one trigger, all utilities.
Untitled UI Pro: 5,000+ React + Tailwind CSS v4 components · from $349 one-time
Untitled UI React · Affiliate link
The code
<section class="tch-30 w-full min-h-svh grid place-items-center bg-tch30-bg font-tch30-sans p-8">
<article tabindex="0" class="group relative w-[330px] h-[440px] rounded-[14px] overflow-hidden cursor-pointer outline-none bg-tch30-card grayscale-80 brightness-75 transition-[filter,box-shadow] duration-600 hover:grayscale-0 hover:brightness-100 hover:shadow-[0_0_60px_rgb(255_90_20/0.4)] focus-visible:grayscale-0 focus-visible:brightness-100 focus-visible:outline-3 focus-visible:outline-tch30-flame focus-visible:outline-offset-4 motion-reduce:transition-none">
<div class="absolute inset-0 bg-[linear-gradient(160deg,#4a4a52,#1c1c20)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none opacity-0 translate-y-1/5 mix-blend-color-burn transition-[opacity,translate] duration-600 group-hover:opacity-100 group-hover:translate-y-0 group-focus-visible:opacity-100 group-focus-visible:translate-y-0 bg-[radial-gradient(circle_at_50%_100%,#ff7a18,#ff2d00_40%,#8a0e00_70%,transparent_90%)]"></div>
<div class="absolute inset-0 z-2 pointer-events-none opacity-0 mix-blend-screen transition-opacity duration-600 delay-100 group-hover:opacity-70 group-focus-visible:opacity-70 bg-[radial-gradient(#ffcf6b_1px,transparent_1.5px),radial-gradient(#ff8a3c_1px,transparent_1.5px)] bg-[length:60px_60px,90px_90px] bg-[position:0_0,30px_40px]"></div>
<div class="relative z-3 h-full p-[2.4rem] flex flex-col justify-between text-tch30-ink">
<span class="text-[0.72rem] tracking-[0.25em] uppercase text-tch30-tag">BBQ · Texas Style</span>
<h2 class="font-tch30-display font-extrabold text-[3.6rem] leading-[0.82] uppercase">Low &<br>Slow</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch30-body">Sixteen hours over post oak. Hover to bring the coals back to life.</p>
</div>
</article>
</section><section class="tch-30 w-full min-h-svh grid place-items-center bg-tch30-bg font-tch30-sans p-8">
<article tabindex="0" class="group relative w-[330px] h-[440px] rounded-[14px] overflow-hidden cursor-pointer outline-none bg-tch30-card grayscale-80 brightness-75 transition-[filter,box-shadow] duration-600 hover:grayscale-0 hover:brightness-100 hover:shadow-[0_0_60px_rgb(255_90_20/0.4)] focus-visible:grayscale-0 focus-visible:brightness-100 focus-visible:outline-3 focus-visible:outline-tch30-flame focus-visible:outline-offset-4 motion-reduce:transition-none">
<div class="absolute inset-0 bg-[linear-gradient(160deg,#4a4a52,#1c1c20)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none opacity-0 translate-y-1/5 mix-blend-color-burn transition-[opacity,translate] duration-600 group-hover:opacity-100 group-hover:translate-y-0 group-focus-visible:opacity-100 group-focus-visible:translate-y-0 bg-[radial-gradient(circle_at_50%_100%,#ff7a18,#ff2d00_40%,#8a0e00_70%,transparent_90%)]"></div>
<div class="absolute inset-0 z-2 pointer-events-none opacity-0 mix-blend-screen transition-opacity duration-600 delay-100 group-hover:opacity-70 group-focus-visible:opacity-70 bg-[radial-gradient(#ffcf6b_1px,transparent_1.5px),radial-gradient(#ff8a3c_1px,transparent_1.5px)] bg-[length:60px_60px,90px_90px] bg-[position:0_0,30px_40px]"></div>
<div class="relative z-3 h-full p-[2.4rem] flex flex-col justify-between text-tch30-ink">
<span class="text-[0.72rem] tracking-[0.25em] uppercase text-tch30-tag">BBQ · Texas Style</span>
<h2 class="font-tch30-display font-extrabold text-[3.6rem] leading-[0.82] uppercase">Low &<br>Slow</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch30-body">Sixteen hours over post oak. Hover to bring the coals back to life.</p>
</div>
</article>
</section>@import "tailwindcss";
@theme {
--color-tch30-bg: #100804;
--color-tch30-bg: oklch(0.14 0.02 45);
--color-tch30-card: #1a1a1a;
--color-tch30-card: oklch(0.2 0 0);
--color-tch30-ink: #f3ece4;
--color-tch30-ink: oklch(0.94 0.01 70);
--color-tch30-body: #d8cabc;
--color-tch30-body: oklch(0.84 0.02 70);
--color-tch30-tag: #ffb27a;
--color-tch30-tag: oklch(0.82 0.11 55);
--color-tch30-flame: #ff5a14;
--color-tch30-flame: oklch(0.68 0.2 42);
--font-tch30-sans: 'Barlow', system-ui, sans-serif;
--font-tch30-display: 'Big Shoulders Display', system-ui, sans-serif;
}
.tch-30 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tch30-bg: #100804;
--color-tch30-bg: oklch(0.14 0.02 45);
--color-tch30-card: #1a1a1a;
--color-tch30-card: oklch(0.2 0 0);
--color-tch30-ink: #f3ece4;
--color-tch30-ink: oklch(0.94 0.01 70);
--color-tch30-body: #d8cabc;
--color-tch30-body: oklch(0.84 0.02 70);
--color-tch30-tag: #ffb27a;
--color-tch30-tag: oklch(0.82 0.11 55);
--color-tch30-flame: #ff5a14;
--color-tch30-flame: oklch(0.68 0.2 42);
--font-tch30-sans: 'Barlow', system-ui, sans-serif;
--font-tch30-display: 'Big Shoulders Display', system-ui, sans-serif;
}
.tch-30 {
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-tch30-bg: #100804;
--color-tch30-bg: oklch(0.14 0.02 45);
--color-tch30-card: #1a1a1a;
--color-tch30-card: oklch(0.2 0 0);
--color-tch30-ink: #f3ece4;
--color-tch30-ink: oklch(0.94 0.01 70);
--color-tch30-body: #d8cabc;
--color-tch30-body: oklch(0.84 0.02 70);
--color-tch30-tag: #ffb27a;
--color-tch30-tag: oklch(0.82 0.11 55);
--color-tch30-flame: #ff5a14;
--color-tch30-flame: oklch(0.68 0.2 42);
--font-tch30-sans: 'Barlow', system-ui, sans-serif;
--font-tch30-display: 'Big Shoulders Display', system-ui, sans-serif;
}
.tch-30 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-tch30-bg: #100804;
--color-tch30-bg: oklch(0.14 0.02 45);
--color-tch30-card: #1a1a1a;
--color-tch30-card: oklch(0.2 0 0);
--color-tch30-ink: #f3ece4;
--color-tch30-ink: oklch(0.94 0.01 70);
--color-tch30-body: #d8cabc;
--color-tch30-body: oklch(0.84 0.02 70);
--color-tch30-tag: #ffb27a;
--color-tch30-tag: oklch(0.82 0.11 55);
--color-tch30-flame: #ff5a14;
--color-tch30-flame: oklch(0.68 0.2 42);
--font-tch30-sans: 'Barlow', system-ui, sans-serif;
--font-tch30-display: 'Big Shoulders Display', system-ui, sans-serif;
}
.tch-30 {
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=Big+Shoulders+Display:wght@600;800&family=Barlow: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=Big+Shoulders+Display:wght@600;800&family=Barlow:wght@400;500&display=swap">What changed in the port
Which parts became utilities, which stayed CSS, and why.
- Filters on the card and blend modes on its children is a powerful pairing:
grayscale-80governs the whole subtree, so the layers inside need no state of their own beyond opacity. bg-[position:0_0,30px_40px]is the arbitrary form of a two-valuebackground-position, which no utility covers — and the comma survives inside the brackets untouched.- UI change from the CSS original: focusable card, ignition on
focus-visible:, and the fire layer now also slides ontranslaterather than the legacytransformshorthand, so it composes with v4's split transform utilities.
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 Color-Burn Ignition Card with Grayscale-to-Fire Hover
Source: https://codefronts.com/motion/tailwind-css-card-hover-effects/tailwind-color-burn-ignition-card/
A BBQ card that sits grey and dim until hover, then ignites: the grayscale filter releases, a color-burn fire layer rises from below, and screen-blended embers fade in. Three stacked state changes on one trigger, all utilities.
## HTML
```html
<section class="tch-30 w-full min-h-svh grid place-items-center bg-tch30-bg font-tch30-sans p-8">
<article tabindex="0" class="group relative w-[330px] h-[440px] rounded-[14px] overflow-hidden cursor-pointer outline-none bg-tch30-card grayscale-80 brightness-75 transition-[filter,box-shadow] duration-600 hover:grayscale-0 hover:brightness-100 hover:shadow-[0_0_60px_rgb(255_90_20/0.4)] focus-visible:grayscale-0 focus-visible:brightness-100 focus-visible:outline-3 focus-visible:outline-tch30-flame focus-visible:outline-offset-4 motion-reduce:transition-none">
<div class="absolute inset-0 bg-[linear-gradient(160deg,#4a4a52,#1c1c20)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none opacity-0 translate-y-1/5 mix-blend-color-burn transition-[opacity,translate] duration-600 group-hover:opacity-100 group-hover:translate-y-0 group-focus-visible:opacity-100 group-focus-visible:translate-y-0 bg-[radial-gradient(circle_at_50%_100%,#ff7a18,#ff2d00_40%,#8a0e00_70%,transparent_90%)]"></div>
<div class="absolute inset-0 z-2 pointer-events-none opacity-0 mix-blend-screen transition-opacity duration-600 delay-100 group-hover:opacity-70 group-focus-visible:opacity-70 bg-[radial-gradient(#ffcf6b_1px,transparent_1.5px),radial-gradient(#ff8a3c_1px,transparent_1.5px)] bg-[length:60px_60px,90px_90px] bg-[position:0_0,30px_40px]"></div>
<div class="relative z-3 h-full p-[2.4rem] flex flex-col justify-between text-tch30-ink">
<span class="text-[0.72rem] tracking-[0.25em] uppercase text-tch30-tag">BBQ · Texas Style</span>
<h2 class="font-tch30-display font-extrabold text-[3.6rem] leading-[0.82] uppercase">Low &<br>Slow</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch30-body">Sixteen hours over post oak. Hover to bring the coals back to life.</p>
</div>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tch30-bg: #100804;
--color-tch30-bg: oklch(0.14 0.02 45);
--color-tch30-card: #1a1a1a;
--color-tch30-card: oklch(0.2 0 0);
--color-tch30-ink: #f3ece4;
--color-tch30-ink: oklch(0.94 0.01 70);
--color-tch30-body: #d8cabc;
--color-tch30-body: oklch(0.84 0.02 70);
--color-tch30-tag: #ffb27a;
--color-tch30-tag: oklch(0.82 0.11 55);
--color-tch30-flame: #ff5a14;
--color-tch30-flame: oklch(0.68 0.2 42);
--font-tch30-sans: 'Barlow', system-ui, sans-serif;
--font-tch30-display: 'Big Shoulders Display', system-ui, sans-serif;
}
.tch-30 {
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 Color-Burn Ignition Card with Grayscale-to-Fire Hover
Source: https://codefronts.com/motion/tailwind-css-card-hover-effects/tailwind-color-burn-ignition-card/
A BBQ card that sits grey and dim until hover, then ignites: the grayscale filter releases, a color-burn fire layer rises from below, and screen-blended embers fade in. Three stacked state changes on one trigger, all utilities.
## HTML
```html
<section class="tch-30 w-full min-h-svh grid place-items-center bg-tch30-bg font-tch30-sans p-8">
<article tabindex="0" class="group relative w-[330px] h-[440px] rounded-[14px] overflow-hidden cursor-pointer outline-none bg-tch30-card grayscale-80 brightness-75 transition-[filter,box-shadow] duration-600 hover:grayscale-0 hover:brightness-100 hover:shadow-[0_0_60px_rgb(255_90_20/0.4)] focus-visible:grayscale-0 focus-visible:brightness-100 focus-visible:outline-3 focus-visible:outline-tch30-flame focus-visible:outline-offset-4 motion-reduce:transition-none">
<div class="absolute inset-0 bg-[linear-gradient(160deg,#4a4a52,#1c1c20)]"></div>
<div class="absolute inset-0 z-1 pointer-events-none opacity-0 translate-y-1/5 mix-blend-color-burn transition-[opacity,translate] duration-600 group-hover:opacity-100 group-hover:translate-y-0 group-focus-visible:opacity-100 group-focus-visible:translate-y-0 bg-[radial-gradient(circle_at_50%_100%,#ff7a18,#ff2d00_40%,#8a0e00_70%,transparent_90%)]"></div>
<div class="absolute inset-0 z-2 pointer-events-none opacity-0 mix-blend-screen transition-opacity duration-600 delay-100 group-hover:opacity-70 group-focus-visible:opacity-70 bg-[radial-gradient(#ffcf6b_1px,transparent_1.5px),radial-gradient(#ff8a3c_1px,transparent_1.5px)] bg-[length:60px_60px,90px_90px] bg-[position:0_0,30px_40px]"></div>
<div class="relative z-3 h-full p-[2.4rem] flex flex-col justify-between text-tch30-ink">
<span class="text-[0.72rem] tracking-[0.25em] uppercase text-tch30-tag">BBQ · Texas Style</span>
<h2 class="font-tch30-display font-extrabold text-[3.6rem] leading-[0.82] uppercase">Low &<br>Slow</h2>
<p class="text-[0.86rem] leading-[1.6] text-tch30-body">Sixteen hours over post oak. Hover to bring the coals back to life.</p>
</div>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-tch30-bg: #100804;
--color-tch30-bg: oklch(0.14 0.02 45);
--color-tch30-card: #1a1a1a;
--color-tch30-card: oklch(0.2 0 0);
--color-tch30-ink: #f3ece4;
--color-tch30-ink: oklch(0.94 0.01 70);
--color-tch30-body: #d8cabc;
--color-tch30-body: oklch(0.84 0.02 70);
--color-tch30-tag: #ffb27a;
--color-tch30-tag: oklch(0.82 0.11 55);
--color-tch30-flame: #ff5a14;
--color-tch30-flame: oklch(0.68 0.2 42);
--font-tch30-sans: 'Barlow', system-ui, sans-serif;
--font-tch30-display: 'Big Shoulders Display', system-ui, sans-serif;
}
.tch-30 {
width: 100%;
min-height: 100svh;
}
```How this works
The filter carries the before-and-after. At rest the entire card is 80% desaturated and dimmed to 75% brightness — cold coals. Hover releases both, and because filter applies to the whole subtree, every layer inside brightens together. That is why the card reads as igniting rather than as gaining an overlay.
color-burn intensifies, it does not cover. The fire gradient blends into the card's grey face by increasing contrast and dropping luminance, which produces a deep ember red no flat overlay achieves. It also slides up 20% into place, so the heat rises.
Embers are two dot grids. Radial-gradient dots at 60px and 90px spacing, offset from each other, blended with screen so only the bright pixels survive.
Make it yours
- Burn hue: the fire gradient's stops — oranges read as coals, cyan reads as a shadow cast.
- Blend mode:
multiplyfor straight darkening,hard-lightfor high drama. - Rest state:
grayscale-80is a dramatic before;grayscale-40is a subtler dim.
Gotchas — read before shipping
mix-blend-modeneeds an opaque parent background to blend against.- The burn darkens everything, body copy included — check contrast in the lit state, which is the one people read.
color-burnhas small gamma differences between Firefox and Chromium; the effect survives, the exact hue shifts a shade.- Both overlay layers need
pointer-events-none.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
mix-blend-mode and CSS filters are universally supported; gamma differences in color-burn are subtle. The floor is Tailwind v4's sheet.