Josh W. Comeau
banner
joshwcomeau.com
Josh W. Comeau
@joshwcomeau.com
Indie developer and educator. Blogging at http://joshwcomeau.com.
Previously at DigitalOcean, Khan Academy. Taught at Concordia Bootcamps.
He/Him 🌈
Email sent!

If for whatever reason that doesn’t work, you can also use the contact form on joshwcomeau.com/contact
Contact Josh • Josh W. Comeau
Friendly tutorials for developers. Focus on React, CSS, Animation, and more!
joshwcomeau.com
February 10, 2026 at 12:28 AM
In the Montreal airport, there’s an “area of recombobulation” right after security, for people to put their shoes and belts back on. If only recombobulation was so simple in real life 😅

Hope you feel better soon! 💜
February 7, 2026 at 1:06 PM
Likewise, Ahmad! ❤️
February 6, 2026 at 3:59 PM
I think @jakearchibald.com is one of the most talented educators in our space and I’m so thankful for his blog. ❤️
February 6, 2026 at 1:34 PM
Reposted by Josh W. Comeau
It looks like style() container queries are enabled in @firefoxnightly.bsky.social - this is one of the features I'm looking forward to most. Especially with range queries starting to roll out.

@ container style(--progress > 80%) {
background: green;
}

bugzilla.mozilla.org/show_bug.cgi...
2014404 - Enable the `layout.css.style-queries.enabled` pref on Nightly
RESOLVED (jfkthame) in Core - CSS Parsing and Computation. Last updated 2026-02-04.
bugzilla.mozilla.org
February 5, 2026 at 5:11 PM
Reposted by Josh W. Comeau
So I know a lot is going on right now, but I do want to share this:

I’m excited to share the launch of the new Microsoft Inclusive Design website 💙

This project is my love letter to the community and practice that’s shaped my work for nearly a decade.

inclusive.microsoft.design

1/
Microsoft Inclusive Design
Microsoft Inclusive Design is a practice that anyone who creates and manages products and services can use to build more inclusive experiences for everyone. Get the principles, guidebooks, workshop to...
inclusive.microsoft.design
February 4, 2026 at 7:34 PM
😂
February 3, 2026 at 10:29 PM
Yeah 😂. I didn’t expect it to be so intense!
February 3, 2026 at 10:28 PM
I just competed in the first March Mad CSS match today, and holy smokes, trying to implement a pixel-perfect UI in 15 minutes in a competition setting is *so stressful* 😂.

All of the matches will be released throughout March, I believe. Definitely check them out!
March Mad CSS
madcss.com
February 3, 2026 at 7:01 PM
I always wonder when I make those backgrounds whether people actually use them, so this is lovely to see! ❤️

And your current setup is super nice 💯
February 3, 2026 at 6:51 PM
I don’t remember what it’s called but there’s a Flash emulator that converts it to OpenGL or something. So it may be possible to continue running those files!
February 3, 2026 at 12:50 AM
Glad to hear it! I'm almost done the next module 😄. Working on the final few lessons on View Transitions, should be out within a couple of weeks
February 2, 2026 at 8:59 PM
Reposted by Josh W. Comeau
In this week's episode of The Callback, I talk about:
- Why OpenClaw/ClawdBot/MoltBot has ruined hacking
- Cursor's science fair project of a browser
- @astro.build stops playing the field and settles down

Check it out and share it with your AI friends.

www.youtube.com/watch?v=WWWK...
OpenClaw is a fun security nightmare
YouTube video by Prismic
www.youtube.com
January 31, 2026 at 5:23 PM
Reposted by Josh W. Comeau
Volume rendering in CSS can be achieved by slicing a 3D scene into 2D grids along each axis. Each slice is a cross-section where occupied cells are painted and translated at fixed intervals.

The problem then becomes: how can we recreate each grid pattern with the least number of DOM nodes?
January 31, 2026 at 12:44 PM
I do have something similar in this post! www.joshwcomeau.com/css/designin...

Though it’s also a few years old at this point and doesn’t leverage any modern CSS or do anything fancy 😅
Designing Beautiful Shadows in CSS • Josh W. Comeau
When I look around the web, most of the shadows I see are fuzzy grey boxes. It doesn't have to be this way, though! CSS gives us the tools to create rich, lush, lifelike shadows. In this tutorial, I'l...
www.joshwcomeau.com
January 30, 2026 at 11:43 PM
I’ve always used the standard US layout, since I don’t type much in French. I know the keyboard shortcut for é but not è or ê 😅.

You’re probably right that it’s not the best layout, but I’m not convinced it would be worth the pain of learning a new layout.
January 28, 2026 at 8:59 PM
Huh, no clue how that happened, since I don't even know how to type grave accents 😂. Thanks for the heads-up! Deploying a fix now.
January 28, 2026 at 5:27 PM
Reposted by Josh W. Comeau
My book, Accessibility For Everyone, is now free and online as a website.

accessibilityforeveryone.site

The book was first published by A Book Apart in 2017 but it holds up! It covers web accessibility for designers, developers, content folks, and really everyone who works in tech.
Accessibility For Everyone by Laura Kalbag
Read the book online for free.
accessibilityforeveryone.site
January 27, 2026 at 1:14 PM
Reposted by Josh W. Comeau
Thanks @joshwcomeau.com for the use-sound library!

I was looking for a React library to play audio sound with sprites, and your lib seems to be the perfect one 🙌

github.com/joshwcomeau/...
GitHub - joshwcomeau/use-sound: A React Hook for playing sound effects
A React Hook for playing sound effects. Contribute to joshwcomeau/use-sound development by creating an account on GitHub.
github.com
January 27, 2026 at 4:04 PM
@ramiismail.com @mikerose.bsky.social I’ve listened to every episode of your podcast so far and I legit get excited when a new episode shows up. It’s so good!! Thanks for creating it. ❤️
January 26, 2026 at 11:07 PM
Reposted by Josh W. Comeau
Uh, this is way more interesting than I expected. If you'd like to get involved and help us build a better browser for npm packages, raise your hand. It should be quite a enjoyable project to participate in.
I'm asking because I'm building an alternative to npmjs.com, including the admin ui piece

I have a working mvp, although of course it's very 🚧

if this is something you'd like to contribute to, and you've experienced any of these pain points, let me know - always more fun to build together! 🙏
🙋‍♂️ so ... for reasons:

I would love to know people's frustrations with:

- the current npmjs.com
- admin user flows on npm web ui (and cli, locally)

🙏
January 25, 2026 at 2:48 PM
Glad to hear it! Thanks for sharing ❤️
January 24, 2026 at 3:02 AM
Reposted by Josh W. Comeau
Doing @joshwcomeau.com Whimsical Animations course. I'm halfway on the first part (particles) and I already learned so much! Totally recommended. Such attention to detail, so well put together, really a work of love.
January 23, 2026 at 4:26 PM
I do also have a set of global styles since it would be annoying to import a “Paragraph” component rather than use <p> directly. In larger projects I have different sets of global styles depending on the part of the app, but they never get too unwieldy 😄
January 22, 2026 at 7:28 PM
Yeah, so my mental model for component-based frameworks like React is that the component is the main primitive for reuse. So rather than having a bunch of utility classes, I use components.
January 22, 2026 at 7:26 PM