Static color principles don't fully transfer to animated contexts. When color changes over time, perceptual effects emerge that don't exist in static design.
**Color Interpolation: RGB vs. HSL vs. OKLCH**
The path your animation takes through color space determines what intermediate frames look like. RGB interpolation (the default in CSS) often produces muddy intermediates — animating from a vivid red to a vivid blue through RGB passes through a desaturated gray-purple middle. HSL interpolation preserves saturation better but has its own distortions near hue boundaries. OKLCH (now supported in modern CSS via `color-mix()`) produces perceptually uniform transitions where lightness and chroma are preserved consistently throughout the animation.
For UI animations that cross hue families (color changing from state to state), OKLCH produces the most visually coherent transitions.
**Duration and Perceptual Threshold**
Color changes below ~100ms are perceived as instantaneous — the previous color is essentially forgotten. Changes between 100-300ms are perceived as transition (the user sees the change happening). Changes above 300ms are 'animations' — the user has time to track the motion.
For state transitions (hover, active, checked), 150-200ms is the professional sweet spot. Fast enough to feel responsive, slow enough to confirm intentional change. Error states often use faster transitions (100ms) to feel urgent.
**Dark-to-Light Transitions**
Animating between light and dark color values has asymmetric perception: lightening appears faster than darkening at the same frame rate. If your button hover state transitions from dark to light, it may feel instantaneous; light to dark may feel sluggish. Compensate with slightly longer duration for light-to-dark transitions.
**Saturation Pulses**
A brief saturation increase (chroma pulse) draws more attention than a color change of equivalent magnitude. A badge that briefly pulses from muted to vivid on update is more noticeable than one that changes hue. Use this for attention-critical states (new notifications, urgent alerts) sparingly.
ColorArchive Notes
2029-03-03
Color in Motion: Animation and Transition Design
How color behaves during animation — transition timing, interpolation, and the perceptual effects of color change over time — and what it means for UI motion design.
Newer issue
Building Accessible Color Systems from Scratch
2029-02-17
This is currently the oldest public issue.
