16 CSS Frosted Glass Effects

16 production-grade CSS frosted glass effects you can copy-paste into any project — spanning every high-intent glassmorphism use case: auth (login modal, login/signup form), UI chrome (sticky landing navbar with blur-on-scroll via IntersectionObserver, admin sidebar nav, media-player footer, modal popup, VisionOS-style floating app dock), forms (contact form UI), profile & commerce (profile info card, credit card payment UI, product display card), finance (crypto dashboard), and system widgets (Apple-style weather, glass music player, translucent calendar). Every demo uses backdrop-filter: blur() saturate(180%) for real glassmorphism on colorful animated backdrops, with a @supports fallback so browsers without support stay readable. Scoped under .fg-NN for no-collision pasting, prefers-reduced-motion guarded, framework-agnostic.

5 pure CSS11 light JSPublished

Related11 CSS Glassmorphic Sticky Navbars22 CSS Glassmorphism20 CSS Liquid Glass Effects

CSS Frosted Glass Login Modal — preview
01 / 16Pure CSS

CSS Frosted Glass Login Modal

A full-viewport login modal floating over a colorful photo backdrop with a real frosted-glass card — the canonical glassmorphism pattern Apple, Vercel, and Linear ship on their auth screens. Real form with email, password, remember-me toggle, primary CTA, and social sign-in buttons (Google, Apple, GitHub). Backdrop uses backdrop-filter: blur(24px) saturate(180%) with an inset highlight stroke and a subtle gradient border.

Published

CSS Frosted Glass Dashboard Overlay — preview
02 / 16Pure CSS

CSS Frosted Glass Dashboard Overlay

A dashboard with three app widgets (music player, weather, calendar events) beneath a frosted glass notification overlay panel — the pattern iOS 26, macOS 26, and modern desktop OSes use for system chrome. Each widget shows real content: current song with progress bar, weather forecast, upcoming meetings. The floating notification panel demonstrates glassmorphism as UI chrome rather than pure decoration.

Published

CSS Sticky Glassmorphism Navbar Blur on Scroll — preview
03 / 16CSS + JS

CSS Sticky Glassmorphism Navbar Blur on Scroll

A landing-page sticky navbar that starts fully transparent and morphs into a frosted glass bar as soon as the user scrolls past the hero — the pattern Stripe, Linear, Vercel, and every 2026 marketing site ships. Real hero content (kicker + display headline + subhead + CTA + feature strip) so scrolling actually happens; the navbar transitions its background from transparent to rgba(255,255,255,0.14) with a 24px backdrop-filter blur once a sentinel element scrolls out of view. Zero JS libraries — a single IntersectionObserver watches one hidden sentinel div.

Published

CSS Frosted Glass Sidebar Navigation Menu — preview
04 / 16Pure CSS

CSS Frosted Glass Sidebar Navigation Menu

An admin dashboard with a frosted glass sidebar navigation on a colorful stage. Sidebar contains logo, 6 nav items with icons and badges, and a user profile card at the bottom. Main content area shows placeholder dashboard cards (revenue KPI, active users chart, recent activity list) so the frosted sidebar has real UI content to blur behind it. Zero JS — pure CSS Grid + backdrop-filter.

Published

CSS Glass UI Footer Overlay — preview
05 / 16Pure CSS

CSS Glass UI Footer Overlay

A fixed frosted glass footer overlay in the media-player style, floating over a full-height article page — the pattern Apple Music, Spotify web, and YouTube Music ship for their persistent bottom controls. Real article content (heading, paragraphs, pull-quote) scrolls behind the footer so the backdrop-filter has genuine text and imagery to blur. Footer contains album art thumbnail, track title + artist, progress bar with elapsed/total time, prev/play/next controls, and a volume slider.

Published

Frosted Glass Login Form — preview
06 / 16CSS + JS

Frosted Glass Login Form

A premium glassmorphism login/signup card with four animated gradient orbs, a sliding tab pill, floating-label inputs, password strength meter, eye toggle, custom checkbox, and a shimmer CTA button — all rendered on an animated cyber-grid background.

Published

Glassmorphism Contact Form UI — preview
07 / 16CSS + JS

Glassmorphism Contact Form UI

A split-panel glassmorphism contact card with a teal-emerald info sidebar featuring animated availability status and rotating decorative rings, plus a glass form panel with floating labels, custom select, textarea character counter, and a multi-state submit button.

Published

Glassmorphism Profile Info Card — preview
08 / 16CSS + JS

Glassmorphism Profile Info Card

A social profile card with an animated gradient banner, overlapping avatar, live online indicator, stat grid, skill tags, and a Follow / Message action row — all composited on a three-orb animated background.

Published

Frosted Glass Credit Card Payment UI — preview
09 / 16CSS + JS

Frosted Glass Credit Card Payment UI

A hyper-realistic glass credit card with holographic shimmer, EMV chip, contactless icon, card number, and 3D CSS flip to reveal the signature strip back — plus a spend progress bar and freeze toggle below.

Published

Glassmorphic Product Display Card — preview
10 / 16CSS + JS

Glassmorphic Product Display Card

A premium e-commerce product card with a CSS-art headphone product illustration that floats on a gradient stage, a frosted glass bottom overlay, badge chips, star rating, quantity counter, wishlist heart, and multi-state add-to-cart button.

Published

Glassmorphism Crypto Finance Dashboard — preview
11 / 16CSS + JS

Glassmorphism Crypto Finance Dashboard

A wide-format crypto portfolio dashboard with an animated SVG sparkline chart, count-up balance animation, four holdings rows with allocation bars, period-tab switching, and three stat mini-cards — all on a deep dark background with teal ambient glow.

Published

Apple Style Weather Widget — preview
12 / 16Pure CSS

Apple Style Weather Widget

An iOS-inspired compact weather widget with a night-sky gradient, 20 individually timed twinkling CSS star spans, a floating cloud-and-sun icon, a large temperature display, H/L gradient temperature bar, and a 5-day forecast grid — zero JavaScript.

Published

Glass Music Player UI — preview
13 / 16CSS + JS

Glass Music Player UI

A floating glass music player that blurs a rich purple-coral "album art" gradient behind it. Features a rotating vinyl disc that spins when playing, animated progress bar, track cycling with skip buttons, like toggle, and shuffle/repeat controls.

Published

Translucent Calendar Widget — preview
14 / 16CSS + JS

Translucent Calendar Widget

A compact glass calendar with JS-generated date grid, month navigation, clickable date selection, today highlight ring, event dot indicators on specific dates, and a live upcoming-events chip list that updates per selected date.

Published

Frosted Glass Modal Popup — preview
15 / 16CSS + JS

Frosted Glass Modal Popup

An alert dialog that blurs and dims the entire background page content with a CSS backdrop-filter overlay. Features a glass modal with warning icon, destructive confirm / cancel button pair, success feedback state, ESC key support, and overlay-click dismissal.

Published

VisionOS Floating App Dock — preview
16 / 16CSS + JS

VisionOS Floating App Dock

A spatial-computing dock aesthetic inspired by Apple Vision Pro — a thick glass capsule housing six app icons with unique gradient tiles, hover scale-and-glow, bounce-on-click, and a floating glass app window that opens per-app with content and a close button.

Published

FAQ

Frequently asked questions

How do I create a frosted glass effect in CSS in 2026?
Three CSS properties do the entire job. First, on the glass element, set a semi-transparent background — usually background: rgba(255,255,255,0.12) for a light frosted tint. Second, apply backdrop-filter: blur(24px) saturate(180%) (with the -webkit-backdrop-filter prefix for iOS Safari long-tail support) so the browser samples the pixels behind the element and applies a 24-pixel Gaussian blur with a 180% saturation boost — the saturation is what makes the panel feel like real glass rather than plain frosted plastic. Third, add a subtle outer stroke and inset highlight — border: 1px solid rgba(255,255,255,0.22) for the edge plus box-shadow: inset 0 1px 0 rgba(255,255,255,0.28) for the top-edge light-catching bevel. The three combined create a convincing physical-glass surface. Both demos in this collection ship exactly this recipe, tuned for their respective backdrops.
Why does my backdrop-filter not work?
The most common cause: the element behind the glass is a solid opaque colour with no variation, so the blur has nothing to blur. Frosted glass only reads as frosted glass when there's colour behind it to distort — swap your solid background for a multi-stop linear-gradient or a real photo and the effect appears instantly. Second most common cause: an ancestor element has overflow: hidden combined with transform or filter, which creates a new stacking context that clips backdrop-filter's sampling area. Third: some Safari versions before 15.4 need the -webkit-backdrop-filter prefix — always ship both prefixed and unprefixed versions. Fourth: Firefox versions before 103 don't support backdrop-filter at all — Firefox 103+ ships it natively, older versions fall through to the @supports fallback.
What's the difference between frosted glass and glassmorphism?
They're closely related but not identical. **Frosted glass** is the technical CSS effect — the specific combination of backdrop-filter: blur() plus a semi-transparent background plus an inset highlight. **Glassmorphism** is the broader visual design language named by Michal Malewicz in 2020 that uses frosted glass as its signature material, paired with vibrant multi-colour backdrops (the colourful photo or gradient behind the glass), soft floating shadows to lift the panel off the background, subtle 1-pixel borders, and a general aesthetic of layered translucent surfaces. So: every glassmorphism design uses frosted glass, but not every frosted-glass effect is glassmorphism — you could put a frosted glass panel over a monochrome background and it would still be frosted glass, just not the full glassmorphism aesthetic. Demo 01 in this collection is closer to pure glassmorphism (colourful multi-radial backdrop, floating card); demo 02 uses frosted glass as functional UI chrome (notification overlay) which is more of a system-UI application of the technique.
How do I make frosted glass accessible?
Three rules to preserve readability without abandoning the effect. First, keep text contrast at WCAG AA levels — at least 4.5:1 for body copy against the effective panel colour. A frosted glass panel with white text needs a dark enough underlying region for the contrast to hold; if your backdrop is bright yellow, the text needs a stronger tint boost via background: rgba(0,0,0,0.30) on the glass. Second, always include a @supports not (backdrop-filter: blur(1px)) fallback with a solid semi-opaque background — browsers without support (Firefox < 103, older Safari) then get a readable dark or light panel instead of transparent text on a busy backdrop. Third, respect @media (prefers-reduced-motion: reduce) for any animated blur transitions — dynamic blur changes can trigger motion sickness in vestibular-sensitive users. Bonus rule: increase the tint alpha (say from 0.12 to 0.20) for users who report low-vision issues by adding a prefers-contrast: more media query.
Does backdrop-filter hurt performance?
Yes, but usually not enough to matter. backdrop-filter forces the browser to composite the element on its own GPU layer and re-sample the pixels behind it on every paint — a 24-pixel Gaussian blur is a real GPU operation, not a static image. Best practices to keep it fast: (1) Never nest frosted-glass elements inside other frosted-glass elements — the blur cost compounds and can drop frame rates to 20fps on lower-spec devices. (2) Avoid animating blur values (going from blur(0) to blur(24px) on hover) — the shader recompiles on every frame; use opacity or transform animations instead if you need motion. (3) For panels floating over video backgrounds, add transform: translateZ(0) or will-change: backdrop-filter to force GPU compositing — otherwise some browsers re-render the blur every video frame causing significant jank. (4) Prefer smaller blur values (16-24px) over dramatic ones (48-64px) when possible — the perceptual difference is small but the GPU cost scales with blur radius.
Can I use frosted glass with real photos or videos as the backdrop?
Yes — that's actually the ideal use case since real photos have the colour variety that makes glassmorphism sing. Replace the CSS gradient behind the glass panel with background: url('/hero.jpg') center/cover for a static image. For a video backdrop, use a real HTML video element as the sibling with the glass panel absolutely positioned above it. Two watchouts: (1) The photo should be visually busy enough that the blur produces varied colour through the glass — a solid-colour landscape photo blurs to a boring monochrome panel. Pick photos with 3+ distinct colour regions. (2) On video backdrops, browser GPU load is much higher because every video frame triggers a fresh blur recomputation. Test on an iPhone SE or a mid-range Android before shipping; if the frame rate drops, lower the blur radius or add will-change: backdrop-filter to force better GPU compositing. Demo 01 in this collection ships with a multi-radial-gradient backdrop that stands in for a real photo — swap it for your own image with one CSS line.
How does this compare to a plain background-color with low opacity?
Very different. background: rgba(255,255,255,0.2) gives you a translucent overlay — you see the underlying content through it, but nothing gets blurred. The result reads as a coloured film on top of the content, not as glass. backdrop-filter: blur() actively distorts the underlying pixels, which is what your eye interprets as looking through frosted glass. The difference is most obvious over busy backgrounds: with plain transparency, sharp edges and text underneath remain sharp and legible through the overlay (usually visually competing with the overlay's own content). With frosted glass, those edges soften and blur, letting the overlay's content dominate the visual hierarchy while the backdrop's colours still influence the mood. This is why iOS 26 uses frosted glass for notification centre chrome — the underlying app content is still visible enough to preserve context, but blurred enough that the notification stays the focal point.
How is this different from libraries like Tailwind Glass, Glassmorphism.com, or Framer's Glass component?
**Tailwind CSS** ships utility classes that map directly to the CSS properties this collection uses: backdrop-blur-xl = backdrop-filter: blur(24px), bg-white/10 = background: rgba(255,255,255,0.1), border border-white/20 = border: 1px solid rgba(255,255,255,0.2). Copy the structural decisions (blur strength, tint alpha, inset highlight) from these demos and translate to Tailwind utilities in seconds — nothing framework-specific to unlearn. **Glassmorphism.com** is a UI kit that packages pre-styled glass components; for a design system, that's fine, but you pay in bundle size and inherit their design decisions. **Framer's Glass component** is native to Framer Motion and includes animation primitives — if you're building in Framer, use it directly. For any framework where you want portable CSS, the five demos here ship raw so you can lift the technique and drop it into React, Vue, Svelte, Astro, or vanilla HTML with zero adaptation.
How do I build a sticky navbar that becomes frosted glass only on scroll?
The cleanest pattern uses an IntersectionObserver watching an invisible sentinel element at the top of the page — much better performance than a scroll event listener that fires dozens of times per second. Recipe: (1) Place an invisible 1-pixel-tall sentinel element as the first child of your page. (2) Give your position: sticky navbar a base state of background: transparent + backdrop-filter: none. (3) In JS, create an IntersectionObserver that watches the sentinel; on state change, add or remove .is-scrolled on the navbar. (4) Style .is-scrolled with background: rgba(255,255,255,0.14) + backdrop-filter: blur(24px) saturate(180%) + a subtle bottom border. Add transition: background .35s, backdrop-filter .35s to the base navbar so the state change animates smoothly. Total JS: about 8 lines. Zero scroll-event listeners, zero throttling, zero libraries. Demo 03 (CSS Sticky Glassmorphism Navbar Blur on Scroll) ships the full recipe. Falls back gracefully — browsers without IntersectionObserver simply never trigger the class and the navbar stays transparent (page still works).
How do I put a frosted glass sidebar on a dashboard?
The critical requirement: the sidebar needs colourful content BEHIND it in the stacking order, otherwise backdrop-filter has nothing to blur. Correct setup: give your dashboard's outer container a colourful background (gradient, photo, or a mesh of radial-gradients) — that's your visual base. Then use CSS Grid: display: grid; grid-template-columns: 260px 1fr to put the sidebar in a 260-pixel left column and the main content in the remaining space. The sidebar itself uses background: rgba(255,255,255,0.10) + backdrop-filter: blur(28px) saturate(180%) + a right-side border. The main content area on the right is rendered on top of the same colourful backdrop as a semi-opaque overlay (typically rgba(15,20,30,0.75) with its own solid card backgrounds inside), so both regions of the dashboard share the same visual foundation while only the sidebar shows glass. Demo 04 (CSS Frosted Glass Sidebar Navigation Menu) ships this pattern with 6 nav items, badges, and a user profile card at the bottom. On mobile the sidebar collapses to hidden — real production would trigger a hamburger drawer via a element.

Related collections

9 CSS 3D Designs preview

9 CSS 3D Designs

9 hand-coded CSS 3D scenes built with real transforms, perspective, and preserve-3d — iridescent flip cards, a midnight coverflow carousel, kinetic tilt pricing cards, a page-turn flipbook, a Bauhaus drag-cube navigator, a modular synth control panel, a luxury hover-flip product showcase, a 5×5 spinning cube matrix, and a 60-orb DNA double helix. No WebGL, no libraries.

22 CSS Brutalism preview

22 CSS Brutalism

22 hand-coded brutalist and neubrutalist CSS designs covering the full spectrum of the aesthetic — from the anti-design brutalism of 2014-2018 (raw system fonts, zero border radius, monochrome density, visible structure) through to the neubrutalism of 2021-present (bright pastel fills, thick black borders, hard offset shadows with zero blur, rounded blocks). The neubrutalist half ships SaaS pricing cards with sticker badges, a pastel admin dashboard, signup forms, rotated feature cards, an offset-shadow navbar, a playful button set, a native dialog modal, a testimonial wall, blog cards, chunky toggles, a landing hero, an image gallery, stats panels and a rounded footer. The brutalist half covers product grids, raw form controls, a monochrome data dashboard, a portfolio index, indie SaaS pricing, Windows 95 desktop chrome, editorial long-read and a streetwear catalog. Every design is scoped under a .brt-NN prefix for no-collision pasting, guards prefers-reduced-motion, and ports unchanged to React, Vue, Svelte, Astro, Next.js and Tailwind.

22 CSS Dark Mode UI preview

22 CSS Dark Mode UI

22 hand-coded CSS dark-mode UI patterns — prefers-color-scheme root strategy, data-theme attribute override, color-mix token system, light-dark() function, sidebar navigation, dashboard card grid, modal dialog, focus-ring contrast audit, three-state switcher, code editor surface, OLED true black, layered slate, aurora dim and more.

Search CodeFronts

Loading…