Animation composition: accumulate and add
Understanding animation-composition: how multiple keyframe animations combine with accumulate, add, and replace modes. Advanced keyframe control.
Articles on CSS animation: transitions, keyframes, easing, scroll-driven animation, and motion preferences. Each article is a deep dive with code examples, browser-support notes, and practical tips.
Understanding animation-composition: how multiple keyframe animations combine with accumulate, add, and replace modes. Advanced keyframe control.
Control animation playback direction with animation-direction. Learn when to use reverse, alternate, and alternate-reverse for smooth looping effects.
Understanding what happens before and after a CSS animation — how fill modes control the resting state.
Control animation repetition with animation-iteration-count. Learn when to use finite vs infinite loops and how to stop animations cleanly.
Control animation playback with animation-play-state. Pause, resume, and programmatically control keyframe animations without removing them.
CSS keyframe recipes for pulse, shake, and bounce — attention-grabbing animations that work without JavaScript.
Border radius, width, and color transitions explained. When to use outline vs box-shadow for focus states.
Create cascading animation sequences using CSS transition delays. Stagger multiple properties for polished, professional effects.
How color transitions differ across sRGB, display-p3, oklch, and oklab — and why oklch produces more perceptually uniform color interpolations.
Practical transition recipes for hover effects, focus states, and component state changes — the patterns you'll use every day.
Learn CSS transitions: property, duration, timing function, delay, which properties to transition, and performance best practices.
Design custom timing functions with cubic-bezier() — from bouncy springs to dramatic slow-ins.
How to diagnose stuttering transitions, dropped frames, and jank using Chrome DevTools Performance, Layers, and Rendering panels.
CSS easing functions: ease, cubic-bezier, steps, and linear() for natural-feeling animations.
Complete guide to element creation and removal animations in CSS: @starting-style, transition-behavior, and the overlay property for dialogs.
Using scroll and view timelines for UX, not just decoration.
How browsers use GPU layers to accelerate CSS transitions, when will-change helps, and when it hurts. A practical guide to compositor-thread animations.
Deep dive into @keyframes: syntax, fill-mode, iteration, direction, play-state, and performance tips for smooth CSS animations.
Not all CSS properties animate equally. Learn which trigger layout, paint, or composite — and which are safe for 60fps.
How to use prefers-reduced-motion: what it is, default-on vs. opt-in approaches, and which animations to remove for accessible motion design.
Build scroll-linked animations with animation-timeline, scroll() and view() — no JavaScript IntersectionObserver needed.
Box-shadow and drop-shadow transitions can cause paint-heavy animations. Learn when and how to animate shadows efficiently.
Why animating width and height causes layout thrashing, and how to use transform for smooth size changes without layout shifts.
How @starting-style lets you transition from display: none. Entry animations without JavaScript.
Transitions for discrete properties like display, visibility, and overlay are now possible with transition-behavior: allow-discrete.
The CSS transition shorthand has a specific order for duration and delay. Learn how to avoid the most common transition bug.
How to transition multiple CSS properties simultaneously — syntax, performance, and when to use transition: all vs. explicit lists.
Animate elements appearing from and disappearing to display: none using @starting-style and transition-behavior: allow-discrete. No JavaScript required.
Native page and element transitions — the View Transitions API.