YAY THEY FUCKING DID IT A PERFECT SPLASHDOWN FUCK YEAH SCIENCE
Posts by Lea Verou, PhD
Reminder
One of the biggest lies that media keeps repeating from right-wing commentators & politicians is “people don’t want to work anymore”. Actually, people *love* to work hard — if the work is meaningful and workers are respected. It’s a management skill issue. anildash.com/2026/04/06/p...
The thing that really makes people stupid is wanting to look smart more than they want to learn.
HTML in Canvas API is NUTS
I’m excited to share a new project from Adobe Spectrum Web Eng that tracks support for #CSS features within and across the shadow DOM.
The goal is to provide visibility into feature parity and outstanding issues. We hope you find it useful - open to contributions!
shadow-dom-css.adobe.com
It’s not a “talk” targeting devs in general, it was meant for the CSS WG. There are minutes, not a video though.
(next to a photo of comedian Ron Funches) “You said we had no money for teachers, but they can pay fucking ICE agents six figures?"
YES!
There are two schools of thought:
1. Encapsulation exists to prevent accidental clashes
2. Encapsulation is a super-strict boundary to prevent ALL access
1 helps, 2 usually causes more problems than it solves.
The reason shadow DOM has such poor UX is that it's designed with the 2nd paradigm.
Thank you all for voting! Thanks to your input we managed to reverse the resolution that forced all mixins to be scoped — sibling and ancestor rules will no longer be silently dropped from mixins. 🎉
My slides: webplatform.design/talks/mixins
Relevant WG resolution: github.com/w3c/csswg-dr...
This ended up being such a useful lil' utility I just published a package with it so others can enjoy hassle-free symbols by the truckload!
www.npmjs.com/package/get-...
How would you use it? What would you expect it to return?
So anchor() resolves differently on each property. How would you expect it to resolve there?
Have you needed to use anchor() in a CSS property where it didn't work? Send me your use cases!
I actually asked the group if we should enable this yesterday, but didn't want to jump the gun and just enable it myself so I posted it in one of my own repos. But yes, eventually these should live in csswg-drafts.
Yes, but also… github.com/LeaVerou/blo...
Spoiler: No, you can't get 100px, 200px, 300px with the current proposal, even if you don't type the --arg.
Thanks for writing that up, I was also thinking that most people ended up ignoring the type argument. 😞
Though the result does still show us something important: that everyone, no matter what, finds it weird if the sibling rule is dropped. That’s not an acceptable tradeoff for *anybody*.
This is the second option, please vote?
@mixin --foo(--arg <length>) { @result { &, & > h2, & + p { width: var(--arg); } } } div { @apply --foo(10em); font-size: 10px; } div > h2 { font-size: 20px; } div + p { font-size: 30px; }
🚨 Want mixins in CSS?
Help the CSS WG by telling us what feels natural to you!
Look at the code in the screenshot. What resulting widths would *you* find least surprising for each of div, div > h2, div + p?
Polls:
┣ Github: github.com/LeaVerou/blo...
┗ Mastodon: front-end.social/@leaverou/11...
If I may ask, what makes interest invokers important to you?
Do you mean interest invokers? Because :interest-target is a subfeature of that, which of course they wouldn't implement without the main feature (which they are opposed to, see github.com/WebKit/stand... )…
(Naturally, AI agents were involved in this…)
After 16 years of using git, it finally happened: I came across a use case for using git to track changes to the .git directory itself. 🥲
Kids are so weird sometimes.
Tonight, at dinner, I suddenly notice my 6 year old staring into the void, looking pensive.
Eventually, she exclaims “I am completely lost with where I am in my life!”.
Join the club, kiddo. Join the club. 🤣🤣🤣
I agree I could have worded it better. I explained what I meant in a bit more detail here: front-end.social/@leaverou/11...
It has yet to pull that sh*t with me 😅 but it really is fascinating how much worse it is with CSS compared to literally anything else.
Have you found a way to grant permissions for compound commands, without simply granting permissions for everything?
Claude: I can understand complex architectures in minutes and write highly maintainable code in a fraction of the time!
Also Claude: Um, how do I put this. I know you gave me permission to run these terminal commands, but I need you to approve this compound one manually because ampersands are hard.
I don’t have time to do as many conference talks these days but @cssday.nl always has a special place in my heart. It’s such a fantastic conference, both for the content and the community. If you can go, don’t miss it!