Surprising things that CSS can animate (2020)
codersblock.com
codersblock.com
Most of the time, I'm just trying to read text and get an answer. Everything that is not text, formatting or typography gets in the way.
The best techniques can be applied in subtle ways to improve the overall presentation, without resorting to flashy showcases.
For example, how would you redesign the Python docs to feel like a beautifully typeset book does?
Do you know about Edward Tufte? His work doesn't revolves specifically about software, but his principles show how to present technical information in the clearest way, and his books [3] are beautiful examples on how to put a technical topic in book form with clean and beautiful layouts.
[1] https://www.interaction-design.org/literature/topics/gestalt...
[2] https://medium.com/bigcommerce-developer-blog/design-for-dev...
Well, many of those animations like opacity changes and border animations undoubtedly force the browser to re-layout and repaint the entire screen anyway. So on an actual page you'll se stutters, frame drops and ungodly CPU usage.
The only animations that will (barely) work is the `transform: translate` ones as they usually preserve the layout, and can be composited on the GPU.
Depends on the rendering engine. With Blink opacity, filter, and transform will skip past layout and paint after the first render.
Chrome Dev Summit 2018: https://youtu.be/AB9qSUhlxh8?t=754
Thanks! Didn't realize opacity was mostly fixed. In my head it as still very problematic because I know that opacity changes are very frowned upon by device manufacturers (like smart TVs). The reasons are actually mentioned in the video:
- they "don't trigger layout and can often bypass paint" (so paint isn't always bypassed)
- "compositing is not free. If you are on resource constrained devices, you really need to watch your composited layer count"
The vast majority of devices in the world out there are resource constrained: cheap smartphones are ubiquitous. But then there's also things like smart TVs etc. Hence my reaction to opacity changes :)
https://egbert.net/blog/index.html
(Sorry, web access is only HTTP/1.1-3, TLSv1.3 and ChaCha-only, no Chrome access possible)
This always felt hacky to me, "animating" visibility instead is a great idea. Thanks for sharing!
Meta-fashionistas add a deliberate Stilbruch (style-break)
I'll say more generally, that as much as I love all the cool things CSS is capable of these days, I think it's gotten to the point where now I want a CSS blocker the same way I block ads and JS by default, ideally something that lets me enable only a sane subset of CSS while blocking everything else.
I keep meaning to write one for firefox, but I really don't have the time, and I'm honestly hoping somebody comes along and beats me to it.
Some because of Codepen.io embeds? The ghost and pricing tables should work on their own.
Nothing on that page animates for me, although I'm sure that's my fault. CSS should work, but I've got a whole lot more than just JS disabled in this browser too. For what it's worth I tried to search the page for the words "ghost" "table" and "price" and couldn't find any mention.
I may write JS for a living but I do browse the internet without it
Edit: someone downvoted you again as I was writing this, heh. Is this even a healthy thing to do on a Saturday morning
I fully understand my configuration is unusual. I don't think it's unusual to expect that a certain number of people who don't use JS would be interested in a site that offers cool CSS tricks that don't require it, so it's strange to see those same people being unnecessarily excluded. To the writer's credit they have some source available in their article at least.
...
I understand CSS and I've done a fair bit of webdesign myself. CSS has evolved to the point where it can be used abusively. Hell, some consider it turing complete (https://github.com/brandondong/css-turing-machine).
CSS can be used for ads, fingerprinting, and exploits. There are perfectly valid reasons for wanting a little less functionality while still allowing for some basic styling.
I mean, it's cool that there are computer games written in pure CSS and other neat tricks, but sometimes you just want a browser to behave itself even in hostile spaces. If that makes my heavily locked down browser a "horse drawn cart" I'm happy to trot forward.