Lea Verou, PhD

@lea.verou.me

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

I had to edit the description and restart the poll because apparently EVERYONE misunderstood what this is asking. These are the only transitions that are in scope for YES: ✅ System (dark) → dark ✅ System (light) → light NOT: ❌ System (dark) → light ❌ System (light) → dark ❌ light → * ❌ dark → *

Lea Verou, PhD@lea.verou.me · yesterday

📊 For websites that use a tri-state dark mode toggle (system, light, dark), have you EVER clicked on the override that matches your current system theme? E.g. going from System to Light on a light OS (which produces no visible change). Experimentation aside obvs. Poll at github.com/LeaVerou/blo...

📊 For websites that use a tri-state dark mode toggle (system, light, dark), have you EVER clicked on the override that matches your current system theme? E.g. going from System to Light on a light OS (which produces no visible change). Experimentation aside obvs. Poll at github.com/LeaVerou/blo...

BildBildBild

🚨 Attn #CSS folks, this will nerd snipe you 😅 It always bothered me how skeleton UIs are basically parallel versions of existing templates, swapped in and out. To me, this is fundamentally a style, and should be doable with a class. Images are easy, but I couldn't figure out a solution for text…

If declarations in conditionals were possible (@tc39.es proposal being discussed rn) what would you expect this to log? let foo = 1; if (let foo = 0) { console.log(foo) } else { console.log(foo) } Don’t think too hard. A) 1 B) 0 C) undefined D) It throws GitHub poll: github.com/LeaVerou/blo...

Declarations in conditionals: scoping · LeaVerou blog · Discussion #139

If declarations in conditionals were possible (@tc39 proposal being discussed right now!) what would you expect this to log? let foo = 1; if (let foo = 0) { console.log(foo) } else { console.log(fo...

github.com

Dear @github.com, I love your new feature where you suggest potential duplicates of the issue I’m filing. Long overdue! But can we just agree that if an issue # is already mentioned in the body of my new issue, I’m aware of its existence and have decided it is not, in fact, a duplicate? 🙏🏼 Kthx

🔥 Hot take: WebMCP fills a real, urgent, need. I’m not against it. It’s just …I can't help but notice that all WebMCP¹ tools are basically about making the app's user-facing data & actions explicit in a machine-readable way. The high-level use case is not new. [1/5] ¹ github.com/webmachinele...

GitHub - webmachinelearning/webmcp: 🤖 WebMCP

🤖 WebMCP. Contribute to webmachinelearning/webmcp development by creating an account on GitHub.

github.com

☄️ Today’s unpopular opinion 😅 What if we could set defaults for HTML attributes via CSS? ARIA, (pre)loading hints, tabindex, popover, inert, etc No new CAS language or text/cas MIME type. Just CSS properties, added as needed. Separate state, no cycles. What stops us? Theoretical purity. [1/4]

Lea Verou, PhD@lea.verou.me · 3w ago

At this point, I'd go for pragmatism and paving the cowpaths over theoretical purity: instead of a whole new lang, declare that CSS is no longer just for styling and add properties as use cases come up, then handle as separate state (like existing interactions with presentational HTML attributes).

This is exactly why we need something like @tabatkins.com's old CAS proposal. Imagine if you could do img, video { loading: lazy; } to change the defaults, and then just use loading="eager" on the actual elements to override.

Mateusz Krzeszowiak@krzksz.bsky.social · 3w ago

We enabled automatic addition of loading="lazy" for shopify.dev/docs/api/liq... 🚀 On pages using videos, we're seeing 75% reduction in downloaded files and 1.23MB/78% less data transferred! For now only in Chrome, but support in other browsers is coming.

Side note/rant 😅 You mentioned ponyfills briefly. I'd say they're even more detrimental to standards than it seems. Barely any are ever marked deprecated, so people keep them long term, unnecessarily wrapping the native impl. e.g. object-assign - 100M downloads/week, widely available 2017

“Without polyfills, fallbacks, and progressive enhancement, a single browser has undue power to hold back the Web — whether by choice or by circumstance.” “Developers being able to use web features before wide availability is a win for the Web as a whole.”

Lea Verou, PhD@lea.verou.me · 3w ago

🔥 New blog post: In defense of polyfills A highly influential spec editor expressed the opinion that polyfilling is harmful. I beg to differ. lea.verou.me/blog/2026/po...

"Would you sink millions of dollars of engineering time into something your competitors can render moot, by means of simply …doing nothing?" man, that'd be rough. Imagine what a world we would be in if browser vendors just did that all the time to add stop energy to the process. I wish they didn't.

Lea Verou, PhD@lea.verou.me · 3w ago

🔥 New blog post: In defense of polyfills A highly influential spec editor expressed the opinion that polyfilling is harmful. I beg to differ. lea.verou.me/blog/2026/po...

An excellent post on polyfills, talking through their impact, what issues people (mostly in the standards world) face. Chock full of quotable lines, way too many to include to do the post any justice! Highly recommend reading for a greater understanding of the role of polyfills on the web.

Lea Verou, PhD@lea.verou.me · 3w ago

🔥 New blog post: In defense of polyfills A highly influential spec editor expressed the opinion that polyfilling is harmful. I beg to differ. lea.verou.me/blog/2026/po...

Which current, active open source projects would you say have been most influential for today’s front-end development? Eg React, Vue, Svelte, Next, etc

Proud mom moment: Zoe, aged 7, just said to me and her friend "Color gamut is the colors that can be shown on a screen. Outside of gamut is a color that cannot be shown on a screen." Be still my heart 🥹🥹🥹

I proposed this feature in 2023. Safari implemented in 2024. Chrome just shipped it too. This means that it's now a matter of time before it’s available for >88% of web users. Timeline: lea.verou.me/specs/#conti... “But standards are so slow!”

CSS by T. Afif@css-only.dev · last mo.

They just released @developer.chrome.com V150, and it comes with border-area (among many other cool things). What's border-area? The magic value to create gradient borders easily. css-tip.com/border-gradi... Two lines of code and you are done! 🤩

Overview of the CSS code from the linked post

Just finished rewatching The Queen’s Gambit. Damn, what an absolute MASTERPIECE. Incredible cinematography, pacing, soundtrack, casting, acting, attention to detail. But my favorite part is how it rejects all modern storytelling tropes we’ve been trained on. 🧵👇

Bild