Josh W. Comeau

Indie hacker and educator. Blogging at joshwcomeau.com.
Previously Khan Academy, Gatsby, DigitalOcean, Concordia Bootcamps.
He/Him 🌈

2024-09-09

I also published a brand-new post as well! It's all about the “:has” pseudo-class.

Honestly, this CSS feature wasn't high on my wishlist, but once I started using it, I kept discovering handy new things it could do. It quickly became a core part of my toolkit!

Here’s the new post:
joshwcomeau.com/css/has/

2024-09-09

I’ve spent my summer working on a brand-new version of joshwcomeau.com, and that new version is now live! 😄

The design is quite similar, but more refined. Lots of new details. And, under the hood, a lot has changed.

Check it out:
joshwcomeau.com/

2024-08-14

@keithjgrant Couldn't agree more!

2024-07-07

Also I found two bugs in this screen recording, so apparently Mastodon-driven-development is a thing 😂

2024-07-07

A little UX thing that feels so magical to me: the <details> element will automatically expand when a search result is hidden within.

No JS needed:

2024-07-03

😮 TIL that iOS Safari has a way to find text on the current page (like ⌘ + F):

1. Enter the search term in the address bar, as if you’re navigating to a new site.
2. Scroll down and click the final option, “On this page”.
3. Pop through the results just like on desktop!

Maybe y’all already know this and I'm just super late to the party, but this has bugged me for years and I had no idea there was this built-in functionality. 😬

Screenshot from my phone showing a search term, "Promises", and 37 results.
2024-06-30

@clare_hooley This will be improved on my new blog 😄 Date will be above the fold.

Although you make another good point; I think I'm using the updated date, not the original published date. I should include both.

Screenshot from my new blog showing the header, which contains the date
2024-06-26

So I built my current blog in 2019, back when I had a full-time job and had to fit it into a busy schedule. A lot of it was pretty rushed.

I'm rebuilding my blog, and really focusing on the details. Spent the past few days on a new "About me" page that has tons of playful elements. 😄

One small-but-cute example:

Josh W. Comeau boosted:
2024-06-26

🔥 THIS IS A BIG DEAL 🔥 I've been working on this for MONTHS & it's finally live!

What could you create if you had 30 min to plan + 4 hrs to build? @lizziepika, @chancethedev, Jack Herrington, & I decided to find out w/help from @crtr0

filmed IN PERSON in my #PDX studio. sponsored by DataStax

youtube.com/watch?v=8RCL5neas_

#webdev #challenge #ai #javascript #python

2024-06-17

Building a search function for my blog, and having *so much fun* with the details. The View Transitions API is so great for stuff like this.

Here’s what I’ve got so far (with a lil’ slow-mo replay afterwards):

2024-06-15

@kevinpowell This is a wonderful write-up! And yeah, breathing on stage is something I struggle with myself 😅 I forget how to breathe normally and talk at the same time.

My partner gave me a tip which helped a lot: I don't have to talk continuously. I can take a 4 second pause if I want, to catch up on breathing. It's also a good way to let your words sink in, to let the audience absorb what you're saying.

2024-06-08

Couldn’t sleep (blasted jet lag!) but decided to make the most of it. Went on an early morning Amsterdam walk and made some corvid friends 😄

A crow perched on a garbage canA magpie walking on the ground
2024-06-08

@argyleink was wondering where you went! Huge bummer, but appreciate you doing the right thing <3

2024-06-07

@ankedesign amazing notes! 😍

2024-06-07

@kizu is such a mad scientist. These wild demos use scroll-driven animations to style things even without scrolling! 🔥

Several lines of text where each line of text is scaled up/down so that it’s full width.A grid of boxes where their color / transforms are modified based on their position within the container.
Josh W. Comeau boosted:
Matthias Ottmatthiasott
2024-06-07

@SaraSoueidan showing a way to replace a checkbox with a custom graphic in CSS so that it is actually accessible to touch screen users. 👏

Sara on stage showing CSS that moves the actual checkbox behind the graphic
2024-06-07

Watching @SaraSoueidan’s CSS Day talk and it’s so jam-packed full of valuable info ❤️. Will be making a bunch of tweaks to my applications to make them more accessible!

Photo of Sara giving a talk. It shows a “.visually-hidden” snippet meant to hide something visually but include it in the accessibility tree. Critically, the class has “:not(:focus):not(:active)” to ensure that if the element is focused or activated, it won’t remain hidden.

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst