Gradients have cycled through favor and out of it in UI design. Skeuomorphism brought heavy, multi-stop gradients; flat design abolished them; 'flat 2.0' and contemporary design brought them back in subtler forms. The current professional consensus is not 'use gradients' or 'avoid gradients' but 'understand what gradients do, then decide.'
**What gradients actually communicate**
A gradient communicates three things simultaneously: movement (the eye follows the gradient's direction), depth (a gradient from lighter to darker reads as a surface curving away from the viewer), and energy (high-saturation gradients feel dynamic and playful; muted gradients feel calm and sophisticated). When these communication effects align with the design intent, gradients add meaning. When they conflict — a 'calm, stable, trustworthy' brand using a vivid, energetic gradient — the gradient creates visual noise rather than meaning. Before adding a gradient, ask: what does this gradient communicate, and does that match the intent?
**The muddy middle problem**
The most common gradient failure is the muddy middle: a gradient that passes through an unpleasant, desaturated intermediate zone between two pure hues. A gradient from red to blue passing through HSL interpolation often desaturates to near-gray in the middle — the red-to-blue transition via the HSL hue wheel crosses through purple, then desaturated purple, in a way that often looks muddy and unintended. The solution is either to use perceptual color space interpolation (OKLCH or CIELAB) rather than HSL, or to add an intermediate stop that preserves saturation at the midpoint. Oklch gradients, now supported in CSS, produce the most perceptually uniform transitions across the hue spectrum.
**Functional gradient applications**
Gradients work functionally in several specific contexts. Surface depth: a very subtle top-to-bottom gradient on a card (95% white to 92% white, or 2% difference) reads as a curved surface without drawing attention to itself. This is most effective on large card surfaces where shadow alone looks flat. Text legibility overlay: a gradient from transparent to semi-opaque black at the bottom of a photographic area ensures text contrast without a hard edge. This is a ubiquitous functional pattern in media and content interfaces. Focus indication: a subtle gradient glow behind a focused element uses the eye-following property of gradients to draw attention to the active component without a hard outline.
**Gradient maintenance in design systems**
Gradients are harder to maintain in design systems than flat colors because they are defined by multiple color stops, not a single value. When brand colors change, gradient definitions must be updated to match — and this is easy to miss if gradients are defined locally in components rather than as tokens. Design systems should define gradient presets as named tokens: --gradient-hero-background, --gradient-card-surface, --gradient-text-overlay. This allows a single update to propagate to all gradient consumers when the palette changes. Gradients defined ad-hoc in components are a maintenance debt that grows over time.
ColorArchive Notes
2029-08-25
Gradients in UI Design: When Decoration Becomes Function
A framework for using gradients well — distinguishing decorative from functional gradient use, and the specific techniques that prevent common gradient failures like muddying and banding.
Newer issue
Semantic Color Tokens: The Naming Layer Between Raw Color and Component
2029-08-18
Older issue
Accessible Color in Data Tables: Contrast, State, and Row Encoding
2029-09-01
