When creating animations and other GPU-heavy actions, it's important to understand the will-change
attribute.
Both CSS keyframes and the transition
property use GPU acceleration. Performance is increased by offloading calculations to the device's GPU. This is done by creating paint layers (parts of the page that are individually rendered) that are offloaded to the GPU to be calculated. The will-change
property tells the browser what will animate, allowing the browser to create smaller paint areas, thus increasing performance.
The will-change
property accepts a comma-separated list of properties to be animated. For example, if you plan on transforming an object and changing its opacity, you would specify:
.Example{
...
will-change: transform, opacity;
}
Note: Use will-change
sparingly. Setting will-change
for every element on a page can cause performance problems, as the browser may attempt to create paint layers for every element, significantly increasing the amount of processing done by the GPU.