04 / 31
All 31 in 31 Tailwind CSS Hero Sections
- 01Centered Hero Section in Tailwind CSS with Serif Headline & Dual CTA
- 02Tailwind CSS Split Hero Section with Dashboard Mockup
- 03Tailwind CSS Animated Gradient Mesh Hero Section
- 04Glassmorphism Hero Section in Tailwind CSS with Aurora Background
- 05Tailwind CSS Developer Hero Section with Terminal Window
- 06Tailwind Hero Section with Animated Geometric Shapes Background
- 07Tailwind CSS Hero Section with Star Rating & Logo Cloud
- 08Tailwind CSS Animated Headline Hero with Staggered Word Reveal
- 09Before and After Image Comparison Slider Hero in Tailwind CSS
- 10Full-Screen Tailwind Hero with Animated Scroll Down Indicator
- 11Magazine Cover Hero Section in Tailwind CSS
- 12Asymmetric Typography Hero Section in Tailwind CSS
- 13Tailwind CSS Hero Section with Oversized Background Number
- 14Infinite Scrolling Marquee Hero Section in Tailwind CSS
- 15Tailwind CSS Hero Section with Image & Overlay Card
- 16Brutalist Hero Section in Tailwind CSS
- 17Vertical Text Hero Section in Tailwind CSS (Japanese Writing Mode)
- 18Kinetic Typography Hero in Tailwind CSS with Animated Letters
- 19Bento Grid Hero Section in Tailwind CSS
- 20Animated Gradient Text Hero Section in Tailwind CSS
- 21Tailwind CSS Product Hero with Floating Feature Badges
- 22Tailwind CSS Hero Section with Pricing Card
- 23Mobile App Landing Page Hero in Tailwind CSS with App Store Buttons
- 24Neon Glow Hero Section in Tailwind CSS (Cyberpunk)
- 25Parallax Mountain Landscape Hero in Tailwind CSS
- 26Isometric Illustration Hero Section in Tailwind CSS
- 273D Card Stack Hero in Tailwind CSS with Hover Fan-Out
- 28Animated Starfield Background Hero in Tailwind CSS
- 29Glitch Text Effect Hero Section in Tailwind CSS
- 30Animated Conic Gradient Ring Hero in Tailwind CSS
- 31Mouse-Tracking Liquid Glass Lens Hero in Tailwind CSS
Glassmorphism Hero Section in Tailwind CSS with Aurora Background
A frosted-glass card floating over a slowly rotating spa aurora — pale mint, champagne gold and soft rose. Wellness / luxury beauty editorial, with a solid-card fallback via supports-[backdrop-filter]: so it never turns illegible.
Complete Tailwind CSS landing page templates in HTML, React, Next.js and Vue · from $49
Cruip · Affiliate link
The code
<section class="ths-04 relative isolate grid w-full min-h-svh place-items-center overflow-hidden bg-ths04-bg bg-[radial-gradient(circle_at_20%_20%,var(--color-ths04-mint),transparent_50%),radial-gradient(circle_at_85%_30%,var(--color-ths04-rose),transparent_55%),radial-gradient(circle_at_50%_90%,var(--color-ths04-champ),transparent_50%)] px-5 py-16 font-ths04-sans text-ths04-ink sm:px-14" aria-label="Glassmorphism hero over aurora">
<div aria-hidden="true" class="absolute -inset-[10%] -z-10 animate-ths04-spin bg-[conic-gradient(from_90deg,var(--color-ths04-mint),var(--color-ths04-rose),var(--color-ths04-champ),var(--color-ths04-mint))] opacity-60 blur-[56px] motion-reduce:animate-none"></div>
<article class="w-full max-w-[34rem] rounded-[28px] border border-white/90 bg-white/85 p-8 text-center shadow-[inset_0_1px_0_white,0_30px_70px_-20px_rgb(160_110_80/0.35)] backdrop-blur-xl backdrop-saturate-150 transition duration-700 starting:translate-y-4 starting:opacity-0 supports-[backdrop-filter:blur(1px)]:bg-white/50 sm:p-12">
<span class="font-ths04-serif text-base text-ths04-gold italic">A daily ritual</span>
<h1 class="mt-3 font-ths04-serif text-[clamp(36px,5.6vw,58px)] leading-[1.02] font-medium tracking-[-0.015em] text-balance">Skincare without <em class="font-semibold text-ths04-gold">the homework.</em></h1>
<p class="mx-auto mt-5 max-w-[24rem] text-[15px] leading-relaxed text-ths04-body">Three minutes. Two products. One routine that fits the life you actually live.</p>
<a href="#start" class="mt-8 inline-flex min-h-12 items-center rounded-full bg-ths04-ink px-8 text-sm font-semibold tracking-[0.04em] text-ths04-bg transition hover:bg-ths04-gold focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-ths04-ink motion-reduce:transition-none">Find your routine</a>
<ul class="mt-8 flex flex-wrap justify-center gap-x-5 gap-y-2 border-t border-ths04-ink/10 pt-6 text-xs font-medium text-ths04-body">
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Dermatologist-tested</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Fragrance-free</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Refillable</li>
</ul>
</article>
</section><section class="ths-04 relative isolate grid w-full min-h-svh place-items-center overflow-hidden bg-ths04-bg bg-[radial-gradient(circle_at_20%_20%,var(--color-ths04-mint),transparent_50%),radial-gradient(circle_at_85%_30%,var(--color-ths04-rose),transparent_55%),radial-gradient(circle_at_50%_90%,var(--color-ths04-champ),transparent_50%)] px-5 py-16 font-ths04-sans text-ths04-ink sm:px-14" aria-label="Glassmorphism hero over aurora">
<div aria-hidden="true" class="absolute -inset-[10%] -z-10 animate-ths04-spin bg-[conic-gradient(from_90deg,var(--color-ths04-mint),var(--color-ths04-rose),var(--color-ths04-champ),var(--color-ths04-mint))] opacity-60 blur-[56px] motion-reduce:animate-none"></div>
<article class="w-full max-w-[34rem] rounded-[28px] border border-white/90 bg-white/85 p-8 text-center shadow-[inset_0_1px_0_white,0_30px_70px_-20px_rgb(160_110_80/0.35)] backdrop-blur-xl backdrop-saturate-150 transition duration-700 starting:translate-y-4 starting:opacity-0 supports-[backdrop-filter:blur(1px)]:bg-white/50 sm:p-12">
<span class="font-ths04-serif text-base text-ths04-gold italic">A daily ritual</span>
<h1 class="mt-3 font-ths04-serif text-[clamp(36px,5.6vw,58px)] leading-[1.02] font-medium tracking-[-0.015em] text-balance">Skincare without <em class="font-semibold text-ths04-gold">the homework.</em></h1>
<p class="mx-auto mt-5 max-w-[24rem] text-[15px] leading-relaxed text-ths04-body">Three minutes. Two products. One routine that fits the life you actually live.</p>
<a href="#start" class="mt-8 inline-flex min-h-12 items-center rounded-full bg-ths04-ink px-8 text-sm font-semibold tracking-[0.04em] text-ths04-bg transition hover:bg-ths04-gold focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-ths04-ink motion-reduce:transition-none">Find your routine</a>
<ul class="mt-8 flex flex-wrap justify-center gap-x-5 gap-y-2 border-t border-ths04-ink/10 pt-6 text-xs font-medium text-ths04-body">
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Dermatologist-tested</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Fragrance-free</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Refillable</li>
</ul>
</article>
</section>@import "tailwindcss";
@theme {
--color-ths04-bg: #faf6ed;
--color-ths04-bg: oklch(0.974 0.013 86.8);
--color-ths04-mint: #d6f0e0;
--color-ths04-mint: oklch(0.932 0.035 158.7);
--color-ths04-rose: #f9d4c8;
--color-ths04-rose: oklch(0.898 0.045 38.8);
--color-ths04-champ: #f3e3c0;
--color-ths04-champ: oklch(0.92 0.049 86.3);
--color-ths04-ink: #2a2818;
--color-ths04-ink: oklch(0.274 0.028 101.9);
--color-ths04-body: #5c5846;
--color-ths04-body: oklch(0.459 0.028 96.9);
--color-ths04-gold: #946f40;
--color-ths04-gold: oklch(0.568 0.079 71.7);
--font-ths04-serif: 'Cormorant Garamond', Georgia, serif;
--font-ths04-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
--animate-ths04-spin: ths04-spin 30s linear infinite;
@keyframes ths04-spin {
to {
transform: rotate(360deg);
}
}
}
/* Root rule: the full-bleed contract, stated in CSS as well as in the markup's utilities, so the
stage is sized before the browser build compiles. */
.ths-04 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-ths04-bg: #faf6ed;
--color-ths04-bg: oklch(0.974 0.013 86.8);
--color-ths04-mint: #d6f0e0;
--color-ths04-mint: oklch(0.932 0.035 158.7);
--color-ths04-rose: #f9d4c8;
--color-ths04-rose: oklch(0.898 0.045 38.8);
--color-ths04-champ: #f3e3c0;
--color-ths04-champ: oklch(0.92 0.049 86.3);
--color-ths04-ink: #2a2818;
--color-ths04-ink: oklch(0.274 0.028 101.9);
--color-ths04-body: #5c5846;
--color-ths04-body: oklch(0.459 0.028 96.9);
--color-ths04-gold: #946f40;
--color-ths04-gold: oklch(0.568 0.079 71.7);
--font-ths04-serif: 'Cormorant Garamond', Georgia, serif;
--font-ths04-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
--animate-ths04-spin: ths04-spin 30s linear infinite;
@keyframes ths04-spin {
to {
transform: rotate(360deg);
}
}
}
/* Root rule: the full-bleed contract, stated in CSS as well as in the markup's utilities, so the
stage is sized before the browser build compiles. */
.ths-04 {
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-ths04-bg: #faf6ed;
--color-ths04-bg: oklch(0.974 0.013 86.8);
--color-ths04-mint: #d6f0e0;
--color-ths04-mint: oklch(0.932 0.035 158.7);
--color-ths04-rose: #f9d4c8;
--color-ths04-rose: oklch(0.898 0.045 38.8);
--color-ths04-champ: #f3e3c0;
--color-ths04-champ: oklch(0.92 0.049 86.3);
--color-ths04-ink: #2a2818;
--color-ths04-ink: oklch(0.274 0.028 101.9);
--color-ths04-body: #5c5846;
--color-ths04-body: oklch(0.459 0.028 96.9);
--color-ths04-gold: #946f40;
--color-ths04-gold: oklch(0.568 0.079 71.7);
--font-ths04-serif: 'Cormorant Garamond', Georgia, serif;
--font-ths04-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
--animate-ths04-spin: ths04-spin 30s linear infinite;
@keyframes ths04-spin {
to {
transform: rotate(360deg);
}
}
}
/* Root rule: the full-bleed contract, stated in CSS as well as in the markup's utilities, so the
stage is sized before the browser build compiles. */
.ths-04 {
width: 100%;
min-height: 100svh;
}@import "tailwindcss";
@theme {
--color-ths04-bg: #faf6ed;
--color-ths04-bg: oklch(0.974 0.013 86.8);
--color-ths04-mint: #d6f0e0;
--color-ths04-mint: oklch(0.932 0.035 158.7);
--color-ths04-rose: #f9d4c8;
--color-ths04-rose: oklch(0.898 0.045 38.8);
--color-ths04-champ: #f3e3c0;
--color-ths04-champ: oklch(0.92 0.049 86.3);
--color-ths04-ink: #2a2818;
--color-ths04-ink: oklch(0.274 0.028 101.9);
--color-ths04-body: #5c5846;
--color-ths04-body: oklch(0.459 0.028 96.9);
--color-ths04-gold: #946f40;
--color-ths04-gold: oklch(0.568 0.079 71.7);
--font-ths04-serif: 'Cormorant Garamond', Georgia, serif;
--font-ths04-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
--animate-ths04-spin: ths04-spin 30s linear infinite;
@keyframes ths04-spin {
to {
transform: rotate(360deg);
}
}
}
/* Root rule: the full-bleed contract, stated in CSS as well as in the markup's utilities, so the
stage is sized before the browser build compiles. */
.ths-04 {
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=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Plus+Jakarta+Sans:wght@400;500;600&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=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Plus+Jakarta+Sans:wght@400;500;600&display=swap">What changed in the port
Which parts became utilities, which stayed CSS, and why.
- The three-layer radial background became one comma-separated
bg-[…]utility reading theme tokens. - UI upgrade from the CSS original: a
supports-[backdrop-filter]fallback keeps the card legible where blur is unavailable, and a lit inset top edge makes the glass read as glass. - UI upgrade: champagne gold deepened from
#b8956a(2.6:1) to#946f40(4.6:1) on the eyebrow and italic; three trust markers added under the CTA; the card fades in on load.
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: Glassmorphism Hero Section in Tailwind CSS with Aurora Background
Source: https://codefronts.com/layouts/tailwind-css-hero-sections/tailwind-glassmorphism-hero-section-aurora-background/
A frosted-glass card floating over a slowly rotating spa aurora — pale mint, champagne gold and soft rose. Wellness / luxury beauty editorial, with a solid-card fallback via supports-[backdrop-filter]: so it never turns illegible.
## HTML
```html
<section class="ths-04 relative isolate grid w-full min-h-svh place-items-center overflow-hidden bg-ths04-bg bg-[radial-gradient(circle_at_20%_20%,var(--color-ths04-mint),transparent_50%),radial-gradient(circle_at_85%_30%,var(--color-ths04-rose),transparent_55%),radial-gradient(circle_at_50%_90%,var(--color-ths04-champ),transparent_50%)] px-5 py-16 font-ths04-sans text-ths04-ink sm:px-14" aria-label="Glassmorphism hero over aurora">
<div aria-hidden="true" class="absolute -inset-[10%] -z-10 animate-ths04-spin bg-[conic-gradient(from_90deg,var(--color-ths04-mint),var(--color-ths04-rose),var(--color-ths04-champ),var(--color-ths04-mint))] opacity-60 blur-[56px] motion-reduce:animate-none"></div>
<article class="w-full max-w-[34rem] rounded-[28px] border border-white/90 bg-white/85 p-8 text-center shadow-[inset_0_1px_0_white,0_30px_70px_-20px_rgb(160_110_80/0.35)] backdrop-blur-xl backdrop-saturate-150 transition duration-700 starting:translate-y-4 starting:opacity-0 supports-[backdrop-filter:blur(1px)]:bg-white/50 sm:p-12">
<span class="font-ths04-serif text-base text-ths04-gold italic">A daily ritual</span>
<h1 class="mt-3 font-ths04-serif text-[clamp(36px,5.6vw,58px)] leading-[1.02] font-medium tracking-[-0.015em] text-balance">Skincare without <em class="font-semibold text-ths04-gold">the homework.</em></h1>
<p class="mx-auto mt-5 max-w-[24rem] text-[15px] leading-relaxed text-ths04-body">Three minutes. Two products. One routine that fits the life you actually live.</p>
<a href="#start" class="mt-8 inline-flex min-h-12 items-center rounded-full bg-ths04-ink px-8 text-sm font-semibold tracking-[0.04em] text-ths04-bg transition hover:bg-ths04-gold focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-ths04-ink motion-reduce:transition-none">Find your routine</a>
<ul class="mt-8 flex flex-wrap justify-center gap-x-5 gap-y-2 border-t border-ths04-ink/10 pt-6 text-xs font-medium text-ths04-body">
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Dermatologist-tested</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Fragrance-free</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Refillable</li>
</ul>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-ths04-bg: #faf6ed;
--color-ths04-bg: oklch(0.974 0.013 86.8);
--color-ths04-mint: #d6f0e0;
--color-ths04-mint: oklch(0.932 0.035 158.7);
--color-ths04-rose: #f9d4c8;
--color-ths04-rose: oklch(0.898 0.045 38.8);
--color-ths04-champ: #f3e3c0;
--color-ths04-champ: oklch(0.92 0.049 86.3);
--color-ths04-ink: #2a2818;
--color-ths04-ink: oklch(0.274 0.028 101.9);
--color-ths04-body: #5c5846;
--color-ths04-body: oklch(0.459 0.028 96.9);
--color-ths04-gold: #946f40;
--color-ths04-gold: oklch(0.568 0.079 71.7);
--font-ths04-serif: 'Cormorant Garamond', Georgia, serif;
--font-ths04-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
--animate-ths04-spin: ths04-spin 30s linear infinite;
@keyframes ths04-spin {
to {
transform: rotate(360deg);
}
}
}
/* Root rule: the full-bleed contract, stated in CSS as well as in the markup's utilities, so the
stage is sized before the browser build compiles. */
.ths-04 {
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: Glassmorphism Hero Section in Tailwind CSS with Aurora Background
Source: https://codefronts.com/layouts/tailwind-css-hero-sections/tailwind-glassmorphism-hero-section-aurora-background/
A frosted-glass card floating over a slowly rotating spa aurora — pale mint, champagne gold and soft rose. Wellness / luxury beauty editorial, with a solid-card fallback via supports-[backdrop-filter]: so it never turns illegible.
## HTML
```html
<section class="ths-04 relative isolate grid w-full min-h-svh place-items-center overflow-hidden bg-ths04-bg bg-[radial-gradient(circle_at_20%_20%,var(--color-ths04-mint),transparent_50%),radial-gradient(circle_at_85%_30%,var(--color-ths04-rose),transparent_55%),radial-gradient(circle_at_50%_90%,var(--color-ths04-champ),transparent_50%)] px-5 py-16 font-ths04-sans text-ths04-ink sm:px-14" aria-label="Glassmorphism hero over aurora">
<div aria-hidden="true" class="absolute -inset-[10%] -z-10 animate-ths04-spin bg-[conic-gradient(from_90deg,var(--color-ths04-mint),var(--color-ths04-rose),var(--color-ths04-champ),var(--color-ths04-mint))] opacity-60 blur-[56px] motion-reduce:animate-none"></div>
<article class="w-full max-w-[34rem] rounded-[28px] border border-white/90 bg-white/85 p-8 text-center shadow-[inset_0_1px_0_white,0_30px_70px_-20px_rgb(160_110_80/0.35)] backdrop-blur-xl backdrop-saturate-150 transition duration-700 starting:translate-y-4 starting:opacity-0 supports-[backdrop-filter:blur(1px)]:bg-white/50 sm:p-12">
<span class="font-ths04-serif text-base text-ths04-gold italic">A daily ritual</span>
<h1 class="mt-3 font-ths04-serif text-[clamp(36px,5.6vw,58px)] leading-[1.02] font-medium tracking-[-0.015em] text-balance">Skincare without <em class="font-semibold text-ths04-gold">the homework.</em></h1>
<p class="mx-auto mt-5 max-w-[24rem] text-[15px] leading-relaxed text-ths04-body">Three minutes. Two products. One routine that fits the life you actually live.</p>
<a href="#start" class="mt-8 inline-flex min-h-12 items-center rounded-full bg-ths04-ink px-8 text-sm font-semibold tracking-[0.04em] text-ths04-bg transition hover:bg-ths04-gold focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-ths04-ink motion-reduce:transition-none">Find your routine</a>
<ul class="mt-8 flex flex-wrap justify-center gap-x-5 gap-y-2 border-t border-ths04-ink/10 pt-6 text-xs font-medium text-ths04-body">
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Dermatologist-tested</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Fragrance-free</li>
<li class="flex items-center gap-1.5"><span aria-hidden="true" class="text-ths04-gold">✦</span>Refillable</li>
</ul>
</article>
</section>
```
## CSS
```css
@import "tailwindcss";
@theme {
--color-ths04-bg: #faf6ed;
--color-ths04-bg: oklch(0.974 0.013 86.8);
--color-ths04-mint: #d6f0e0;
--color-ths04-mint: oklch(0.932 0.035 158.7);
--color-ths04-rose: #f9d4c8;
--color-ths04-rose: oklch(0.898 0.045 38.8);
--color-ths04-champ: #f3e3c0;
--color-ths04-champ: oklch(0.92 0.049 86.3);
--color-ths04-ink: #2a2818;
--color-ths04-ink: oklch(0.274 0.028 101.9);
--color-ths04-body: #5c5846;
--color-ths04-body: oklch(0.459 0.028 96.9);
--color-ths04-gold: #946f40;
--color-ths04-gold: oklch(0.568 0.079 71.7);
--font-ths04-serif: 'Cormorant Garamond', Georgia, serif;
--font-ths04-sans: 'Plus Jakarta Sans', system-ui, sans-serif;
--animate-ths04-spin: ths04-spin 30s linear infinite;
@keyframes ths04-spin {
to {
transform: rotate(360deg);
}
}
}
/* Root rule: the full-bleed contract, stated in CSS as well as in the markup's utilities, so the
stage is sized before the browser build compiles. */
.ths-04 {
width: 100%;
min-height: 100svh;
}
```How this works
Glass needs something to blur. An oversized conic gradient (-inset-[10%]) spins under a heavy blur-[56px], layered over three static radial pools. The card's backdrop-blur-xl refracts that motion so the pane feels alive.
The fallback is a variant. supports-[backdrop-filter:blur(1px)]:bg-white/50 only lowers the opacity where blur is supported; elsewhere the card stays at 85% white and the text keeps its contrast.
Make it yours
- Tint the glass: replace
bg-white/50withbg-ths04-rose/40. - Calmer motion: lengthen
30sin--animate-ths04-spinor remove the class. - Add a product shot: an
<img>above the eyebrow withrounded-2xl.
Gotchas — read before shipping
backdrop-filtercreates a stacking context — dropdowns inside the card need their ownz-*.- Safari needs the prefixed property; Tailwind emits
-webkit-backdrop-filterfor you.
Browser support
| Chrome | Safari | Firefox | Edge |
|---|---|---|---|
| 111+ | 16.4+ | 128+ | 111+ |
backdrop-filter is universal on Tailwind v4's floor; the supports- fallback covers embedded webviews that disable it.