Lea Verou, PhD
banner
lea.verou.me
Lea Verou, PhD
@lea.verou.me
I make things for making things.

@[email protected] on Mastodon, @leaverou elsewhere
https://lea.verou.me
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...
Just a reminder that what seems obvious now may not seem obvious in two weeks. Be better than past Lea. 🫠
November 24, 2025 at 2:06 PM
When looking at results from web development surveys (e.g. #StateofHTML), what are you looking for when looking at the data? What conclusions are you trying to draw?
November 17, 2025 at 2:53 AM
That it should be a fundamental human right to live in whatever country you want, no questions asked.

The existence of borders causes far more suffering than any benefit they provide.
"my least woke opinion is---"

That's enough. We've had enough people indulging in the "thrill of a little conservatism", as a treat. Of considering reactionary thought to be a salacious and taboo in a world descending into reactionary mania.

Give me your MOST woke opinions. We're bringing it back.
November 14, 2025 at 1:20 PM
🔥 Live from TPAC:
Native routing coming to the web platform!

First step was URLPattern.
Next is matching routes in CSS¹
Then naming them and using these high-level names in HTML, CSS, JS.

Exciting stuff.

¹ See CSS WG issue 12594 (not linking to avoid too much noise)
November 14, 2025 at 2:39 AM
At the CSS WG meeting, we're discussing possibly natively doing fit-text in CSS. Send us your use cases (with screenshots/links)!

Do you ever need to fit multi-line text?
Do you ever need to fit non-text inline elements (e.g. icons)?
Do you adjust font-size, letter-spacing, or both?
November 13, 2025 at 1:20 AM
Reposted by Lea Verou, PhD
Have you ever avoided using an a11y feature because of issues involved with IDREFs being global, or encountered bugs due to this?
Please let us know! We have a meeting to discuss this next Wednesday (at TPAC) and would love to hear your stories, especially if they impacted users.

cc @lea.verou.me
November 7, 2025 at 12:20 PM
If it were possible to make elements focusable and give them ARIA roles via CSS, what would you use it for?
November 5, 2025 at 3:59 PM
🔥 Hot take:
I wonder if the Web’s Separation of Concerns should be about the Web platform *supporting* authors in being able to separate concerns in whatever way works for them, rather than forcing a specific type of separation dreamed up in the late 90s. 🤔

(*ducks to avoid objects thrown* 😅)
November 4, 2025 at 9:42 PM
TIL: Apparently, a web component’s lifecycle hooks are picked up by customElements.define() when it’s registered, and overwriting them after makes no difference whatsoever.

Demo: codepen.io/leaverou/pen...
Overwriting connectedCallback
...
codepen.io
November 3, 2025 at 8:44 PM
An underrated perk of AI autocomplete is that it offers a fascinating aggregated glimpse into real-world developer habits.

Sometimes it’s “oh, that’s clever! Better than what I was going to do!”
Other times “Why would anyone do that? And often enough for the model to learn it?!” (e.g. return await)
October 30, 2025 at 2:37 AM
The #JS utility you never knew you needed 😂
Create multiple Symbols in one go with this Proxy-based one liner.
October 29, 2025 at 6:07 AM
In today’s episode of Useless Info I just learned about #JS:

Turns out you cannot subclass Proxy (because it has no prototype).

Nice try Lea 🥲
October 29, 2025 at 1:07 AM
Reposted by Lea Verou, PhD
Your ability to eat should not depend on your productivity

Your ability to get healthcare should not depend on your productivity

Your ability to get housing should not depend on your productivity

Saying “be more productive!” To those who are struggling devalues human life.

It aids fascism.
October 28, 2025 at 4:29 AM
After years of internalizing that JS proxies are suuuper slow, I was surprised to find that in Chrome, they seem faster for running function side effects than simply wrapping a function: jsbenchmark.com#eyJjYXNlcyI6...
October 27, 2025 at 9:08 PM
#JS folks, what have you needed JS class mixins/traits for?

Especially interested in use cases outside of Web Components (I already have plenty around WC)
October 27, 2025 at 3:05 PM
When your context menu has this many options, it's time rethink your overall #UI
October 26, 2025 at 6:02 PM
Played a bit with the SpeechRecognition API 🤩

Here’s my playground: codepen.io/leaverou/pen...

Safari claims to support it, but I couldn't get it to recognize any non-English language. Can you?

Also, it seems *exceedingly* slow. Like 5-6 seconds from the moment you stop speaking.
SpeechRecognition demo
...
codepen.io
October 24, 2025 at 3:08 PM
Reposted by Lea Verou, PhD
i NEED to know the backstory here
October 23, 2025 at 7:21 AM
Having poured my soul into open source since 2008, I was nodding hard at @cory.laviska.com’s post.

“It's all take and no give. And I've already given more than enough for two lifetimes.”

There’s something especially irritating in watching companies profit off your work without contributing a dime.
October 22, 2025 at 3:24 PM
🌈 Color.js is growing so much, we had to automate updating the millions of npm downloads counter in its readme. Currently at 84M total / 3M per week. 🤩

Speaking of, v0.6.0-beta.1 is fresh out the oven! github.com/color-js/col...

Aiming for a stable next week if no issues 🤞🏼
Release v0.6.0 Beta 1 · color-js/color.js
We hear you, it’s been a while, and v0.6.0 is long overdue. Assuming any significant issues come up in this beta, we plan to release a stable v0.6.0 in 1-2 weeks or so. ⬇️ 84 million downloads! Col...
github.com
October 21, 2025 at 4:04 PM
Reposted by Lea Verou, PhD
Hey for those of you who don’t have kids, pls know that until recently, schools had stopped teaching phonics for decades.

The substitute method sold to districts everywhere was, & I’m not kidding: “Just look at the word & take a guess!”

OH WHY CAN’T THE CHILDREN READ? SURELY IT IS THEIR OWN FAULT!
October 18, 2025 at 1:03 AM
Reposted by Lea Verou, PhD
LLMs are the best for getting to 80% of what you want to achieve, and the absolute worst for getting to 100% of what you want to achieve.
"I have a decent fluency in LLMs, and they have utility, but the absurd degree of over-hype, the way they're being forced on everyone, and the insistence on ignoring the many valid critiques about them make it very difficult to focus on legitimate uses where they might add value."
October 17, 2025 at 9:33 AM
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...
October 16, 2025 at 7:53 PM
Scary.
I NEED to tell you the story of Tae Heung “William” Kim.

He's a graduate student at Texas A&M where he's working on a vaccine for Lyme disease.

He's a *legal permanent resident* of the United States.

And he's been in ICE detention for 12 days & counting, transferred Tuesday to South Texas.
October 16, 2025 at 2:00 PM
I’m in love with this flexible date selector by kiwi.com 😍

It really drives home the point that good #UX is about accommodating user intent, not conserving clicks.

Clicking on the more common "±N days" is faster, but is it always a better experience?

[1/2]
October 15, 2025 at 5:39 PM