Profile banner
Profile picture

Lea Verou, PhD

@lea.verou.me

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

created April 24, 2023

13,497 followers 302 following 342 posts

view profile on Bluesky

Posts

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

We’ll close it and start processing the data when he wakes up tomorrow (it's now night in 🇯🇵) All questions are optional, so even partial responses are useful!

1/9/2025, 11:29:49 AM | 3 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Despite leading this year’s #StateOfHTML survey, I procrastinated in typical me fashion and submitted my response in the last few hours — I had to beg @sachagreif.com to leave it open for just a little longer 🫣 If you’re like me, here’s the link: survey.devographics.com/en-US/survey...

Features Score 465 points Of the 67 features mentioned in the survey, you have used 26 and heard of 41 more, which puts you in the top 1% of all respondents. Well done!
1/9/2025, 11:29:49 AM | 11 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

“…If you want to talk about possible risks to your supply chain, a single maintainer that’s grossly underpaid and overworked.” Yuuup. Baffling how so many companies depend on open source software without funding it, ever.

1/9/2025, 9:48:58 AM | 20 3 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

This is excellent. 👌🏼 “Open source, the thing that drives the world, the thing Harvard says has an economic value of $8.8 trillion. Most of it is one person. And I can promise you not one of those single person projects have the amount of resources they need” opensourcesecurity.io/2025/08-oss-...

1/9/2025, 9:48:58 AM | 49 15 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Yes, for Lit it would defy its very premise (which is very elegant!)

25/8/2025, 3:13:24 AM | 0 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Wow, TIL!

24/8/2025, 10:24:14 AM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

It seems a lot of the libraries that did that are old (e.g. Knockout). I wonder why. Impossible to get good performance without DOM ownership or lack of interest?

23/8/2025, 4:27:50 PM | 3 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

And yes, I could have just switched to using the framework to SSR everything and manage everything and maybe that wouldn't be a problem anymore. But that feels like a very blunt instrument. Often these things are tangential to what the rest of the website does.

23/8/2025, 4:14:50 PM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Sure, you could argue that their script shouldn't be making these assumptions. Maybe they should have used WC so they work with every framework. But the reality is, there are a lot of UI scripts and libraries out there that make assumptions don't play work with what current frameworks do.

23/8/2025, 4:13:39 PM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

The example that prompted the OP: I was switching an old website to Vue so its UI update code can be more manageable. It used Carbon ads, which broke, as their script was making assumptions about the DOM that were no longer true. I now have to use a Vue component for Carbon ads. This doesn't scale.

23/8/2025, 4:11:40 PM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

A lot of this depends on the assumption that a single entity has full control over everything. That's not always the case (and I'd argue isn't even desirable — capability for composability is a good thing).

23/8/2025, 4:09:17 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Yes, same for (p)react, Vue etc. The difference is it's on nodes *they* created, not nodes that were already there. So if anything else depends on nodes that were already there, you run into timing issues.

23/8/2025, 4:06:56 PM | 0 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

SSR tools *could* generate it too, but that's orthogonal, as long as the syntax is designed with hand-authoring DX in mind.

23/8/2025, 3:42:53 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Either or both, they have different tradeoffs, as you know :) The latter is more verbose, but can facilitate better loading experience, if crafted well. Vue missed the opportunity there because it complains when there is HTML content too. It sees is as a mistake, not a deliberate fallback.

23/8/2025, 3:42:26 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

E.g. mostly static content where a static site generator works fine, with a few dynamic islands that you want to be able to manage with good DX without affecting the architecture / build process of the whole site.

23/8/2025, 3:34:51 PM | 3 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Precisely that! Hydrate HTML that was already there (through Vue-like annotations about where data goes). JS would be the source of truth for the *data*. Important: I'm not suggesting this as the right approach for everything or even most things. Just that these cases exist and are not niche.

23/8/2025, 3:31:17 PM | 5 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Reuses nodes it created. Not nodes that were in the page already. No?

23/8/2025, 3:24:22 PM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Reactive templating and preserving DOM nodes (outside loops). I literally mentioned lit-html and React (Preact has the same issue AFAIK) in the 3rd post.

23/8/2025, 3:23:55 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Yes, these may not need a build step, but they don't fit the other requirements.

23/8/2025, 3:08:40 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

How? Vue Vapor seems to require a build step at all times.

23/8/2025, 3:06:04 PM | 0 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

bsky.app/profile/lea....

23/8/2025, 3:01:07 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

bsky.app/profile/lea....

23/8/2025, 3:00:49 PM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

bsky.app/profile/lea.... (also, ❤️ at the "apologies if I'm over explaining")

23/8/2025, 3:00:33 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Reading the other responses, I see where the confusion may be: By client-side only I was referring to not requiring a build step, nothing to do with routing. AFAIK SSR is part of the core philosophy of the project, which is counter to anything without a build step. Is that not the case?

23/8/2025, 2:58:48 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

If I have to build it myself, I have a pretty good idea of how I'd do it, but I'm *really* hoping to avoid that.

23/8/2025, 2:54:36 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

The first requirement was reactive templating :) If I have to manage UI imperatively, I can just use the DOM with a couple of my own abstractions just fine, I don't need jQuery. But managing UI updates imperatively is hell for anything nontrivial.

23/8/2025, 2:53:12 PM | 0 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Oh that's interesting, thanks! I'll take another look at Alpine.

23/8/2025, 2:51:24 PM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Last I checked @svelte.dev did not have a client-side version, I believe it goes against the philosophy of the tool completely.

23/8/2025, 1:53:13 PM | 3 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

[3/3] Reqs: - Reactive templating, not managing render() calls, so no React - Client-side, so no Svelte - Not recreate DOM when not needed (ok for loops), so it plays nicely with other stuff, so no lit-html - Data in JS, so no Alpine.js Is there anything? Am I alone in needing this?

23/8/2025, 1:48:06 PM | 8 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

[2/3] Petite Vue was close, but - is unmaintained - assumes this means I *also* want my data in the markup, which makes no sense - assumes this means I need tiny filesize, which is nice but orthogonal and makes it very underpowered Is there anything else in this area that is actively maintained?

23/8/2025, 1:48:06 PM | 6 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

I keep hitting this: How to add reactive templating to part of the page in a way that doesn't drive a steamroller through the DOM? @vuejs.org is my current go-to, but it recreates elements, which doesn't play nice with libraries not made for it and makes it fail badly when there's an error. [1/3]

23/8/2025, 1:48:06 PM | 12 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

🎉 Live from the CSS WG F2F: Resolved to adopt my proposal for a new @supports-query rule (name TBD) to test entire blocks of CSS and reuse feature queries! And to make me co-editor of the spec 😀 Interested in moving this forwards? Contact me for funding this work! github.com/w3c/csswg-dr...

20/8/2025, 9:55:54 AM | 18 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Yesterday I found myself asking ChatGPT for advice for how to structure my prompt to get better results from another LLM. Have I now reached peak AI or what 🫠

20/8/2025, 7:54:34 AM | 10 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

The former! The latter would not be an improvement lol

20/8/2025, 7:42:42 AM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

The idea was there’s no sensible default because you need different spaces for each use case. Eventually we realized most authors do not have the background to make informed choices and end up specifying things like `in srgb` for all sorts of bogus reasons 😅

19/8/2025, 6:44:13 PM | 6 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Polar spaces can produce unexpected results when interpolating because they can change the hue quite dramatically. Eg interpolating red and turquoise would give you a shade of green.

19/8/2025, 4:28:46 PM | 5 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

🎉 Live from the CSS WG F2F: RESOLVED: Make the color interpolation space of color-mix() to OKLab This means you'll no longer have to type color-mix(in oklab, color1, color2), just color-mix(color1, color2)

19/8/2025, 1:44:57 PM | 65 5 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

⚠️ Last chance to fill out #StateOfHTML 2025 and get browsers to pay attention to your web platform pain points! After popular demand, the survey closing date has been extended for a few more days so that returning OOO folks get a chance to fill it out too! survey.devographics.com/en-US/survey...

19/8/2025, 11:22:36 AM | 20 16 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Obviously.

15/8/2025, 8:35:00 PM | 0 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Thanks, that's exactly what I was hoping for! How would query() work? Like querySelector() on the element?

15/8/2025, 3:17:13 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

But what would you use it for? What types of relationships would you describe?

15/8/2025, 2:48:47 PM | 0 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

To add to @bram.us's question: What "queries" would you use it with? E.g. - first input descendant - closest name=foo sibling - input within the same etc Don't think just /ARIA but all attributes that take ids, e.g. list, commandfor, popovertarget + component attributes

15/8/2025, 2:23:29 PM | 16 2 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Thinking out loud, I wonder if you could productize it by framing it around something that hiring managers can use to evaluate candidates for CSS knowledge 🤔 Especially with more harder questions to distinguish surface level understanding from deeper understanding

14/8/2025, 9:23:00 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Thank you! Don’t let these nitpicks distract from the core point that it was really well done overall! 🙌🏼

14/8/2025, 9:06:07 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

This might be a nitpick but both 2 and 3 are correct, you *can* use @property to only define inheritance rules with no type information via syntax: “*”

image
13/8/2025, 11:57:53 PM | 4 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Re: inaccuracies the one that threw me the most was this one *Any* color function can perform color space conversion (with relative colors) including color()

image
13/8/2025, 11:50:28 PM | 6 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Flex main/cross axis is one of those things that just won’t stick in my head no matter what

13/8/2025, 11:47:43 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

In case you felt bad for not getting a perfect score on css-questions.com, I just got 55 / 60 and I’m in the CSS WG 😅 There were a couple inaccuracies but overall pretty well done. #cssquestions

13/8/2025, 10:42:53 PM | 40 2 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

🚨 #StateofHTML 2025 closing in a few days! If you’ve been planning to take it but putting it off, now’s the time: survey.devographics.com/en-US/survey...

12/8/2025, 6:00:01 PM | 6 5 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Just don’t ask it “in which episode does X happen?”, it will just hallucinate numbers and change them every time you tell it it was wrong 🤣

6/8/2025, 6:25:06 AM | 7 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Just found another use case for ChatGPT: Getting spoilers in a controlled way while avoiding spoilers I never asked for, as often happens with searches. My prompt was “Without giving me spoilers without my consent (besides what I’m asking you about) can you tell me [question]”. Worked like a charm!

6/8/2025, 6:25:06 AM | 12 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Dude? The writer is female.

6/8/2025, 6:20:47 AM | 4 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

I would, but there’s always user-generated content

2/8/2025, 2:52:00 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Oooh we should bring this to

2/8/2025, 2:01:28 AM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

That plus control over autoplay, looping, playback rate, etc etc. But also because they #gifsAreVideos and the media typism must end 😅 Videos in is practically sugar over right? Is it just about not having to branch or can it do anything doesn’t?

2/8/2025, 1:50:52 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

🔥Hot take: Animated gifs are basically muted videos and should be allowed in

2/8/2025, 1:36:47 AM | 45 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Another day, another weird print-related #ChromeBug I actually reported it this time: issues.chromium.org/issues/43489...

image
29/7/2025, 6:16:23 PM | 13 2 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

[2/2] I find that way more depressing compared to the slight inconvenience of folks trying to make a living doing what they love.

28/7/2025, 8:01:02 AM | 16 3 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

I also miss the free Web, and still give away a ton of my work. BUT if you idealize free labor yet understand that people need $$ to live, the obvious corollary is that they should relegate their passions to hobbies and do something else for survival. [1/2]

28/7/2025, 8:01:02 AM | 27 7 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

We recently got a Roomba for the first time. So far, its primary advantage has been getting our 6 year old to pick up her toys from the floor so that the robot doesn’t eat them. Natural consequences 😂

28/7/2025, 6:51:52 AM | 51 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Fair point. I was indeed thinking of lawyers, haha!

26/7/2025, 1:39:36 PM | 1 0 | View on Bluesky | view

Profile picture Mary Gillis (@marygillis.bsky.social) reposted

Please let the owner be the cat. Please let the owner be the cat.

25/7/2025, 4:02:38 PM | 467 71 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

In most of these jobs that’s balanced out by the fact that good professionals tend to charge a lot more per hour though.

26/7/2025, 3:24:06 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

The better the AI agent, the less you need to iterate, right? Ideally, it just gets it right from the first prompt. The more you iterate, the higher your usage. Still with me? So usage-based billing = the worse the AI software, the more it costs! In which other industry would this fly? 🤔

26/7/2025, 12:41:07 AM | 21 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

I get why some #AI companies need to resort to usage-based pricing, but from a user-centered perspective, it’s completely nonsensical. Let me explain. 🧵

26/7/2025, 12:41:07 AM | 9 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Lovely UX touch from ChatGPT: Holding down Cmd brings up a cheatsheet of keyboard shortcuts. Help that is there when it’s needed and out of the way when it’s not. Compare that to the common (anti)pattern where users must memorize a specific keyboard shortcut to bring this up (does anyone?).

image
26/7/2025, 12:06:32 AM | 29 2 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

🚀 Blog post with more background: lea.verou.me/blog/2025/st... 🙏🏼 Big thanks to @sachagreif.com @d12n.me @atopal.bsky.social @foolip.org!

22/7/2025, 3:21:32 PM | 0 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

🚀 The #StateOfHTML 2025 survey is now open! ➡️ Take it now: survey.devographics.com/en-US/survey... 💡 Spending time to fill these out is an investment into your craft, as browsers are using the results to make prioritization decisions. You don't have to do it in one sitting (or even one device).

22/7/2025, 3:21:32 PM | 34 24 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Couldn't have said it better myself! In fact, I suggested to @sachagreif.com that the Baseline icons shouldn't be links, for the same reason.

21/7/2025, 4:58:14 PM | 1 0 | View on Bluesky | view

Profile picture Amy Diehl, Ph.D. (@amydiehl.bsky.social) reposted

Study finds A.I. LLMs advise women to ask for lower salaries than men. When prompted w/ a user profile of same education, experience & job role, differing only by gender, ChatGPT advised the female applicant to request $280K salary; Male applicant=$400K. thenextweb.com/news/chatgpt...

20/7/2025, 8:15:59 PM | 1963 1043 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

:state() is a great mechanism for matching elements without having to tweak their DOM. What if we could expand it to… …regular elements? github.com/whatwg/html/... …selectors (as an alias)? github.com/w3c/csswg-dr...

18/7/2025, 8:57:20 PM | 20 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

If you could dynamically mirror HTML content in multiple places (e.g. like a for HTML), what would you use it for?

17/7/2025, 8:29:41 PM | 19 4 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Yup, that looks the closest. I just posted github.com/sindresorhus...

17/7/2025, 3:43:28 PM | 6 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Yup, it seems that’s the closest term indeed, but currently it's defined around JS. I just posted github.com/sindresorhus... ! Let’s see what @sindresorhus.com thinks!

17/7/2025, 3:43:07 PM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

It's not a polyfill¹; polyfills implement an API exactly as it will be and can be removed it later without any further code changes. It's not a shim², because it doesn't intercept anything. Do we really not have a term for this? ¹ en.wikipedia.org/wiki/Polyfil... ² en.wikipedia.org/wiki/Shim_(c...

17/7/2025, 2:42:00 PM | 4 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

What would you call a piece of code that implements a proposed web standard, but with different syntax? E.g. it may use… - CSS custom properties instead of the proposed properties - HTML custom elements instead of the proposed element names - a regular CSS class instead of a proposed pseudo-class

17/7/2025, 2:42:00 PM | 6 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

I added an option for that! * Client-side templating E.g. raw DOM manipulation, jQuery, JS templating libraries, etc.

16/7/2025, 3:41:44 AM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Ohh that's a great point, thanks! I’ll reword to make it clear that this means I *only* write HTML by hand.

16/7/2025, 12:03:49 AM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Quick pulse check as @sachagreif.com and I finalize #StateOfHTML: If you were presented with this question in a survey: a) Do you know which options to check or would you be confused? b) Are there any options you'd personally need to enter but are missing? (this post may self-destruct tomorrow…)

Which of these HTML reuse strategies do you use? Select all that apply. * 🚫 Nothing, I write good ol’ HTML out by hand * Server-side templating (e.g. PHP) * Build-time templating (e.g. static site generators) * Component-based JS frameworks (React, Vue, Svelte, etc) * Web Components (any) * Web Components helpers (Lit, Stencil, Polymer, etc) * Lightweight markup languages that compile to HTML (e.g. Markdown) * General HTML preprocessors (e.g. Pug, Haml)
15/7/2025, 11:43:42 PM | 10 0 | View on Bluesky | view

Profile picture Ryan Marino, MD (@ryanmarino.bsky.social) reposted

There’s a nonzero chance you will die from a cancer that could have been curable because people who couldn’t pass 7th grade biology and are scared of things like “mRNA” and “riboflavin” and “walkable cities” decided to make their ignorance everybody else’s problem

14/7/2025, 11:08:06 PM | 8596 3555 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

cc @sachagreif.com

15/7/2025, 12:45:42 AM | 0 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Surprised @bram.us's ident() didn’t make the cut. Personally, that’s the feature I’m looking forward to the most (+ mixins, functions, attr(), if())

14/7/2025, 11:54:55 PM | 4 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Just finished taking this year’s #StateOfCSS! It was quite funny that there were CSS features I had designed where I had to select "Heard of it" because *technically* I haven't used them yet. 😅 If you plan to take it, do it now, it's closing very soon: stateofcss.com/en-US

Features Score 535 points Of the 63 features mentioned in the survey, you have used 45 and heard of 17 more, which puts you in the top 1% of all respondents. Well done!
14/7/2025, 11:54:55 PM | 31 4 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Honestly, as a European, it’s baffling how lobbying is accepted as normal in the States. In any other country, that’s called corruption.

9/7/2025, 2:14:44 AM | 64 7 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Absolutely! This is a great idea and totally wasn’t on my radar!

8/7/2025, 8:55:02 PM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Browsers fund these surveys to see what matters to devs, so if others care too, it can really help. E.g. these surveys are the reason we have CSS Nesting, among other things. ⌛️ If you have ideas, time is of the essence, as the survey is launching later this month! lea.verou.me/blog/2025/de...

8/7/2025, 7:08:07 PM | 17 5 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

🔥 I have news! After a 1y hiatus, I’m once again leading this year’s #StateOfHTML survey, thanks to generous funding by Google. ❤️ 🙋🏽‍♀️ Is there is an HTML feature or Web API you're dying to see progress on? Suggest it and it could be included! [1/2] lea.verou.me/blog/2025/de...

8/7/2025, 7:08:07 PM | 90 24 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

[4/4] So perhaps our best bet today is: - sidenotes on large screens - popovers on other screens - regular ol' footnotes for print a11y can be tricky too. An HTML-native (longstanding HTML feature request) could help get this right w/out every dev having to figure it out from scratch.

2/7/2025, 6:18:38 PM | 10 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

[3/4] 3 is tough: how to add context w/out increasing prominence? Wrapping text could be a better anchor, but then we need a convention to distinguish from links. For large screens, sidenotes fix all three, but not all screens are large (+ implementation is nontrivial—even w/ anchor positioning).

2/7/2025, 6:18:38 PM | 3 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

[2/4] To recap the main UX issues: 1. Context switching 2. Small hit target 3. Contextless references Popovers do wonders for 1 and mitigate 3. Backlinks help, but don’t eliminate context switching as well as popovers. 2 is easy, just increase the hit testing area.

2/7/2025, 6:18:38 PM | 3 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me)

Jake points out some excellent UX issues with footnotes on the Web. But let's not throw the 👶 out with the 🛁! Footnotes add tertiary context for invested readers. All alternatives are way more prominent & harder to ignore. But they definitely need some UX love to work well on the Web. [1/4]

2/7/2025, 6:18:38 PM | 25 1 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reposted reply parent

TIL people want to use gene editing to eliminate ADHD and ASD. Gene editing ethics aside, what a shortsighted view. Historically, most people that push humanity forwards have been neurodivergent, esp ASD, ADHD, and frequently both. [1/2]

30/6/2025, 6:25:50 AM | 30 8 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

[2/2] Sure, ADHD/ASD can make many things hard (mainly because the world is not built for us — ADHD/ASD folks work GREAT together) but hyperfocus is such a superpower. I owe everything I have ever achieved to it. I have zero discipline. I’m just lucky enough to have “productive” special interests.

30/6/2025, 6:25:50 AM | 12 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

TIL people want to use gene editing to eliminate ADHD and ASD. Gene editing ethics aside, what a shortsighted view. Historically, most people that push humanity forwards have been neurodivergent, esp ASD, ADHD, and frequently both. [1/2]

30/6/2025, 6:25:50 AM | 30 8 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Heh, if it helps, that is typical ADHD. Add it to the list 🥲

30/6/2025, 5:14:26 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

I’m so sorry. I think without a list it would be very hard, I forget crucial ones. ADHD assessments should take that into account since poor memory is an ADHD hallmark. There may still be value in making a list for when you talk to your doctor. Start one now and add to it as you remember things.

29/6/2025, 8:07:53 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

…and another guilty pleasure

29/6/2025, 5:38:29 AM | 3 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

☺️ guilty pleasure

29/6/2025, 5:36:41 AM | 1 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Are Shroedinger’s wasps vegan?

29/6/2025, 5:35:37 AM | 2 0 | View on Bluesky | view

Profile picture Lea Verou, PhD (@lea.verou.me) reply parent

Happy birthday to you too!

29/6/2025, 5:26:39 AM | 1 0 | View on Bluesky | view