--- name: "ui-style-aurora-mesh-gradient" description: "Provides the canonical Aurora / Mesh Gradient UI style (2018-present): ambient multi-color blurred gradient fields, pure-CSS radial mesh recipes, Stripe WebGL minigl canvas lineage, SVG feTurbulence grain anti-banding, contrast scrim architecture, and vestibular motion gating. Use when designing atmospheric hero backgrounds, landing page splash headers, or high-aesthetic devtool marketing experiences." --- # UI Style: Aurora / Mesh Gradient **Aurora / Mesh Gradient** (also known as **Aurora UI** or **Fluid Gradient Mesh**) is the atmospheric visual style of large, ethereal pools of luminous color blending seamlessly across a dark or light substrate. Drawing its lineage from Instagram's 2016 brand redesign, vector gradient meshes in Adobe Illustrator, and Stripe's iconic WebGL homepage canvas (2021), Aurora gradients create deep organic ambiance. In modern web architecture, Aurora UI combines multi-stop radial and conic gradients, hardware-accelerated SVG noise dither to eliminate color banding, and deliberate contrast scrims ensuring text accessibility. --- ## 🧭 When to Activate - Designing atmospheric landing page hero sections, product launch splash banners, or empty state illustrations. - Developer tool marketing, modern fintech portals, or AI platforms seeking ethereal, cutting-edge technical ambiance. - Implementing smooth, banding-free ambient background lighting behind frosted glass cards or sharp typography. --- ## πŸ•°οΈ Definition, Lineage, and Timeline - **Origins & Evolution:** Rooted in early-2000s vector mesh illustration and popularized globally by Instagram's multi-hue brand identity in 2016. - **The Stripe Breakthrough (2021):** Stripe unveiled their animated WebGL homepage gradient (reverse-engineered by Kevin Hufnagl as *minigl*): a 4-color interactive shader tilted at a ~12-degree skew with organic wave mathematics. - **Formalization as "Aurora UI":** Named by designer MichaΕ‚ Malewicz in 2021. Combined with Jimmy Chion's *"Grainy Gradients"* (CSS-Tricks, 2021), stochastic film noise was integrated to permanently eliminate 8-bit digital color banding. - **Distinctions from Neighboring Styles:** - Unlike **Gradient & Duotone** (rigid two-color tonal mapping across photography or high-contrast graphics), Aurora features 3 to 5 freely floating, blurred, organic color pools. - Unlike **Glassmorphism** (the frosted translucent lens sitting on top), Aurora is the atmospheric light source shining from beneath. - Unlike **Dark Mode First** (flat neutral graphite), Aurora injects vibrant chromatic energy into subterranean environments. - **Absolute Veto:** Unscrimmed body text floating directly over animated multi-hue gradient pools. Because gradient colors shift dynamically across high and low luminance values, text contrast must be checked at pool extrema; use a stable reading field where the actual composite fails. --- ## 🎨 Visual DNA & Subgenre Taxonomy ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ AURORA MESH GRADIENT MATRIX β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ 1. Stripe WebGL Fluid β”‚ 2. Dark Atmospheric Glow β”‚ 3. Grainy Pastel Aurora β”‚ β”‚ β€’ Indigo, violet, coral β”‚ β€’ Deep void canvas (#0A0A1Aβ”‚ β€’ Soft buttercream & lavenderβ”‚ β”‚ β€’ 12Β° dynamic skew angle β”‚ β€’ Isolated neon energy poolβ”‚ β€’ Stochastic Perlin dither β”‚ β”‚ β€’ Smooth continuous drift β”‚ β€’ High-contrast crisp text β”‚ β€’ Tactile analogue print feelβ”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` - **Palette Combinations:** - *Classic Stripe:* Electric indigo (`#3A3AFF`), radiant violet (`#7C3AED`), vivid magenta (`#FF61AB`), and sky cyan (`#6EC3F4`). - *Dark Cosmic:* Void black (`#070714`), solar amber (`#F59E0B`), and cyber emerald (`#10B981`). - **Surface Texture & Anti-Banding:** Stochastic SVG `feTurbulence` grain overlay (3% to 6% opacity) neutralizing 8-bit quantization banding artifacts across wide gamut displays. - **Spatial Lighting:** Broad radial gradients with feathering up to 80% of container dimensions, blurring edges into pure light fields. --- ## πŸ“ Lighting Physics, Specular Splits & Surfaces 1. **Pure-CSS Multi-Stop Radial Aurora Mesh:** - Layered radial gradients simulating complex WebGL shaders without runtime script overhead. ```css background-color: #070714; background-image: radial-gradient(at 15% 20%, rgba(58, 58, 255, 0.45) 0px, transparent 55%), radial-gradient(at 85% 30%, rgba(255, 97, 171, 0.35) 0px, transparent 50%), radial-gradient(at 50% 80%, rgba(110, 195, 244, 0.3) 0px, transparent 60%); ``` 2. **Stochastic Anti-Banding Grain Shield:** - Micro-noise filter preventing banding stepping. ```css background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E"); ``` 3. **Perceptual Interpolation (`in oklch`):** - sRGB interpolation between distant hues passes through a grey, muddy midpoint. Interpolating in OKLCH keeps lightness and chroma even; the hue keyword picks the arc: `shorter hue` (default) takes the short way round the wheel, `longer hue` sweeps the long way for a full spectral aurora. Supported in Chrome 111, Safari 16.2 and Firefox 127 (Baseline 2024); keep the sRGB declaration first as the fallback. ```css background-image: linear-gradient(120deg, #3A3AFF, #FF61AB); background-image: linear-gradient(120deg in oklch longer hue, #3A3AFF, #FF61AB); ``` - **Gamut caveat:** OKLCH midpoints at high chroma can fall outside sRGB (and outside P3) and are clipped by the browser, which shows up as flat or shifted bands on standard displays. Lower the chroma of the endpoints or add an explicit midpoint stop, and check on an sRGB monitor, not only a wide-gamut laptop. --- ## 🏷️ Complete Design Tokens ```css :root { /* Substrate Grounds */ --aurora-dark-bg: #070714; --aurora-surface-card: rgba(18, 20, 36, 0.7); --aurora-scrim: rgba(7, 7, 20, 0.65); /* Spectral Pool Hues */ --aurora-indigo: #3A3AFF; --aurora-violet: #7C3AED; --aurora-magenta: #FF61AB; --aurora-cyan: #6EC3F4; --aurora-amber: #F59E0B; /* Typography & Scrim Targets */ --aurora-text-primary: #FFFFFF; --aurora-text-secondary: #CBD5E1; --aurora-text-dim: #94A3B8; /* Borders & Optical Hairlines */ --aurora-border-glass: 1px solid rgba(255, 255, 255, 0.14); --aurora-border-radius: 18px; /* Typography */ --aurora-font-display: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif; --aurora-font-body: 'Inter', system-ui, sans-serif; } ``` --- ## πŸ”€ Typography & Lettering Architecture - **Primary Display Headings:** Ultra-clean geometric grotesques (*Plus Jakarta Sans*, *Inter*) rendered in pure optical white (`#FFFFFF`) with negative tracking (-0.03em) and bold weights. - **Body & Paragraphs:** High-contrast neutral sans (*Inter*) placed strictly over protected scrim surfaces or solid dark cards. - **The Text-Protection Rule:** Body copy must never float directly over un-scrimmed gradient convergence points. Choose a paired dark or light reading field; translucency alone does not guarantee contrast. --- ## πŸ–±οΈ Interaction Dynamics, Sound Cues & Motion - **Ambient Drift Physics:** Fluid color pools drift along continuous sinusoidal paths with 12-to-24-second loop durations. - **Scroll-Linked Chromatic Shifting:** Scrolling the viewport shifts the focus of radial gradient pools along the Y-axis. - **Cursor Repulsion / Attraction:** On pointer movement, nearest light pools displace slightly towards the cursor coordinates. - **Motion Gating (Vestibular Safety):** When `prefers-reduced-motion: reduce` is detected, all drift animations freeze immediately into a stable, static high-aesthetic composition. - **Animating Stops with `@property`:** Gradients are not interpolable as images, so animate registered custom properties instead (Baseline 2024-07-09: Chrome 85, Firefox 128, Safari 16.4). Prefer moving a small, pre-blurred pool layer with `transform` over animating stops when possible, because every stop change repaints the whole gradient. ```css @property --pool-a { syntax: ''; inherits: false; initial-value: #3A3AFF; } @property --pool-x { syntax: ''; inherits: false; initial-value: 20%; } .aurora-hero { background-image: radial-gradient(circle at var(--pool-x) 30%, var(--pool-a), transparent 50%); animation: aurora-drift 18s ease-in-out infinite alternate; } @keyframes aurora-drift { to { --pool-a: #7C3AED; --pool-x: 70%; } } .aurora-hero.is-paused { animation-play-state: paused; } @media (prefers-reduced-motion: reduce) { .aurora-hero { animation: none; } } ``` The 18 s loop runs longer than 5 seconds beside other content, so it ships with a visible, keyboard-operable pause toggle (WCAG 2.2.2): ```html ``` - **Blur Paint Cost:** A large `filter: blur()` on an animated full-viewport layer repaints the blurred area every frame and is a common cause of dropped frames on mobile. Prefer pre-blurred static images, soft radial gradients (already smooth, no filter needed), or a small canvas rendered at low resolution and scaled up with CSS. --- ## 🧩 Canonical Component Specifications ### 1. Aurora Hero Banner (`.aurora-hero`) A wide viewport header with animated radial light pools and anti-banding noise shield. ```html
Next-Gen Architecture

Ambient Intelligence Unleashed

Autonomous pair programming integrated with real-time multi-agent consensus.

``` ```css .aurora-hero { position: relative; background-color: var(--aurora-dark-bg); background-image: radial-gradient(circle at 20% 30%, rgba(58, 58, 255, 0.5) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(255, 97, 171, 0.4) 0%, transparent 45%), radial-gradient(circle at 50% 90%, rgba(110, 195, 244, 0.3) 0%, transparent 55%); padding: 6rem 2rem; overflow: hidden; } .aurora-noise { position: absolute; inset: 0; pointer-events: none; opacity: 0.05; background-image: url("data:image/svg+xml,..."); } .aurora-content { position: relative; max-width: 800px; padding: clamp(1rem, 3vw, 2rem); background: var(--aurora-scrim); color: var(--aurora-text-primary); margin: 0 auto; text-align: center; z-index: 1; } ``` ### 2. Scrimmed Glass Action Button (`.aurora-btn`) An action button glowing with underlying aurora light and protected by a dark semi-opaque core. ```css .aurora-btn { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: #FFFFFF; border: 1px solid rgba(255, 255, 255, 0.25); font-family: var(--aurora-font-display); font-weight: 600; padding: 0.75rem 1.8rem; border-radius: 9999px; cursor: pointer; box-shadow: 0 4px 20px rgba(58, 58, 255, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.4); transition: transform 0.15s ease, box-shadow 0.15s ease; } .aurora-btn:hover { background: rgba(255, 255, 255, 0.18); box-shadow: 0 6px 28px rgba(255, 97, 171, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.6); transform: translateY(-2px); } ``` ### 3. Aurora Scrim Card (`.aurora-card`) A dark frosted container with backdrop blur designed specifically to guarantee body text contrast over moving gradients. ### 4. Luminous Status Pill (`.aurora-pill`) A small pill badge reflecting gradient light along its translucent perimeter. --- ## β™Ώ Accessibility & Environmental Contrast (WCAG 2.2) - **The Dynamic Background Hazard (WCAG 1.4.3):** Multi-hue animated backgrounds continuously shift luminance values. White text on cyan pools can drop to 2.8:1, while black text on violet pools drops to 2.1:1. - **The Scrim Architecture:** All text blocks must reside inside containers with an explicit backdrop scrim (`background: rgba(7, 7, 20, 0.7); backdrop-filter: blur(16px)`), then verify the actual ink/composite pair at the brightest and darkest pool positions. A light variant may use opaque pale backing and dark ink while preserving the surrounding aurora. - **Vestibular Motion Safety:** Ambient gradient drift and scaling loops must immediately cease when `prefers-reduced-motion: reduce` is active (Coacus house policy, WCAG technique C39). - **Pause, Stop, Hide (WCAG 2.2.2, Level A):** A drift loop that starts automatically, runs longer than 5 seconds and sits alongside other content needs a visible pause control; hover-only pausing does not satisfy it. Alternatively stop the loop within 5 seconds. Detailed motion obligations live in [web accessibility](../../../engineering/practices/web-accessibility-wcag/SKILL.md). - **Performance Budget:** Full-viewport animated canvas or heavy SVG blur loops must pause when scrolled out of view via `IntersectionObserver` to preserve battery on mobile devices. --- ## βœ… When to Use / ❌ When to Avoid ### Ideal Use Cases - High-impact landing page hero sections, product announcement splash headers, and portfolio showcases. - Developer tool marketing, AI model demonstration consoles, and premium SaaS splash screens. - Ambient mood backgrounds behind high-contrast frosted glass card grids. ### Anti-Patterns & Prohibitions - Dense transactional spreadsheets, billing history tables, or long-form document reading. - Websites primarily accessed on budget mobile hardware with low GPU fill rate. - Overusing generic "purple/pink SaaS gradient" without deliberate brand-specific color curation. --- ## πŸ“š Authoritative Sources & Historical Artifacts - Kevin Hufnagl, *How To: Create the Stripe Website Gradient Effect*, Oct 2021. - Jimmy Chion, "Grainy Gradients", *CSS-Tricks*, Sep 2021. - MichaΕ‚ Malewicz, "Aurora UI β€” new visual trend for 2021", *Hype4 Academy*, 2021. - W3C, *Web Content Accessibility Guidelines 2.2* (1.4.3, 2.2.2, 2.3.3). - W3C, *CSS Color Module Level 4* (OKLCH, hue interpolation methods) and *CSS Properties and Values API Level 1* (`@property`). --- ## πŸ”— Cross-Skill Integration & Dialect Relations - **Sibling Optical Styles:** [ui-style-glassmorphism](../ui-style-glassmorphism/SKILL.md), [ui-style-gradient-duotone](../ui-style-gradient-duotone/SKILL.md), [ui-style-holographic-foil-iridescent](../ui-style-holographic-foil-iridescent/SKILL.md). - **Surface & Dark Mode Peers:** [ui-style-dark-mode-first](../ui-style-dark-mode-first/SKILL.md), [ui-style-grain-noise-texture](../ui-style-grain-noise-texture/SKILL.md), [ui-style-3d-immersive-webgl](../ui-style-3d-immersive-webgl/SKILL.md). - **Scroll-Linked Mechanics:** Driving pool position from scroll with CSS `scroll()` timelines or a single rAF fallback: [ui-scroll-driven-motion](../ui-scroll-driven-motion/SKILL.md). ## Appearance and Interaction Verification Apply a real reading scrim in the Aurora hero example, test worst pool positions and retain pastel aurora via a light opaque reading field when chosen rather than mandating a dark 60% scrim for every variant. ## Version Sources Moving release pins in this file were resolved 2026-10-20: - **Gradient interpolation `in oklch` / hue methods, Baseline 2024 (Chrome 111, Safari 16.2, Firefox 127)** (verified) β€” web-features 3.43.0 and MDN browser-compat-data 8.1.6 (2026-10-15) - **Registered custom properties `@property`, Baseline 2024-07-09 (Chrome 85, Firefox 128, Safari 16.4)** (verified) β€” web-features 3.43.0 - **WCAG 2.2, W3C Recommendation, 2024-12-12 edition** (verified) β€” https://www.w3.org/TR/WCAG22/