Lea Verou, PhD

Lea Verou, PhD

@lea.verou.me

I make things for making things. @leaverou@front-end.social on Mastodon, @leaverou elsewhere https://lea.verou.me

18K followers406 following928 posts

Pinned

Honored to be awarded “Pathfinder for Standards” by @openjsf.org at #jsconf 💛 Blurb made me blush ☺️: “Lea is a rare person who has strong academic credentials, has helped create rigorous industry standards, but always focuses on the needs of real world users […]” Rest at openjsf.org/blog/javascr...

openjsf.orgOpenJS Foundation Celebrates JavaScriptLandia Award Winners at JSConf 2025 | OpenJS FoundationCelebrating our community members with the fourth annual JavaScriptLandia awards
OpenJS Foundation@openjsf.org

Introducing 🥁🥁🥁 our JavaScriptLandia award recipients for this year! Beyond building new features, our recipients guide others, maintain essential systems, document the hard parts, and strengthen the community every step of the way. 💙 Read more about our honorees here: hubs.la/Q03NQvx10

I get it how these skeuomorphic Logic Pro UIs may help seasoned pros used to the hardware counterparts, but they are an *atrocious* UX for someone learning this stuff digital-first. 😕 I wonder when we’ll cross the threshold where most of its TAM is digital-first… (Yes, I’m having a fun weekend 😀)

Lea Verou, PhD reposted

Yesterday, the CSSWG accepted my proposal for mesh gradients and diffusion curve gradients! Want to make gradients like this natively in CSS? Well, we've started the work on it. It's coming! Here's the Explainer: github.com/w3c/csswg-dr...

@cassidoo.co Another one for the GitHub wishlist: hierarchical counts of +/- loc in the file list. Currently we get this for the whole PR and for individual files, but nothing in between. I'd love being able to see at a glance how much of the changes are tests and how much src.

💡 One underrated benefit of AI: it can operationalize (cognitive) empathy. Hear me out. Most people struggle to see things from someone else's perspective. So many biases in the way: confirmation bias, curse of knowledge, etc. [1/2]

[2/2] But at least for anything that exists as text, you can now just ask an agent to review it from the other side’s perspective, with a clean context window. It’s not perfect, but it can be enlightening. Works for so many things, from high-stakes conversations to contracts!

🔥 New blog post: The best way to use icons in Web UIs What if I told you, you could use CSS to *insert* and *tweak* icons without touching any HTML? And that you can manage them alongside your other design tokens? lea.verou.me/blog/2026/ic...

lea.verou.meThe best way to use icons in Web UIs • Lea VerouWhat if I told you, you could use CSS to insert and tweak icons without touching any HTML? And that it could be more flexible and maintainable than what you’ve been using?

Related: a way to post issue replies private to maintainers, so they can collaborate on a draft before making it public. The post date would be the publication one. This has come up a lot in cases where replies need deliberation/collaboration & maintainers have to collaborate elsewhere (e.g GDocs).

Lea Verou, PhD reposted

What if there was a Web Components conference?? @stuffbreaker.bsky.social and I are teaming up to get a little more serious about the idea of getting one together. We want to gather data on if there is interest in the community forms.gle/ZGqtYGj7V6q8... Please fill out and share to anyone!

forms.gleInterested in a Web Components conference? Let us know below!Web Components folks have been semi-seriously talking about organizing a conference for years, and with the ecosystem in a real moment of growth and popularity, it's about time! This form is our firs...

Lea Verou, PhD reposted

Modern Web Guidance v0.0.192 is out. With it your coding agent now knows how to: • build SMS one-time-code forms that autofill (WebOTP) • make dark mode toggles that follow the OS • honor the OS text size setting • reduce INP and lazy-load video/audio • feature-detect CSS at-rules with @supports

Lea Verou, PhD reposted

Link Parameters is the thing that gives you the ability to style embedded external SVGs. Something many have wanted to do for a long time! If you want to show your support of this, give these 2 issues a thumbs-up and comment: 💬 github.com/web-platform... 💬 github.com/web-platform...

Wow, I hadn't realized the CSS revert-rule keyword (a feature I originally proposed, albeit with a different syntax) is now Baseline, as of Sep 14! 😍 Only 2y4m from initial proposal to Baseline. 1y8m if you count from the WG resolution! Full timeline: lea.verou.me/specs/#rever...

Wow, I hadn't realized the CSS revert-rule keyword (a feature I originally proposed, albeit with a different syntax) is now Baseline, as of Sep 14! 😍 Only 2y4m from initial proposal to Baseline. 1y8m if you count from the WG resolution! Full timeline: lea.verou.me/specs/#rever...

This allows creating declarations with variables etc that disappear entirely when invalid instead of becoming IACVT, paving the way for real block-level conditionals.

This is exciting. 😍 CSS Mixins and Functions are features that will transform how CSS is written and shared and this makes them usable, today! I'd use these via `@import url(…) supports(not at-rule(@function));` otherwise you get no benefit in browsers that support functions/mixins natively.

romainmenke@romainmenke.bsky.social

postcss-preset-env now includes the mixins and custom functions #postcss plugins: preset-env.cssdb.org/blog/postcss... Turns out that it is also possible to implement one of the gamut mapping algorithms as a custom function!

This is so good. “Think about it this way: when the steam shovel was invented, digging didn’t stop. We just stopped using hand shovels and started building skyscrapers. The scale of what we could create exploded.” h/t @svgees.us

Lea Verou, PhD reposted

Entry and exit animations in a card-based UI can break if card or screen dimensions change. Newer CSS animation properties can help, but not all browsers support them. We gave a coding agent the same prompt twice: once unaided, once with Modern Web Guidance installed 🧵

🗼 Live from the @tc39.es plenary in Tokyo: Just resolved to advance github.com/tc39/proposa... to Stage 2.7 Soon, export * from "foo" will also re-export default. 🤯 Chuckling to myself thinking how this would have likely been a non-starter in a more compat risk-averse committee (e.g. WHATWG). 🙃

github.comGitHub - tc39/proposal-export-star-default: Proposal to include default export in `export * from 'module'`Proposal to include default export in `export * from 'module'` - tc39/proposal-export-star-default

My favorite part of being in Japan is the breakfast. ❤️ You can find good Japanese food outside Japan, but I’ve never seen Japanese breakfast outside Japan. Highlight: I tried Shiokara for the first time! And I liked it! 🤤 (I do tend to like slimy salty umami things, so not a big surprise, heh)

How you know you’re in Tokyo: you’re gently rocked by an earthquake in the middle of the night, followed by an announcement that the building is earthquake resistant and to “please continue to relax” in like 10 different languages, played 3x. As if my jetlag hadn’t woken me up sufficiently… 🫠

@cassidoo.co Hey, a while back you were asking about GitHub improvements. I wish I could exclude comment changes from PRs so I could get a sense of the extent of the change. Also, to temporarily exclude certain files or paths (e.g. docs, tests), for the same reason.

“These five paragraphs of Claude’s PR description could have been a sentence” is a the new “this meeting could have been an email”

Whoa, folks… I knew there was a need, but this is unprecedented! In only 15h after I posted it, gamut mapping shot up to be the 4th most upvoted interop proposal¹! 🎉 It's also the #1 trending, but that's kind of expected given the fact above 😂 ¹ As of right now, note this is still very fluid

Lea Verou, PhD@lea.verou.me

🎨 Ever wondered why oklch() is so odd? Why adjusting L doesn't produce good color ramps? And why TF is L=100% not white?! I just wrote a thorough explanation of why this happens¹: github.com/web-platform... 👍 Upvote if you want this fixed in browsers in 2027! ¹ Spoiler: it’s lack of gamut mapping

🎨 Ever wondered why oklch() is so odd? Why adjusting L doesn't produce good color ramps? And why TF is L=100% not white?! I just wrote a thorough explanation of why this happens¹: github.com/web-platform... 👍 Upvote if you want this fixed in browsers in 2027! ¹ Spoiler: it’s lack of gamut mapping

Okay, that’s it. I’ve seen enough, and I’m officially smitten. 😍 Am I a fool? Probably. I’m fully aware of all the reasons this is a terrible idea. But I still want it anyway 😅

So today at the hotel breakfast I squirted strawberry & chocolate sauce on my eggs & bacon thinking it was ketchup & BBQ sauce. 🤦🏽‍♀️ I ended up trying it anyway. It wasn’t bad! A metaphor for life? 😅

Lea Verou, PhD reposted

If you use AI less than I do, you just don’t get it. If you use AI more than I do, you’ve fucking lost it. The optimal amount of AI is exactly how much I currently use.

Lea Verou, PhD reposted

I've been using border-shape a ton for an Electron project I'm working on and it's just the best thing ever. Well worth a vote!

CSS by T. Afif@css-only.dev

Go vote for the border-shape feature. It should be part of Interop 2027! I have a lot of cool demos waiting for better browser support (that I will share anyway in 2026 😅) github.com/web-platform...

1. _redirects (Netlify, Cloudflare and a couple others) 2. Vercel uses vercel.json 3. Apache uses .htaccess 4. Firebase uses firebase.json And even then, the redirects still won’t work in localhost or GitHub Pages… No idea what WG this would live in…