Glassmorphism

What is glassmorphism?

Glassmorphism is a UI style that makes panels look like frosted glass: a semi-transparent background, a backdrop blur, a thin light border, and a soft shadow, layered over a colorful background. The blur keeps content behind the panel visible but unreadable, which creates depth without heavy textures. In CSS it takes four properties, with backdrop-filter: blur() doing the real work. Apple and Microsoft both build on it; Apple's Liquid Glass is its 2025 evolution.

Glassmorphism example: a frosted white prompt card floating over a mountain photo, generated with Superdesign
A real generated UI, not stock art: one frosted card over one photo, the entire style in a single move. From the public library item Futuristic SaaS Landing Page.

Why is glassmorphism everywhere again?

Two things changed since Michal Malewicz coined the term in 2020. First, Apple made material realism the headline again: Liquid Glass, announced at WWDC in June 2025 and shipped across iOS 26 and macOS Tahoe, is glassmorphism evolved with refraction and motion, and it put "liquid glass vs glassmorphism" into real search demand. Second, the browser story quietly resolved: Safari 18 finally shipped backdrop-filter unprefixed in September 2024, so most older articles describe support constraints that no longer exist.

The style itself never left product chrome. Apple's global nav, Framer's header, and half the dark-mode SaaS landing pages of the last two years all run on the same four CSS properties below.

How do you make glassmorphism in CSS?

This card is the recipe, live

rgba(255,255,255,0.12) fill, blur(12px) saturate(160%), 1px light border, 16px radius, one soft shadow.

/* via superdesign.dev/styles/glassmorphism */
.glass {
  /* the fill: white at 10-15% alpha reads as frost, not fog */
  background: rgba(255, 255, 255, 0.12);
  /* the glass: blur melts the backdrop, saturate keeps colors from going gray */
  backdrop-filter: blur(12px) saturate(160%);
  -webkit-backdrop-filter: blur(12px) saturate(160%); /* Safari before 18 */
  /* the edge: a 1px light border sells the pane and survives forced-colors mode */
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 16px;
  /* the lift: large soft shadow separates glass from backdrop */
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}

/* dark glass variant */
.glass-dark {
  background: rgba(17, 25, 40, 0.55);
  border-color: rgba(255, 255, 255, 0.12);
}

/* fallback: no backdrop-filter, go nearly opaque so text stays readable */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .glass { background: rgba(255, 255, 255, 0.85); }
  .glass-dark { background: rgba(17, 25, 40, 0.92); }
}

Three gotchas the tutorials skip

  • Glass needs a busy backdrop. Over a flat single color, blur has nothing to do and the panel just looks washed out. Put a gradient or image behind it.
  • backdrop-filter turns the element into a containing block: position: fixed descendants get trapped inside it. This is the classic "my modal broke" bug.
  • Blur cost scales with blurred area. Never animate the blur radius, and avoid full-page glass surfaces that repaint on scroll.

Why these exact values

  • The 12px default blur sits in the verified production sweet spot: Apple's nav uses 20px, Framer 10px, Reflect runs 4 to 22px, Resend 25px.
  • The 1px light border is an accessibility feature, not decoration: Windows forced-colors mode strips transparency and leaves that border as the only visible edge.
  • The saturate(160%) half of the filter is what keeps colors behind the pane from going gray; blur alone reads muddy.

Browser support: Baseline widely available. Chrome and Edge 76+ (2019), Firefox 103+ (2022), Safari 9+ with the -webkit- prefix and unprefixed since Safari 18 (September 2024). Keep the prefix line; it costs nothing and covers older iOS. Ship the @supports fallback anyway so unsupported engines get a readable opaque panel.

Want to tune it live? The glassmorphism generator

Drag the sliders, watch the card, copy the exact CSS or Tailwind it produces. The contrast badge checks your card text against the worst-case backdrop color, which is the check that decides whether your glass is shippable.

Controls

Backdrop

Frosted glass card

Body text over the live backdrop

FAIL 1.4:1

The badge is the card text against the worst-case backdrop color under your current fill, checked at the WCAG 4.5:1 body-text bar. If it fails, raise fill opacity or blur, or keep body text off the glass.

/* via superdesign.dev/styles/glassmorphism */
.glass {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px) saturate(160%);
  -webkit-backdrop-filter: blur(12px) saturate(160%); /* Safari before 18 */
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
}

/* fallback: no backdrop-filter, go nearly opaque so text stays readable */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .glass {
    background: rgba(255, 255, 255, 0.82);
  }
}
Want the whole page, not just the card? Generate a full glassmorphism UI →

What are the best glassmorphism examples?

Every site below was verified live by reading its production CSS, not by eyeballing screenshots. One more worth studying: Clerk runs about 25 backdrop-filter rules, mostly 1 to 10px micro-blurs, proof that glass scales down to component level without eating readability.

Is glassmorphism still trending in 2026?

Yes, and we can show it rather than guess: this is what people actually ask design agents for. Across 208,000+ real generations on Superdesign, glassmorphism prompts have been climbing all spring.

Glassmorphism prompt share on Superdesign, 2026

Glassmorphism rose from 7.5% to 9.9% of generations between January and May 2026, used in 7,866 projects (15,725 prompt mentions).

7.45%Jan5.9%Feb7.03%Mar8.26%Apr9.89%May8.3%Jun*

*June is month to date. Share of all Superdesign generations whose prompt mentions the style. 7,866 distinct projects, 15,725 prompt mentions total.

Methodology

How we count: numbers come from the prompts of 208,000+ real design generations on Superdesign, January to June 2026. A generation counts as mentioning a style when its prompt contains the style term or a close synonym as a whole word (for example glassmorphic or frosted glass for glassmorphism; the dark mode group counts explicit dark mode and dark theme requests, not every mention of the word dark). One generation counts once even if the term repeats. Distinct projects is the conservative figure: one project can produce many generations. June is month to date, so we show it but do not compare it against closed months. Counts are live and drift slightly day to day.

When should you not use glassmorphism?

Text over backdrops you do not control

WCAG 1.4.3 requires 4.5:1 at the worst moment, not on average. A 12% white fill over a user photo can swing from 8:1 contrast to under 2:1 as content scrolls behind it. If users scroll arbitrary content under your glass, you cannot certify contrast. Fix: put body text on a more opaque inner layer, or raise blur and fill opacity until the worst-case backdrop still passes.

Data-dense screens

Tables, code, and long-form reading on translucent panels produce blur halos around small glyphs. Apple keeps glass on navigation chrome and overlays, never on the reading surface; copy that boundary. Even NN/g's review of Apple's Liquid Glass in iOS 26, "Liquid Glass Is Cracked", found usability regressions where glass meets dense content. If you are building a dashboard, keep the glass on the sidebar and headers, not the data grid.

Flat, single-color backgrounds

There is nothing to blur. The panel reads as a gray smudge and you paid the GPU tax for nothing. Try it in the generator above: pick the flat gray backdrop and watch the style die.

Low-end devices and big surfaces

backdrop-filter re-renders on scroll; a full-height glass sidebar janks on older Android. Never animate blur radius.

Users who opted out

Honor @media (prefers-reduced-transparency: reduce) with a solid fill, and remember Windows forced-colors mode strips transparency entirely, leaving the 1px border as the only edge. That border is an accessibility feature, not decoration.

Want to see a full page in the style before you commit to coding it? Prompt-to-design renders the whole layout from a sentence, glass and all.

Generate a glassmorphism UI

Generate it on Superdesign

This prompt is tuned to the exact tokens in the recipe above. Copy it, paste it into the prompt box, and you get a full UI in this style on an infinite canvas. Free to start.

Design a SaaS analytics dashboard in glassmorphism style: frosted glass panels with rgba(255,255,255,0.12) fill, 12px backdrop blur with 160% saturation, 1px rgba(255,255,255,0.25) borders, 16px corner radius, and soft 0 8px 32px shadows, floating over a deep indigo-to-violet mesh gradient. High-contrast white text on the panels, one neon mint accent for primary actions, generous spacing, sidebar plus 4 stat cards plus a line chart.

Copies the prompt and opens Superdesign in a new tab.

Using the Superdesign skill from Claude Code or Cursor?

Paste this tuned style prompt into your coding agent. It carries the same tokens as the recipe, so what the agent builds matches what this page teaches.

style prompt
Use a glassmorphism design system with these tokens:
- Surface: rgba(255,255,255,0.12) fill, backdrop-filter blur(12px) saturate(160%),
  1px rgba(255,255,255,0.25) border, 16px radius, shadow 0 8px 32px rgba(0,0,0,0.25)
- Dark surface variant: rgba(17,25,40,0.55) fill, rgba(255,255,255,0.12) border
- Backdrop: mesh gradient, indigo #4f46e5 to violet #8b5cf6 to deep navy #0f172a;
  never place glass on flat single-color backgrounds
- Text: white #ffffff on dark glass, slate-900 on light glass; body text only on
  surfaces with >= 55% fill opacity so worst-case contrast stays above 4.5:1
- Accent: neon mint #34d399, used only for primary actions and live indicators
- Always pair backdrop-filter with -webkit-backdrop-filter and an @supports
  fallback that raises fill opacity to 85%
- Glass goes on chrome (navs, cards, modals, overlays), never on tables or long-form text

/* via superdesign.dev/styles/glassmorphism */

Frequently asked questions

How do you make glassmorphism in CSS?
Four properties: a semi-transparent rgba background, backdrop-filter: blur(), a 1px translucent border, and a soft box-shadow. The full annotated recipe with fallbacks is above; the generator on this page writes it for you.
What is the difference between glassmorphism and Apple's Liquid Glass?
Glassmorphism is the broad frosted-pane style (static blur, transparency, border). Liquid Glass is Apple's 2025 design language from WWDC25 (iOS 26, macOS Tahoe) that adds refraction, specular highlights, and motion response, so the glass behaves like a physical material instead of a frosted sheet. On the web you can approximate it, but plain glassmorphism is what CSS gives you natively.
What is the difference between glassmorphism and neumorphism?
Neumorphism extrudes soft shapes from the same-colored background using paired light and dark shadows; glassmorphism layers translucent panes over a contrasting colorful backdrop. Neumorphism struggles with contrast by design; glassmorphism only fails when you put text over uncontrolled backdrops.
Is glassmorphism accessible?
It can be, if you treat contrast as worst-case: body text belongs on higher-opacity surfaces (4.5:1 minimum against the lightest and darkest thing that can scroll behind), keep the 1px border for edge definition, and honor prefers-reduced-transparency with a solid fill.
Does backdrop-filter work in all browsers?
Yes, it is Baseline: Chrome and Edge 76+, Firefox 103+, Safari 9+ with the -webkit- prefix (unprefixed since Safari 18). Ship the @supports fallback anyway so unsupported engines get a readable opaque panel.
How do I do glassmorphism in Tailwind?
bg-white/10 backdrop-blur-md backdrop-saturate-150 border border-white/25 rounded-2xl shadow-lg, with bg-white/80 supports-[backdrop-filter]:bg-white/10 as the fallback pair. Copy the full block above, or generate a whole component with our AI UI generator.

Browse every style in the design styles encyclopedia, or steal a ready-made starting point from the prompt library.