18 CSS Gradient UI
18 hand-coded CSS gradient UI demos: gradient buttons (6-hover lab), feature cards, 3 border techniques (double-bg / mask ring / conic orbit), badges + status pills, search + input, progress bars + conic rings, mesh/aurora background, glassmorphism, full-page pan, hero overlay, neon glow cards, gradient text clipping, hover-reveal text, link underlines, metallic chrome + gold text, radial cursor spotlight, conic avatar rings, scroll mask fade. 16 Pure CSS + 2 tiny JS snippets. WCAG 2.2 AA, uses modern @property, oklch(), color-mix(), conic-gradient(), background-clip: text with progressive-enhancement @supports fallbacks. Scoped under .cgu-NN for no-collision pasting, prefers-reduced-motion guarded, framework-agnostic.
Related16 CSS Gradient Animations22 CSS Gradient Buttons20 CSS Gradient Text Designs20 CSS Grain and Noise Textures20 Tailwind CSS Grain Texture
Premium design systemPartner: Untitled UI
Affiliate linkTaking this style from one component to a whole product?
You just browsed 18 gradient UI demos. Untitled UI is the Figma UI kit 380,000+ designers use, with 10,000+ components and variants in Pro, plus a matching React library on Tailwind CSS. Figma Pro is a one-time purchase from $129.
Untitled UI. We may earn a commission, at no extra cost to you.
02. CSS Gradient Card with Hover Lift (opens in a new tab)
03. CSS Gradient Border Card (opens in a new tab)
04. CSS Gradient Badges & Status Pills (opens in a new tab)
05. CSS Gradient Search Bar & Input (opens in a new tab)
06. CSS Gradient Progress & Loading Bar (opens in a new tab)
07. Animated Mesh / Aurora Gradient Background (opens in a new tab)
08. Glassmorphism Card over Gradient (opens in a new tab)
09. Full-Page Animated Linear Gradient (opens in a new tab)
10. Hero Banner Gradient Overlay (opens in a new tab)
11. Neon / Dark Mode Glow Card (opens in a new tab)
12. CSS Gradient Text / Clipping (opens in a new tab)
13. Gradient Text Hover Reveal / Slide (opens in a new tab)
14. Gradient Link Underline Animation (opens in a new tab)
15. Metallic / Gold / Chrome Gradient Text (opens in a new tab)
16. Radial Spotlight / Cursor-Tracking Card (opens in a new tab)
17. Conic Gradient Avatar Border / Ring (opens in a new tab)
18. Gradient Scroll Mask Fade (opens in a new tab)
Frequently asked questions
What is a CSS gradient UI system in 2026, and how does it differ from just using CSS gradients in isolation?
--tint, --acc, --from, --to) so you can rebrand the whole system by swapping 4 CSS variables. Contrast to isolated gradients — a single gradient button dropped into an otherwise flat UI reads as an accident (a designer just discovered linear-gradient()). A gradient UI system reads as intentional visual language. Google's own 2024-2026 Material Design 3 refresh moved this direction with tonal palettes derived from a single source color; Apple's iOS 26 refresh doubled down on gradient surface tiers; every AI-product launch in 2025-2026 (Perplexity, Claude, Gemini, Copilot X) shipped with gradient-first UI because gradients read premium and modern in a way flat design does not. This collection gives you the working ingredients: pick 3-6 patterns per surface, share the palette across them, and your product looks like it was designed by a team with a design system instead of a solo dev copy-pasting from CodePen.How do modern CSS gradients work with @property, oklch(), color-mix(), and conic-gradient() — the 2026 gradient toolkit?
@property (Baseline: Chrome 85 / Safari 16.4 / Firefox 128) — registers a custom property with a syntax + inherits + initial-value. Registered angle-typed properties (@property --angle { syntax: '<angle>'; initial-value: 0deg; inherits: false }) can be animated smoothly by transitions and @keyframes. Without @property, animating --angle: 0deg → 360deg just jump-swaps at the end because the browser sees them as strings. WITH @property, the browser interpolates through 1° per frame at 60fps on the compositor thread. This is what makes conic-gradient border spinning (Demo 03) and rotating avatar rings (Demo 17) possible in pure CSS. (2) oklch() (Baseline: Chrome 111 / Safari 15.4 / Firefox 113 — widely available since 2023) — perceptually-uniform color space where a fixed lightness increment (e.g. 0.15 → 0.10) gives you a visually-equal step across every hue. Sass mixins used to fake this via lighten($color, 15%) but sRGB isn't perceptual — the same 15% shift makes blue look black and yellow look identical. oklch() ships the fix at the browser level, zero preprocessing. (3) color-mix() (same Baseline) — declaratively blend two colors: color-mix(in oklch, var(--brand) 30%, var(--surface)). Replaces 6-tier hand-tuned tonal palettes with one derivation formula. (4) conic-gradient() (Baseline: Chrome 69 / Safari 12.1 / Firefox 83) — sweeps a gradient around a center point instead of along a line. Powers rotating spinners (Demo 06), border sweeps (Demo 03), donut charts, and Instagram-style story rings (Demo 17). Combined with @property --angle for the rotation, you replace ~40KB of GSAP + animation code with 6 lines of CSS. Every demo in this collection uses at least 2 of these 4 primitives — see each demo's howItWorks for the exact recipe.How do I make gradient text with background-clip: text — and what's the accessibility trap most tutorials miss?
.gradient-text { background: linear-gradient(90deg, var(--from), var(--to)); background-clip: text; -webkit-background-clip: text; color: transparent }. Demos 12, 13, 14, 15 in this collection show four variations (aurora text, hover-reveal flow, animated link underlines, metallic chrome text). The accessibility trap: color: transparent makes the text invisible if the gradient fails to paint. Failure modes: (a) old browsers that don't support background-clip: text — the text shows as transparent-on-background, effectively invisible; (b) high-contrast forced-colors mode (Windows High Contrast, macOS Increase Contrast) — some browsers force color to system colors but leave background-clip: text active, painting text in system color while the gradient goes invisible (which is actually what you want) but some engines get this backwards; (c) print stylesheets — printers often ignore background-clip and print transparent text as white. The fix: wrap the entire declaration in @supports (background-clip: text) or (-webkit-background-clip: text) { ... } so the fallback is the normal color: var(--ink) declaration outside the @supports block. Every gradient-text demo in this collection ships this @supports guard — audit any codebase you inherit for gradient text without it, because the invisible-text failure mode is a WCAG 1.4.3 (Contrast) violation that Axe DevTools flags and enterprise procurement audits reject. Additional accessibility non-negotiable: never use gradient text on interactive elements (buttons, links) as the SOLE indicator of a state (active, hover, focus) — colorblind users can't distinguish gradient hues. Pair gradient text state changes with an underline, weight shift, or box (Demo 14 does this by pairing gradient underlines with underline-thickness changes).Which CSS gradient patterns fit high-CPM verticals — SaaS marketing sites (Stripe/Vercel/Linear/Framer/Notion/Superhuman), Web3 wallets (MetaMask/OpenSea/Uniswap), AI products (Cursor/v0/ChatGPT/Claude), premium fintech (Ramp/Brex/Mercury)?
How does this collection differ from your existing CSS Gradient Animation, CSS Gradient Buttons, and CSS Gradient Text collections — why not just extend those?
seeAlso.What browser support do modern CSS gradient features have in 2026, and what's the correct progressive-enhancement fallback pattern?
background: #7c3aed; background: linear-gradient(90deg, oklch(0.55 0.19 300), oklch(0.72 0.16 280)). Browser reads both, uses the last it understands. @property — Baseline newly available since April 2024 (Chrome 85 / Safari 16.4 / Firefox 128). Without it, animated angles jump-cut instead of interpolating. Wrap in @supports (background: paint(worklet)) as a rough proxy — most fine-grained detection is via CSS.registerProperty feature test. Every demo in this collection using @property degrades to a static angle (still-visible) — no invisible-content failure mode. background-clip: text — Baseline since 2020 (with -webkit- prefix); Firefox 49+ / Chrome 3+ / Safari 4+ prefixed. Always paired with -webkit-background-clip: text for Safari. Wrap in @supports (background-clip: text) or (-webkit-background-clip: text) { ... } so the fallback (normal color: var(--ink)) is used when unsupported — this is the invisible-text-in-old-browsers fix. mask-image / mask-composite — universal via -webkit-mask-* prefix + Baseline unprefixed since 2023. Always pair prefixed + unprefixed. backdrop-filter (Demo 08 glassmorphism) — Baseline widely available since March 2024 (Chrome 76 / Safari 9 / Firefox 103). Wrap in @supports not (backdrop-filter: blur()) fallback with a semi-transparent background. Every demo in this collection ships the appropriate @supports guards — no post-migration accessibility surprises.Do these CSS gradient UI patterns work in React, Vue, Svelte, Astro, Next.js, Remix, Tailwind CSS, shadcn/ui — and what's the framework portability story?
class to className, drop the JSX into any server or client component (no 'use client' directive needed for the 16 Pure CSS demos because they have no interactivity that requires hydration; only Demo 06 progress ticker and Demo 16 cursor-tracking spotlight need it, each under 30 lines JS). Vue 3 / Nuxt 3: accepts as-is, class attribute is native. Svelte / SvelteKit: accepts as-is. Astro: drop into any .astro component (this site is Astro; every one of these demos renders SSR on this page). Remix / Solid.js / Qwik: accepts as-is. Tailwind CSS v3/v4: gradients port to bg-gradient-to-r from-purple-500 via-pink-500 to-orange-500 or arbitrary values bg-[linear-gradient(90deg,#7c3aed,#ec4899)]; conic-gradients require Tailwind v3 arbitrary values or v4 utility classes. For @property + oklch() + color-mix(), use Tailwind's arbitrary-value bracket syntax or drop into a @layer components block. Compared to framework-specific gradient libraries: Aceternity UI (React + Tailwind gradient components, subscription $299+/yr for premium) — this collection ships the same visual patterns MIT-licensed. Magic UI (React + Framer Motion + Tailwind, ~150KB of dependencies) — matches this collection's Demo 03 border-beam and Demo 16 spotlight in zero-dependency form. shadcn/ui — no dedicated gradient primitives; you build them yourself atop Radix + Tailwind. @radix-ui — no gradient utilities; primitives are unstyled. @mui/material Gradient — locked into MUI's ~85KB total bundle. Chakra UI Gradient — locked into Chakra's Emotion runtime ~50KB. Every gradient primitive in this collection is native CSS since Baseline 2023 — no library replicates what the browser doesn't already do. The .cgu-NN numeric-prefix scoping means all 18 gradient UI patterns coexist on the gallery page without a single class collision, and the same prefix guarantees you can drop any one demo into a codebase that already uses .gradient, .card, .btn, .hero, or .badge classes without renaming a single selector. MIT licensed, no attribution required, no signup.Related collections
20 CSS 3D Effects
20 hand-coded CSS 3D patterns covering the transform pipeline reference build, the perspective property versus the perspective function, perspective-origin as the camera position, why transform function order changes the result, backface-visibility on two sided elements, what silently flattens preserve-3d, building a cube from six faces, transform-origin in three dimensions, translateZ versus scale for depth, z-fighting on coplanar surfaces, rotate3d and the transform matrix, plus ring layouts, stacked z-planes, pointer tilt with parallax, a hinged page-turn flipbook, a drag-rotate cube navigator, an extruded synth panel, perspective floor geometry, nested 3D contexts, and helix distribution. 14 demos are pure CSS; 6 use vanilla JavaScript.
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.
20 CSS Claymorphism
20 hand-coded CSS claymorphism designs covering the three-layer shadow recipe that defines the style, inner highlight and inner shadow layering, the border radius scale that makes shapes read as puffy rather than merely rounded, claymorphism compared side by side with neumorphism, a clay and glassmorphism hybrid, single light-source discipline across a layout, depth tiers for visual hierarchy, a Tailwind implementation with both arbitrary values and theme tokens, squishy button press states, toggles and checkboxes, inset input wells and search bars, badge and pill systems, cards, popover-based modals, pricing tables, mobile tab bars, app icon grids, toast and alert bubbles, dark mode shadow recalibration, and the paint cost of animating shadows. 19 demos are pure CSS; 1 uses vanilla JavaScript.















