Skip to content
Preptima
mediumScenarioConceptMidSenior

Someone added will-change: transform to every card to make scrolling smooth, and the page got slower on phones. What happened?

Each will-change: transform requests its own compositor layer, a raster in memory sized by area and device pixel ratio. Hundreds of idle layers exhaust a phone's GPU memory and add compositing work, and scrolling was never limited by the cards. Remove the blanket rule, find the real jank, promote only what animates.

4 min readUpdated 2026-10-09Target archetype: Big Tech, Product Startup

Answer

Short answer

The rule turned every card into its own compositor layer. will-change: transform is a request to promote an element ahead of time, and each promoted layer is a separate raster held in memory and composited every frame. On a phone with little GPU memory, hundreds of idle layers cost more than they save. Scrolling was not slow because of the cards in the first place.

Was this answer helpful?

Likely follow-ups

  • The layers view shows far more layers than there are will-change declarations. What promoted the extras?
  • Desktop Chrome with CPU throttling at 6x looks fine. Why is that not evidence the phone will be?
  • Scrolling still stutters after you remove the rule. Which main-thread work do you look for in the trace first?
  • When is a permanent will-change on a single element a defensible choice?

Related questions

Further reading

Related Topics