Andy Luhrs
aluhrs.com
Andy Luhrs
@aluhrs.com
Principal Product Manager working on Microsoft Edge working on stuff that web developers care about. He/Him.
Reposted by Andy Luhrs
We’re live!! My brand-new course, “Whimsical Animations”, is now available. 🥳🎉

whimsy.joshwcomeau.com

I’m so excited to share all of my animation tools and techniques with y’all. 😄
Whimsical Animations
Learn how to create charming interactions and delightful touches using the magic of CSS, JavaScript, SVG, and Canvas. I’m sharing all my tricks in this one!
whimsy.joshwcomeau.com
September 24, 2025 at 2:56 PM
Reposted by Andy Luhrs
If you've ever wondered if there's anything to the critique that some browsers "ship whatever they want" or "don't follow standandards", here's the long-form explanation of why those arguments fail on their own terms:

infrequently.org/2025/09/stan...
Web Standards and the Fall of the House of Iamus - Infrequently Noted
Working Groups do not invent the future, nor do they hand down revealed truths by divining entrails like prophets of the House of Iamus. In practice, they are diligent, thoughtful historians of…
infrequently.org
September 21, 2025 at 8:34 AM
Amazing reading list on learning modern CSS features.

https://nerdy.dev/cascading-secret-sauce
One List To Rule Them All · September 10, 2025
In the darkness may it bind us
nerdy.dev
September 12, 2025 at 6:13 PM
My father-in-law is a web developer. It is difficult to get his attention when he’s on magnificent websites because he is lost in wonder. We were looking at McMaster-Carr years ago and I asked him what it’d take to build it today. I will never forget his answer… “We can’t, we don’t know
September 2, 2025 at 11:32 PM
WebPerf PSA: Abstraction layers aren’t always good.

https://blog.meca.sh/3lxoty3shjc2z?auth_completed=true
September 2, 2025 at 5:02 PM
Book advent calendars for kids are the best.
August 31, 2025 at 10:44 PM
Another great list of examples to throw into the anti-JS pile. If you’re a web developer who hasn’t paid attention to CSS in a while, give this a read!

https://lyra.horse/blog/2025/08/you-dont-need-js/
August 30, 2025 at 1:12 AM
Was doing some memory analysis today and got surprised at toLowerChar taking hundreds of KB of memory, seems like a lot. I quickly realized Unicode is complicated and there are much bigger fish to fry.
August 26, 2025 at 4:21 AM
Testing posting to BlueSky and Mastodon from my personal site! (Via EchoFeed)
August 23, 2025 at 7:11 PM
PSA: A garbage collected language isn’t a blank check to generate garbage.
August 23, 2025 at 2:43 AM
Catching up on a backlog of RSS posts. If you missed Alex’s big list of links last month, there’s a ton of good stuff to bookmark here!

https://infrequently.org/links/
August 22, 2025 at 1:12 AM
Some good food-for-thought and examples of non-chatbot AI UIs…

https://www.geoffreylitt.com/2025/07/27/enough-ai-copilots-we-need-ai-huds.html
August 21, 2025 at 10:43 PM
If you have a JS library that might impact performance spend the time to read and implement this!

https://csswizardry.com/2025/07/the-extensibility-api/
Making Sense of the Performance Extensibility API – CSS Wizardry
Making sense—and use!—of the new Performance Extensibility API in Chrome DevTools.
csswizardry.com
August 21, 2025 at 3:43 AM
This is a REALLY impressive deep dive into making your own search engine. Wow.

https://blog.wilsonl.in/search-engine/
August 17, 2025 at 3:52 PM
Top vibe-coding prompt - “This should be possible without JS when using modern CSS features right?”
July 11, 2025 at 6:28 PM
Pretty elaborate workflow, but always interesting to see what’s working well for people with coding agents.

https://john-rush.com/posts/ai-20250701.html
Building a Personal AI Factory (July 2025 snapshot)
Multiple parallel Claude-Code sessions power a self-improving AI factory where agents write, review, and refine code.
john-rush.com
July 3, 2025 at 10:54 PM
Another performance area we’re looking at is giving devs the ability to measure smoothness of animations. Still early thinking and a lot of different directions - would love to hear if anyone has use-ca... https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/AnimationSmoothness/explainer.md
MSEdgeExplainers/AnimationSmoothness/explainer.md at main · MicrosoftEdge/MSEdgeExplainers
Home for explainer documents originated by the Microsoft Edge team - MicrosoftEdge/MSEdgeExplainers
github.com
May 23, 2025 at 3:03 AM
Our team is taking a look at a long-standing gap in CSS to style browser tooltips! We aren’t sure when we’ll be able to do the work to implement this yet, but I’m going to be iterating on open issues a... https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/CSSTooltipPseudo/explainer.md
MSEdgeExplainers/CSSTooltipPseudo/explainer.md at main ?? MicrosoftEdge/MSEdgeExplainers
Home for explainer documents originated by the Microsoft Edge team - MicrosoftEdge/MSEdgeExplainers
github.com
May 23, 2025 at 2:49 AM
I've been doing a bit of animation benchmarking and perf work, so I pulled together a quick extension to inject main thread tasks onto a page to help simulate jank.

https://github.com/aluhrs13/JankExt
May 16, 2025 at 7:37 PM
Reposted by Andy Luhrs
I know of a handful of accessibility specialists who were impacted by yesterday’s RIF at Microsoft. If you’re looking for amazing accessibility talent (PMs and Engineering Managers), please reach out.
May 14, 2025 at 4:37 PM
I’ve heard of the primary point here before, it a lot of good follow-up advice in the details.

https://sketchplanations.com/dont-think-of-an-elephant
Don't Think of an Elephant
When teaching framing at UC Berkeley, Professor George Lakoff would often begin with a simple test: "Don't think of an elephant." Except everyone does. When he said elephant, like it or not, all things elephant—large, slow, floppy ears, tusks, trunk, jungle, savannah—were likely to come to mind. Lakoff gives another example: When Richard Nixon came on TV and said, "I am not a crook," everyone thought about him as a crook, even though he explicitly said he wasn't. Another case he shares is when someone says tax relief, it evokes a frame whereby taxes are a burden, someone imposing those taxes is hurting people, someone relieving you of that hurt is helping you, and anyone who wants to stop that relief is a villain. Suppose you think taxes are good, not bad; if you use the term tax relief when arguing against it, you're setting yourself up as the villain. Using someone else's language draws you into their worldview. Some Framing Examples Here are some less political, more everyday examples of framing at work: Stay-at-home parent and working parent evokes a frame where staying at home isn't work. Quality time frames certain family moments as more valuable and implies that some time is less meaningful. Home CEO reframes running a household as a business—children as projects or deliverables, perhaps? When someone does a favour, saying "I owe you one" frames the favour as a transaction to be repaid rather than a gift. Screen time evokes a frame of off-screen vs on-screen time, as opposed to considering the value of what you're doing, whether on-screen or off. Reframing Signage I love spotting signs that shift the frame in positive, thoughtful ways. Rather than presupposing bad behaviour, they invite good. For example, this sign from Kew Gardens: "Respecting Significant Trees Please help us manage our trees to ensure we can enjoy them for as long as possible. This tree needs a break from adults and children climbing on it. Please don't climb." Rather than setting Kew up as the rule-enforcer spoiling your fun, it frames them as caretakers—inviting you to help give a tired tree a break. Not climbing becomes an act of kindness, not a restriction. Not climbing becomes an act of respect rather than restriction. Our local wetlands has a "Ducks only" sign instead of an admonishing "Keep off the grass". Or at an ATM, even saying "Wait" rather than "Don't remove your card" helps keep removing your card further from your mind. Language shapes and reflects how we think. Using language that negates a frame evokes the frame. What frames are you evoking? Related Ideas to Don't Think of an Elephant Everything I've learned about framing, metaphor, and how they shape our thinking continues to fascinate me. Here are some related sketches and powerful metaphors: Primary metaphor The Frog Boil Metaphor Rivers and Buckets Compliments are Gifts The Learning Pit The Swiss Cheese Model Trust Battery The Accountability Ladder Sharpen the Saw Ideas Are Locations, Objects, Food Framing Get More Participation: Instead of "Anything Else?" ask "What Else?"
sketchplanations.com
May 14, 2025 at 9:38 PM
Obviously I’m biased, but use 👏 the 👏 platform 👏

https://plainvanillaweb.com/index.html
May 11, 2025 at 9:27 PM