
Performance is a critical part of modern web development. Even beautifully designed CSS can hurt user experience if rendering is slow. This lesson covers how to reduce reflows, repaints, and improve rendering speed with practical examples and explanations.
Why CSS Performance Matters
Browsers render pages in layers:
- DOM construction: parsing HTML
- Style calculation: matching selectors to elements
- Layout (reflow): calculating positions and sizes
- Paint: drawing pixels
- Composite: layering elements on screen
Info!
Layout, paint, and composite steps are the heaviest operations.
Minimizing them improves FPS and reduces jank.
Reflows (Layout Thrashing)
A reflow happens whenever the browser recalculates layout. Changing geometry, sizes, or positions triggers it.
Reflow Example (Expensive)
How it works:
Increasing width forces the browser to recalc layout for all items.
This triggers reflow and can reduce FPS if many elements exist.
Optimize Layout with Transform & Scale
Instead of changing width/height, use transform.
Transforms do not trigger layout recalculation, only the composite step.
Transform Optimization Example
How it works:
The element scales visually without recalculating layout.
This reduces reflows and improves FPS.
Minimize Paint Costs
Paint happens when pixels are drawn. Expensive paints occur with:
- Box shadows on large elements
- Border-radius + background gradients
- Opacity and filter effects
Paint Optimization Example
How it works:
Large, complex shadows force the browser to repaint more pixels.
Simpler shadows reduce paint overhead.
Use will-change Wisely
will-change hints the browser to promote elements to a layer,
reducing reflows/paints during animations.
Live will-change Example
How it works:
The browser preps a separate layer for this element,
reducing reflow/paint cost during interaction.
Layout Techniques to Reduce Reflows
- Use
flexandgridinstead of floats - Avoid changing geometry dynamically when possible
- Batch DOM changes using
documentFragmentorrequestAnimationFrame - Use transforms for animations
Rendering Summary
Rendering speed depends on minimizing:
- Reflows: layout recalculations
- Paints: drawing pixels
- Composites: layer merging
Tip!
Use performance tools (Chrome DevTools: Rendering & FPS meter) to identify bottlenecks.
Final Performance Rules
- Prefer transform & opacity for animations
- Minimize complex shadows, gradients, and filters
- Batch DOM changes
- Use will-change selectively
- Measure first, optimize second
Optimized CSS is invisible. Users feel only the speed.
Next lesson: CSS for Real Projects