website_designs

Liquid Glass Design Reference

Overview

Liquid Glass is a translucent, refractive design language introduced by Apple at WWDC 2025 on June 9, marking the company’s most significant interface overhaul in over a decade. The aesthetic applies across iOS 26, iPadOS 26, macOS Tahoe, watchOS 26, and tvOS 26, establishing a unified visual identity rooted in a single concept: a digital meta-material that behaves like real glass. Apple engineered Liquid Glass to dynamically bend and shape light, reflecting and refracting its surroundings while fluidly adapting to content, context, and user interaction. The result is an interface where controls, navigation bars, app icons, and widgets appear to be crafted from a living, responsive glass substance – one that produces specular highlights as users move through apps and shifts its translucency between light and dark environments.

Philosophically, Liquid Glass represents a deliberate pivot away from the ultra-flat visual language that had dominated Apple’s platforms since iOS 7 in 2013. That decade-long era of flat design stripped interfaces of texture and warmth; Liquid Glass reclaims depth and dimensionality without returning to the skeuomorphic metaphors of earlier years. It occupies a middle ground: surfaces feel tangible and physically present through refraction, shadow, and highlight, yet remain unmistakably digital. The three-layer composition – highlight, shadow, and illumination – creates a sense of material authenticity that flat design never achieved. Born from close collaboration between Apple’s design and engineering teams, the aesthetic uses real-time rendering to produce glass that genuinely reacts to its environment rather than merely simulating it.

For web designers, Liquid Glass translates into interfaces built on backdrop-filter blurs, layered translucent surfaces, refractive distortion effects, and subtle specular animations. The approach demands careful attention to content legibility – a challenge Apple itself addressed by offering “Clear” and “Tinted” modes for accessibility. On the web, the aesthetic works best with dark or richly colored backgrounds that give the glass material something meaningful to refract, combined with restrained typography and generous whitespace that let the material language speak. Every surface should feel like it exists within a physical light environment, responding to its context rather than sitting flatly upon it.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

Liquid Glass palettes are deliberately restrained and contextual. Because the glass material derives much of its visual character from what sits behind it, the base palette emphasizes neutral, cool-toned backgrounds and subtle accent colors that harmonize with the refractive effect. Tints are applied sparingly – the glass itself provides visual richness. The palette below provides a foundation suitable for web implementations, with colors inspired by Apple’s Liquid Glass system across light and dark modes.

Color Name Hex Role / Usage
Deep Obsidian #0A0A0F Darkest background, page base in dark mode
Slate Depth #1C1C1E Primary dark surface, card backdrop
Graphite Mist #2C2C2E Elevated surface, secondary dark panels
Silver Fog #F2F2F7 Light mode background, page base
Cloud White #FFFFFF Light mode surfaces, card backdrop
Glass Tint rgba(255,255,255,0.15) Default glass fill on dark backgrounds
Glass Tint Light rgba(120,120,128,0.12) Default glass fill on light backgrounds
Glass Border rgba(255,255,255,0.25) Subtle glass edge highlight on dark
Specular White rgba(255,255,255,0.6) Highlight shimmer, inner glow peak
System Blue #007AFF Primary accent, interactive elements, links
System Indigo #5856D6 Secondary accent, tags, supplementary actions
System Teal #5AC8FA Tertiary accent, informational states
System Green #34C759 Success states, positive indicators
Label Primary #000000 / #FFFFFF Primary text (adapts to mode)
Label Secondary rgba(60,60,67,0.6) / rgba(235,235,245,0.6) Secondary text (adapts to mode)

CSS Custom Properties

:root {
  /* Dark mode backgrounds */
  --lg-obsidian: #0a0a0f;
  --lg-slate: #1c1c1e;
  --lg-graphite: #2c2c2e;

  /* Light mode backgrounds */
  --lg-fog: #f2f2f7;
  --lg-white: #ffffff;

  /* Glass material */
  --lg-glass-bg: rgba(255, 255, 255, 0.15);
  --lg-glass-bg-light: rgba(120, 120, 128, 0.12);
  --lg-glass-border: rgba(255, 255, 255, 0.25);
  --lg-glass-border-light: rgba(0, 0, 0, 0.08);
  --lg-glass-specular: rgba(255, 255, 255, 0.6);
  --lg-glass-shadow: rgba(0, 0, 0, 0.25);
  --lg-glass-blur: 20px;
  --lg-glass-saturate: 180%;

  /* System accents */
  --lg-blue: #007aff;
  --lg-indigo: #5856d6;
  --lg-teal: #5ac8fa;
  --lg-green: #34c759;
  --lg-orange: #ff9500;
  --lg-red: #ff3b30;

  /* Text */
  --lg-text-primary: #ffffff;
  --lg-text-secondary: rgba(235, 235, 245, 0.6);
  --lg-text-tertiary: rgba(235, 235, 245, 0.3);

  /* Refraction gradient (for decorative lensing effects) */
  --lg-refraction: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.1) 0%,
    rgba(255, 255, 255, 0.05) 40%,
    rgba(255, 255, 255, 0.15) 60%,
    rgba(255, 255, 255, 0.05) 100%
  );

  /* Specular highlight gradient */
  --lg-specular-gradient: linear-gradient(
    165deg,
    rgba(255, 255, 255, 0.4) 0%,
    rgba(255, 255, 255, 0.0) 50%
  );
}

Typography

Typeface Philosophy

Liquid Glass typography is defined by clarity and quietness. The glass material provides visual richness, so type must remain clean, highly legible, and unobtrusive. Apple’s own implementation uses San Francisco, but for web contexts, system fonts and geometric sans-serifs with excellent screen rendering serve best. Weights lean toward medium and semibold for headings (ensuring readability over refractive backgrounds) with regular weight for body text. Letter-spacing is neutral to slightly tight on display sizes, and line-height is generous. The typography should feel like precision-etched labels on a glass surface – sharp, refined, and effortlessly readable.

Font Weight(s) Usage Link
Inter 400, 500, 600, 700 Body text, UI labels, all-purpose fonts.google.com/specimen/Inter
SF Pro Display (system) 400, 500, 600, 700 Headings (Apple system font fallback) System font
Plus Jakarta Sans 400, 500, 600, 700 Headings, display text fonts.google.com/specimen/Plus+Jakarta+Sans
Outfit 300, 400, 500, 600 Headings, clean modern feel fonts.google.com/specimen/Outfit
Geist 400, 500, 600, 700 Body text, technical UI vercel.com/font
DM Sans 400, 500, 600, 700 Body text, compact UI fonts.google.com/specimen/DM+Sans
Figtree 400, 500, 600 Body text, friendly and open fonts.google.com/specimen/Figtree
Sora 400, 500, 600, 700 Display headings, geometric precision fonts.google.com/specimen/Sora

Font Pairing Suggestions

Heading Body Vibe
Plus Jakarta Sans (600) Inter (400) Clean, modern, Apple-adjacent warmth
Outfit (600) DM Sans (400) Geometric precision, compact and sharp
Sora (600) Figtree (400) Bold display meets friendly readability
Inter (700) Inter (400) Unified system; minimal, engineering-forward
Plus Jakarta Sans (700) DM Sans (400) Warm headings, crisp technical body

CSS Example

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap');

body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--lg-text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--lg-text-primary);
}

.lg-display {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.08;
}

.lg-subhead {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 1.2rem;
  line-height: 1.6;
  color: var(--lg-text-secondary);
}

.lg-label {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--lg-text-tertiary);
}

.lg-caption {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 0.85rem;
  color: var(--lg-text-secondary);
}

Layout Principles


CSS / Design Techniques

Glass Card

The foundational Liquid Glass component. Combines backdrop blur, saturation boost, subtle border highlighting, and inset glow to create a convincing glass surface.

.lg-card {
  background: var(--lg-glass-bg);
  backdrop-filter: blur(var(--lg-glass-blur)) saturate(var(--lg-glass-saturate));
  -webkit-backdrop-filter: blur(var(--lg-glass-blur)) saturate(var(--lg-glass-saturate));
  border: 1px solid var(--lg-glass-border);
  border-radius: 20px;
  padding: 32px;
  position: relative;
  overflow: hidden;
  box-shadow:
    0 8px 32px var(--lg-glass-shadow),
    inset 0 1px 0 rgba(255, 255, 255, 0.15);
  transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

/* Specular highlight layer */
.lg-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: var(--lg-specular-gradient);
  border-radius: 20px 20px 0 0;
  pointer-events: none;
}

.lg-card:hover {
  background: rgba(255, 255, 255, 0.2);
  box-shadow:
    0 12px 40px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transform: translateY(-2px);
}

Glass Button

Buttons rendered as small glass surfaces with their own specular highlight. Tap and hover states intensify the glass effect rather than changing color.

.lg-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 28px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 980px; /* pill shape */
  color: var(--lg-text-primary);
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  text-decoration: none;
  position: relative;
  overflow: hidden;
  transition: all 0.25s ease;
  box-shadow:
    0 2px 12px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.lg-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.3) 0%,
    rgba(255, 255, 255, 0.0) 100%
  );
  border-radius: 980px 980px 0 0;
  pointer-events: none;
}

.lg-button:hover {
  background: rgba(255, 255, 255, 0.25);
  box-shadow:
    0 4px 20px rgba(0, 0, 0, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  transform: scale(1.02);
}

.lg-button:active {
  transform: scale(0.98);
  background: rgba(255, 255, 255, 0.12);
}

/* Accent variant */
.lg-button--accent {
  background: rgba(0, 122, 255, 0.6);
  backdrop-filter: blur(12px) saturate(180%);
  -webkit-backdrop-filter: blur(12px) saturate(180%);
  border-color: rgba(0, 122, 255, 0.4);
}

.lg-button--accent:hover {
  background: rgba(0, 122, 255, 0.75);
}

Glass Navigation Bar

A navigation bar that uses the Liquid Glass material, becoming more opaque as the user scrolls to maintain content legibility.

.lg-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 16px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transition: background 0.3s ease, padding 0.3s ease;
}

.lg-nav.scrolled {
  background: rgba(255, 255, 255, 0.15);
  padding: 10px 40px;
  border-bottom-color: rgba(255, 255, 255, 0.15);
}

.lg-nav__logo {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 1.25rem;
  color: var(--lg-text-primary);
  text-decoration: none;
  letter-spacing: -0.01em;
}

.lg-nav__links {
  display: flex;
  gap: 32px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.lg-nav__links a {
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.9rem;
  color: var(--lg-text-secondary);
  text-decoration: none;
  transition: color 0.2s ease;
  padding: 6px 12px;
  border-radius: 8px;
}

.lg-nav__links a:hover {
  color: var(--lg-text-primary);
  background: rgba(255, 255, 255, 0.08);
}

.lg-nav__cta {
  padding: 8px 20px;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 980px;
  color: var(--lg-text-primary);
  font-weight: 600;
  font-size: 0.85rem;
  text-decoration: none;
  transition: background 0.2s ease;
}

.lg-nav__cta:hover {
  background: rgba(255, 255, 255, 0.25);
}

Hero Section

A full-viewport hero that provides a rich visual backdrop for glass elements to refract. Uses a gradient mesh background that gives the glass material varied content to distort.

.lg-hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 120px 40px 80px;
  position: relative;
  overflow: hidden;
}

/* Gradient mesh background for refraction */
.lg-hero__bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 25% 20%, rgba(0, 122, 255, 0.35) 0%, transparent 50%),
    radial-gradient(ellipse at 75% 60%, rgba(88, 86, 214, 0.3) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 90%, rgba(90, 200, 250, 0.2) 0%, transparent 50%),
    radial-gradient(ellipse at 10% 80%, rgba(0, 122, 255, 0.15) 0%, transparent 40%);
  background-color: var(--lg-obsidian);
  animation: liquidShift 25s ease-in-out infinite alternate;
}

@keyframes liquidShift {
  0% { transform: scale(1) translate(0, 0); }
  33% { transform: scale(1.05) translate(-2%, 1%); }
  66% { transform: scale(1.02) translate(1%, -1%); }
  100% { transform: scale(1) translate(0, 0); }
}

.lg-hero__content {
  position: relative;
  z-index: 1;
  max-width: 720px;
}

.lg-hero__content h1 {
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.06;
  margin-bottom: 1.5rem;
  color: var(--lg-text-primary);
}

.lg-hero__content p {
  font-size: 1.2rem;
  line-height: 1.7;
  color: var(--lg-text-secondary);
  margin-bottom: 2.5rem;
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

Refraction Distortion Effect

A CSS-only technique that simulates the lensing/warping quality of real glass using SVG filters and backdrop manipulation.

/* SVG filter for refraction (place in HTML) */
/*
<svg style="position:absolute;width:0;height:0">
  <filter id="liquid-refraction">
    <feTurbulence type="fractalNoise" baseFrequency="0.015" numOctaves="3" result="noise" />
    <feDisplacementMap in="SourceGraphic" in2="noise" scale="8" xChannelSelector="R" yChannelSelector="G" />
  </filter>
</svg>
*/

.lg-refract {
  position: relative;
  overflow: hidden;
  border-radius: 24px;
}

.lg-refract::after {
  content: '';
  position: absolute;
  inset: 0;
  backdrop-filter: blur(1px);
  -webkit-backdrop-filter: blur(1px);
  filter: url(#liquid-refraction);
  opacity: 0.6;
  pointer-events: none;
  mix-blend-mode: overlay;
}

/* Simpler CSS-only refraction alternative */
.lg-refract-simple {
  background: var(--lg-glass-bg);
  backdrop-filter: blur(20px) saturate(200%) contrast(1.05);
  -webkit-backdrop-filter: blur(20px) saturate(200%) contrast(1.05);
  border: 1px solid var(--lg-glass-border);
  border-radius: 24px;
  position: relative;
  overflow: hidden;
}

.lg-refract-simple::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: conic-gradient(
    from 0deg at 50% 50%,
    rgba(255, 255, 255, 0.04) 0deg,
    rgba(255, 255, 255, 0.0) 60deg,
    rgba(255, 255, 255, 0.06) 120deg,
    rgba(255, 255, 255, 0.0) 180deg,
    rgba(255, 255, 255, 0.04) 240deg,
    rgba(255, 255, 255, 0.0) 300deg,
    rgba(255, 255, 255, 0.04) 360deg
  );
  animation: refractionRotate 20s linear infinite;
  pointer-events: none;
}

@keyframes refractionRotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

Specular Shimmer Animation

A highlight effect that simulates light moving across a glass surface as the user scrolls or hovers, adding the “living material” quality central to Liquid Glass.

.lg-shimmer {
  position: relative;
  overflow: hidden;
}

.lg-shimmer::after {
  content: '';
  position: absolute;
  top: -100%;
  left: -100%;
  width: 60%;
  height: 200%;
  background: linear-gradient(
    105deg,
    transparent 40%,
    rgba(255, 255, 255, 0.15) 45%,
    rgba(255, 255, 255, 0.3) 50%,
    rgba(255, 255, 255, 0.15) 55%,
    transparent 60%
  );
  transform: rotate(25deg);
  transition: left 0.8s ease, top 0.8s ease;
  pointer-events: none;
}

.lg-shimmer:hover::after {
  top: -30%;
  left: 120%;
}

/* Continuous ambient shimmer for hero elements */
@keyframes ambientShimmer {
  0% { transform: rotate(25deg) translateX(-200%); }
  100% { transform: rotate(25deg) translateX(200%); }
}

.lg-shimmer--ambient::after {
  animation: ambientShimmer 6s ease-in-out infinite;
  transition: none;
}

Glass Segmented Control

Apple’s Liquid Glass prominently features pill-shaped segmented controls with a sliding glass indicator. This pattern translates well to web tab navigation and toggle groups.

.lg-segment {
  display: inline-flex;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 980px;
  padding: 4px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  position: relative;
}

.lg-segment__item {
  padding: 8px 20px;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  color: var(--lg-text-secondary);
  background: none;
  border: none;
  border-radius: 980px;
  cursor: pointer;
  transition: color 0.25s ease;
  position: relative;
  z-index: 1;
}

.lg-segment__item:hover {
  color: var(--lg-text-primary);
}

.lg-segment__item.active {
  color: var(--lg-text-primary);
}

/* Sliding glass indicator */
.lg-segment__indicator {
  position: absolute;
  top: 4px;
  bottom: 4px;
  border-radius: 980px;
  background: rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1), width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
}

Design Do’s and Don’ts

Do’s

Don’ts


Aesthetic Relationship
Glassmorphism Direct predecessor and technical foundation; Liquid Glass extends glassmorphism with refraction, specular highlights, and adaptive material behavior
Frutiger Aero Shares glossy, nature-integrated transparency; Liquid Glass evolves this into a more refined, less decorative material language
Dark Aero Dark translucent surfaces overlap significantly; Liquid Glass adds refractive lensing and fluid motion to Dark Aero’s static panels
Neumorphism Both pursue tactile, 3D surface quality; neumorphism uses shadow extrusion while Liquid Glass uses transparency and light refraction
Flat Design Philosophical opposite; Liquid Glass is a deliberate departure from flat design’s rejection of depth, shadow, and material texture
Material Design Google’s elevation/shadow system parallels Liquid Glass’s layering model, but uses opaque surfaces rather than transparent ones
Skeuomorphism The original Apple design language Liquid Glass partially revives; both pursue physical realism, but Liquid Glass abstracts it to a pure material rather than mimicking real objects
Aurora Gradient Gradient mesh backgrounds pair naturally with Liquid Glass overlays; aurora provides the colorful substrate that glass refracts
Minimalism Liquid Glass requires minimalist UI structure to work – cluttered interfaces prevent the material from being perceived
Claymorphism Both add dimensionality to flat UI; claymorphism uses soft, matte, clay-like surfaces while Liquid Glass uses hard, transparent, light-catching ones

Quick-Start HTML Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Liquid Glass Page</title>
  <link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
  <style>
    :root {
      --lg-obsidian: #0a0a0f;
      --lg-slate: #1c1c1e;
      --lg-graphite: #2c2c2e;
      --lg-glass-bg: rgba(255, 255, 255, 0.12);
      --lg-glass-border: rgba(255, 255, 255, 0.2);
      --lg-glass-specular: rgba(255, 255, 255, 0.6);
      --lg-glass-shadow: rgba(0, 0, 0, 0.25);
      --lg-glass-blur: 20px;
      --lg-glass-saturate: 180%;
      --lg-blue: #007aff;
      --lg-indigo: #5856d6;
      --lg-teal: #5ac8fa;
      --lg-green: #34c759;
      --lg-text-primary: #ffffff;
      --lg-text-secondary: rgba(235, 235, 245, 0.6);
      --lg-text-tertiary: rgba(235, 235, 245, 0.3);
      --lg-specular-gradient: linear-gradient(
        165deg,
        rgba(255, 255, 255, 0.35) 0%,
        rgba(255, 255, 255, 0.0) 50%
      );
    }

    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      background: var(--lg-obsidian);
      color: var(--lg-text-secondary);
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
      font-weight: 400;
      line-height: 1.65;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    h1, h2, h3, h4 {
      font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
      font-weight: 600;
      color: var(--lg-text-primary);
      line-height: 1.2;
      letter-spacing: -0.02em;
    }

    /* ----------------------------------------
       SVG Filter for subtle refraction
    ---------------------------------------- */
    .svg-filters {
      position: absolute;
      width: 0;
      height: 0;
    }

    /* ----------------------------------------
       Navigation
    ---------------------------------------- */
    .nav {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 100;
      padding: 18px 40px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: rgba(255, 255, 255, 0.06);
      backdrop-filter: blur(24px) saturate(180%);
      -webkit-backdrop-filter: blur(24px) saturate(180%);
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
      transition: background 0.3s ease, padding 0.3s ease;
    }

    .nav.scrolled {
      background: rgba(255, 255, 255, 0.12);
      padding: 12px 40px;
    }

    .nav__logo {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-weight: 700;
      font-size: 1.25rem;
      color: var(--lg-text-primary);
      text-decoration: none;
    }

    .nav__links {
      display: flex;
      gap: 8px;
      list-style: none;
    }

    .nav__links a {
      font-family: 'Inter', sans-serif;
      font-weight: 500;
      font-size: 0.875rem;
      color: var(--lg-text-secondary);
      text-decoration: none;
      padding: 6px 14px;
      border-radius: 8px;
      transition: color 0.2s ease, background 0.2s ease;
    }

    .nav__links a:hover {
      color: var(--lg-text-primary);
      background: rgba(255, 255, 255, 0.08);
    }

    .nav__cta {
      padding: 8px 20px;
      background: rgba(255, 255, 255, 0.15);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border: 1px solid rgba(255, 255, 255, 0.2);
      border-radius: 980px;
      color: var(--lg-text-primary);
      font-family: 'Inter', sans-serif;
      font-weight: 600;
      font-size: 0.85rem;
      text-decoration: none;
      transition: background 0.2s ease;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
    }

    .nav__cta:hover {
      background: rgba(255, 255, 255, 0.25);
    }

    /* ----------------------------------------
       Hero Section
    ---------------------------------------- */
    .hero {
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 120px 40px 80px;
      position: relative;
      overflow: hidden;
    }

    .hero__bg {
      position: absolute;
      inset: 0;
      background:
        radial-gradient(ellipse at 30% 25%, rgba(0, 122, 255, 0.3) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 65%, rgba(88, 86, 214, 0.25) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 85%, rgba(90, 200, 250, 0.2) 0%, transparent 45%),
        radial-gradient(ellipse at 15% 70%, rgba(52, 199, 89, 0.12) 0%, transparent 40%);
      background-color: var(--lg-obsidian);
      animation: bgShift 25s ease-in-out infinite alternate;
    }

    @keyframes bgShift {
      0%   { transform: scale(1) translate(0, 0); }
      33%  { transform: scale(1.04) translate(-1.5%, 1%); }
      66%  { transform: scale(1.02) translate(1%, -0.5%); }
      100% { transform: scale(1) translate(0, 0); }
    }

    .hero__content {
      position: relative;
      z-index: 1;
      max-width: 700px;
    }

    .hero__content h1 {
      font-size: clamp(2.5rem, 6vw, 4.8rem);
      font-weight: 700;
      letter-spacing: -0.035em;
      line-height: 1.06;
      margin-bottom: 1.5rem;
    }

    .hero__content p {
      font-size: 1.15rem;
      line-height: 1.7;
      margin-bottom: 2.5rem;
      max-width: 540px;
      margin-left: auto;
      margin-right: auto;
    }

    /* ----------------------------------------
       Glass Button
    ---------------------------------------- */
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 14px 32px;
      background: rgba(255, 255, 255, 0.16);
      backdrop-filter: blur(12px) saturate(150%);
      -webkit-backdrop-filter: blur(12px) saturate(150%);
      border: 1px solid rgba(255, 255, 255, 0.28);
      border-radius: 980px;
      color: var(--lg-text-primary);
      font-family: 'Inter', sans-serif;
      font-weight: 600;
      font-size: 0.95rem;
      cursor: pointer;
      text-decoration: none;
      position: relative;
      overflow: hidden;
      transition: all 0.25s ease;
      box-shadow:
        0 2px 12px rgba(0, 0, 0, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.25);
    }

    .btn::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 50%;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.25) 0%, rgba(255, 255, 255, 0.0) 100%);
      border-radius: 980px 980px 0 0;
      pointer-events: none;
    }

    .btn:hover {
      background: rgba(255, 255, 255, 0.24);
      box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.35);
      transform: translateY(-1px);
    }

    .btn:active {
      transform: scale(0.98);
      background: rgba(255, 255, 255, 0.10);
    }

    .btn--accent {
      background: rgba(0, 122, 255, 0.55);
      border-color: rgba(0, 122, 255, 0.35);
    }

    .btn--accent:hover {
      background: rgba(0, 122, 255, 0.7);
    }

    .hero__buttons {
      display: flex;
      gap: 16px;
      justify-content: center;
      flex-wrap: wrap;
    }

    /* ----------------------------------------
       Features Section
    ---------------------------------------- */
    .features {
      padding: 100px 40px;
      max-width: 1160px;
      margin: 0 auto;
      position: relative;
      z-index: 1;
    }

    .features__header {
      text-align: center;
      margin-bottom: 64px;
    }

    .features__header h2 {
      font-size: clamp(1.8rem, 3vw, 2.5rem);
      margin-bottom: 1rem;
    }

    .features__header p {
      max-width: 520px;
      margin: 0 auto;
      font-size: 1.05rem;
    }

    .features__grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
      gap: 24px;
    }

    /* ----------------------------------------
       Glass Card
    ---------------------------------------- */
    .glass-card {
      background: var(--lg-glass-bg);
      backdrop-filter: blur(var(--lg-glass-blur)) saturate(var(--lg-glass-saturate));
      -webkit-backdrop-filter: blur(var(--lg-glass-blur)) saturate(var(--lg-glass-saturate));
      border: 1px solid var(--lg-glass-border);
      border-radius: 20px;
      padding: 36px;
      position: relative;
      overflow: hidden;
      box-shadow:
        0 8px 32px var(--lg-glass-shadow),
        inset 0 1px 0 rgba(255, 255, 255, 0.12);
      transition: background 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
    }

    .glass-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 45%;
      background: var(--lg-specular-gradient);
      border-radius: 20px 20px 0 0;
      pointer-events: none;
    }

    .glass-card:hover {
      background: rgba(255, 255, 255, 0.17);
      box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.18);
      transform: translateY(-3px);
    }

    .glass-card__icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 20px;
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.1);
    }

    .glass-card h3 {
      font-size: 1.15rem;
      margin-bottom: 0.75rem;
    }

    .glass-card p {
      font-size: 0.95rem;
      line-height: 1.65;
    }

    /* ----------------------------------------
       Showcase / Stats Section
    ---------------------------------------- */
    .showcase {
      padding: 100px 40px;
      max-width: 1160px;
      margin: 0 auto;
      position: relative;
      z-index: 1;
    }

    .showcase__header {
      text-align: center;
      margin-bottom: 64px;
    }

    .showcase__header h2 {
      font-size: clamp(1.8rem, 3vw, 2.5rem);
      margin-bottom: 1rem;
    }

    .stats-row {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 24px;
    }

    .stat-card {
      text-align: center;
      background: rgba(255, 255, 255, 0.07);
      backdrop-filter: blur(16px) saturate(160%);
      -webkit-backdrop-filter: blur(16px) saturate(160%);
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: 20px;
      padding: 40px 24px;
      position: relative;
      overflow: hidden;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
    }

    .stat-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 50%;
      background: linear-gradient(165deg, rgba(255,255,255,0.2) 0%, transparent 50%);
      pointer-events: none;
    }

    .stat-card .number {
      font-family: 'Plus Jakarta Sans', sans-serif;
      font-size: 2.5rem;
      font-weight: 700;
      color: var(--lg-text-primary);
      margin-bottom: 0.5rem;
      letter-spacing: -0.02em;
    }

    .stat-card .label {
      font-size: 0.85rem;
      color: var(--lg-text-tertiary);
      text-transform: uppercase;
      letter-spacing: 0.04em;
      font-weight: 500;
    }

    /* ----------------------------------------
       CTA Section
    ---------------------------------------- */
    .cta {
      text-align: center;
      padding: 100px 40px;
      position: relative;
      z-index: 1;
    }

    .cta__inner {
      background: rgba(255, 255, 255, 0.08);
      backdrop-filter: blur(24px) saturate(180%);
      -webkit-backdrop-filter: blur(24px) saturate(180%);
      border: 1px solid rgba(255, 255, 255, 0.15);
      border-radius: 28px;
      padding: 72px 48px;
      max-width: 800px;
      margin: 0 auto;
      position: relative;
      overflow: hidden;
      box-shadow:
        0 16px 48px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.15);
    }

    .cta__inner::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 40%;
      background: linear-gradient(165deg, rgba(255,255,255,0.25) 0%, transparent 50%);
      border-radius: 28px 28px 0 0;
      pointer-events: none;
    }

    .cta h2 {
      font-size: clamp(1.8rem, 3vw, 2.4rem);
      margin-bottom: 1rem;
    }

    .cta p {
      margin-bottom: 2rem;
      font-size: 1.05rem;
      max-width: 480px;
      margin-left: auto;
      margin-right: auto;
    }

    /* ----------------------------------------
       Footer
    ---------------------------------------- */
    footer {
      text-align: center;
      padding: 48px 40px;
      font-size: 0.85rem;
      color: var(--lg-text-tertiary);
      position: relative;
      z-index: 1;
      border-top: 1px solid rgba(255, 255, 255, 0.06);
    }

    footer a {
      color: var(--lg-text-secondary);
      text-decoration: none;
    }

    footer a:hover {
      color: var(--lg-text-primary);
    }

    /* ----------------------------------------
       Responsive
    ---------------------------------------- */
    @media (max-width: 768px) {
      .nav {
        padding: 14px 20px;
      }

      .nav.scrolled {
        padding: 10px 20px;
      }

      .nav__links {
        display: none;
      }

      .hero {
        min-height: 80vh;
        padding: 100px 24px 60px;
      }

      .hero__buttons {
        flex-direction: column;
        align-items: center;
      }

      .features, .showcase, .cta {
        padding: 60px 20px;
      }

      .features__grid {
        grid-template-columns: 1fr;
      }

      .stats-row {
        grid-template-columns: repeat(2, 1fr);
      }

      .cta__inner {
        padding: 48px 24px;
      }

      .glass-card {
        padding: 28px;
        backdrop-filter: blur(12px) saturate(160%);
        -webkit-backdrop-filter: blur(12px) saturate(160%);
      }
    }

    @media (max-width: 480px) {
      .stats-row {
        grid-template-columns: 1fr;
      }
    }

    /* ----------------------------------------
       Reduced motion preference
    ---------------------------------------- */
    @media (prefers-reduced-motion: reduce) {
      .hero__bg {
        animation: none;
      }

      .glass-card,
      .btn {
        transition: none;
      }
    }
  </style>
</head>
<body>

  <!-- SVG Filter for refraction effects -->
  <svg class="svg-filters" aria-hidden="true">
    <filter id="liquid-refraction">
      <feTurbulence type="fractalNoise" baseFrequency="0.015" numOctaves="3" result="noise" />
      <feDisplacementMap in="SourceGraphic" in2="noise" scale="6" xChannelSelector="R" yChannelSelector="G" />
    </filter>
  </svg>

  <!-- Gradient mesh background -->
  <div class="hero__bg" style="position:fixed;z-index:0;"></div>

  <!-- Navigation -->
  <nav class="nav" id="mainNav">
    <a href="#" class="nav__logo">LiquidGlass</a>
    <ul class="nav__links">
      <li><a href="#features">Features</a></li>
      <li><a href="#showcase">Showcase</a></li>
      <li><a href="#about">About</a></li>
    </ul>
    <a href="#cta" class="nav__cta">Get Started</a>
  </nav>

  <!-- Hero -->
  <section class="hero">
    <div class="hero__content">
      <h1>Interfaces that feel like light through glass</h1>
      <p>Experience a new material language where every surface reflects,
        refracts, and responds to its environment with fluid elegance.</p>
      <div class="hero__buttons">
        <a href="#features" class="btn btn--accent">Explore Features</a>
        <a href="#showcase" class="btn">View Showcase</a>
      </div>
    </div>
  </section>

  <!-- Features -->
  <section class="features" id="features">
    <div class="features__header">
      <h2>Crafted with light</h2>
      <p>Every element is a living surface that adapts to content,
        context, and interaction.</p>
    </div>
    <div class="features__grid">

      <div class="glass-card">
        <div class="glass-card__icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgba(0,122,255,0.9)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M12 2L2 7l10 5 10-5-10-5z"/>
            <path d="M2 17l10 5 10-5"/>
            <path d="M2 12l10 5 10-5"/>
          </svg>
        </div>
        <h3>Layered Depth</h3>
        <p>Glass surfaces stack in space, each layer refracting what lies beneath
          to create a natural sense of physical hierarchy.</p>
      </div>

      <div class="glass-card">
        <div class="glass-card__icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgba(88,86,214,0.9)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <circle cx="12" cy="12" r="5"/>
            <path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/>
          </svg>
        </div>
        <h3>Dynamic Light</h3>
        <p>Specular highlights shift as users interact, creating the sensation
          of a real material responding to a coherent light source.</p>
      </div>

      <div class="glass-card">
        <div class="glass-card__icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgba(90,200,250,0.9)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
          </svg>
        </div>
        <h3>Adaptive Clarity</h3>
        <p>Glass opacity and tint adjust automatically between light and dark contexts,
          ensuring readability without sacrificing the material effect.</p>
      </div>

      <div class="glass-card">
        <div class="glass-card__icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgba(52,199,89,0.9)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
            <path d="M3 9h18M9 21V9"/>
          </svg>
        </div>
        <h3>Fluid Motion</h3>
        <p>Transitions between states feel like physical transformations
          of the glass material -- morphing, not switching.</p>
      </div>

      <div class="glass-card">
        <div class="glass-card__icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgba(255,149,0,0.9)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/>
            <circle cx="12" cy="12" r="3"/>
          </svg>
        </div>
        <h3>Contextual Surfaces</h3>
        <p>Each glass panel samples its surroundings, making
          every instance visually unique to its placement on the page.</p>
      </div>

      <div class="glass-card">
        <div class="glass-card__icon">
          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="rgba(255,59,48,0.9)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
            <path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/>
            <line x1="4" y1="22" x2="4" y2="15"/>
          </svg>
        </div>
        <h3>Accessible by Design</h3>
        <p>Tinted glass modes increase opacity for enhanced legibility,
          ensuring the aesthetic never compromises usability.</p>
      </div>

    </div>
  </section>

  <!-- Showcase / Stats -->
  <section class="showcase" id="showcase">
    <div class="showcase__header">
      <h2>The material in numbers</h2>
      <p style="max-width:480px;margin:0 auto;font-size:1.05rem;">Liquid Glass is engineered for real-time rendering
        across every device in the ecosystem.</p>
    </div>
    <div class="stats-row">
      <div class="stat-card">
        <div class="number">3</div>
        <div class="label">Material Layers</div>
      </div>
      <div class="stat-card">
        <div class="number">60fps</div>
        <div class="label">Render Target</div>
      </div>
      <div class="stat-card">
        <div class="number">5</div>
        <div class="label">Platforms Unified</div>
      </div>
      <div class="stat-card">
        <div class="number">2025</div>
        <div class="label">Year Introduced</div>
      </div>
    </div>
  </section>

  <!-- CTA -->
  <section class="cta" id="cta">
    <div class="cta__inner">
      <h2>Start building with glass</h2>
      <p>Bring the depth, light, and fluidity of Liquid Glass
        to your next web project.</p>
      <a href="#" class="btn btn--accent">Get Started Free</a>
    </div>
  </section>

  <!-- Footer -->
  <footer>
    <p>Built with the Liquid Glass aesthetic. Translucent, refractive, alive.</p>
  </footer>

  <!-- Scroll behavior for nav -->
  <script>
    const nav = document.getElementById('mainNav');
    window.addEventListener('scroll', () => {
      if (window.scrollY > 40) {
        nav.classList.add('scrolled');
      } else {
        nav.classList.remove('scrolled');
      }
    });
  </script>

</body>
</html>

Implementation Tips