There's a point at which you start coding for the implementation, not the API. That's always dangerous.
While I understand the point -- hinting to the implementation -- is it really something we need, in the sense that is CSS the right place for this, rather than handling these situations better in the browser implementation?
I agree that it feels like a leaky abstraction but `will-change` has been around for well over a decade now and is restricted to the animation part of CSS and I can't think of any other feature of CSS that acts similarly
I proposed will-change a decade ago when I used to work on the rendering stack at Mozilla and also tuned frontends.
In some circumstances the heads up is totally required. For example if you're on a low spec mobile device with a relatively high resolution display, you're in a situation where you can't build a layer for an animation you didn't expect. And your memory footprint is so low so you don't want to be building layers unless you need them. If you don't have the heads up then you're going to drop the first few frames of the animation and the experience is going to be janky every time.
If you're in a situation where it's not required, then I would advice against using it FWIW. I still work on optimizing web frontends and I almost never use this property because I rarely need it.
I given up learning any new css, keeping up to date with "solutions" that would create more problems, more code, more confusion and difficult to maintain. I feel like it's becoming this humungous monster we don't want to talk about or admit it's there, for me personally it still has all the problems we complain about since who knows when anymore
> Now the boxes get filled with pixels, colors, borders, shadows and images. Think of someone coloring in the board game pieces. This also uses the CPU and some extra memory to store the painted bits.
Are you sure this is happening on the CPU? I thought the CPU-side only generates a list of paint commands but the GPU does the bulk of this job.
Is this true for text? Glyph rendering is complicated and I have a hard time imagining a high quality GPU renderer that can beat a CPU renderer due to this.
I've noticed the page is laggy when I'm scrolling past that animated will change button. Assuming it uses will-change it seems to have had the opposite effect for me.
10 comments
[ 2.7 ms ] story [ 31.0 ms ] threadWhile I understand the point -- hinting to the implementation -- is it really something we need, in the sense that is CSS the right place for this, rather than handling these situations better in the browser implementation?
In some circumstances the heads up is totally required. For example if you're on a low spec mobile device with a relatively high resolution display, you're in a situation where you can't build a layer for an animation you didn't expect. And your memory footprint is so low so you don't want to be building layers unless you need them. If you don't have the heads up then you're going to drop the first few frames of the animation and the experience is going to be janky every time.
If you're in a situation where it's not required, then I would advice against using it FWIW. I still work on optimizing web frontends and I almost never use this property because I rarely need it.
Are you sure this is happening on the CPU? I thought the CPU-side only generates a list of paint commands but the GPU does the bulk of this job.