About a month ago
- Browser engineers encourage blogging about issues with engines, so here I’m reporting an issues with Safari that doesn’t respect the justify-content property on the subgrid containers. The justify-content is not only a property of a flexbox, but you can also use it on grid...
- I wanted to see how difficult it would be to add Go's defer statement to the TypeScript compiler, but by the time I finished I was convinced it probably shouldn't exist.In Go, the defer statement delays the execution of a function until the surrounding function finishes. It's...
- End of July? Seriously? Feels like yesterday when I celebrated New Year’s Eve, and all of a sudden it is the end of July. Can we all slow down a little, please? Not a little. Slow down! You, time, the world. Pretty please! I’m in a good mood today, but not in a good one to write...
- Some teams force-reload their single-page web apps (SPAs) every few hours just to clear the memory the app leaked. A Playwright soak test finds the leak instead....
- I made an accessibility error, and I want you to learn from my mistakes. I've been making short videos recently about web platform features as they land in Firefox, and also about other web standards & development stuff. If you'd prefer to watch a 3-minute video version of this...
about 1 month ago
- CodePen v2 is now released! Because I co-host a podcast with Chris I’ve had an up-close perspective at this monumental effort over the last five years. I know how much work has gone into this release and I applaud the team for hitting the finish line. At the crux of the new...
about 2 months ago
- In Kidz Fun Art, I recently increased the resolution of images by two, letting young artists draw at much higher quality (important for my 10 year old who was hitting the limits of the program, she’s amazing). However this introduced an annoying crash on Safari where, after...
- The reason I write more Go than JavaScript nowadays is not because there is anything wrong with the language, but because I’m tired of the ecosystem. The language on its own is really good, it is the first programming language that I became productive with and I’m still...
- For decades, one of the most notoriously-challenging problems on the web has been sticking one element to another element, for things like tooltips and nested menus. The CSSWG has decided to provide a first-class solution to this problem, and it’s pretty friggin’ cool! In this...
- I made some updates to my notes blog, including a change to how my “Shuffle” feature worked. Figured I’d blog about it. Shuffle? On a Blog? At the time of this writing, I have 974 “notes” that I’ve published. For fun, I have a “shuffle” button that digs up a random note from the...
- Do you remember the little drama with Apple and Google proposing two contradicting ideas about the native CSS way for masonry layout implementation? It is all over, and what we got is a beautiful compromise between the two in a the form of display: grid-lanes. This is super...
- I had a simple question: Why do websites load lots of individual images instead of stitching them into one giant image and cropping out the pieces they need? At first glance, an image atlas sounds g...
- I was popping off about negation being an act of creativity, when Blake Watson introduce me to the idea of the “This Page Intentionally Left Blank”-Project (Internet Archive): In former times printed manuals had some blank pages, usually with the remark “this page intentionally...
- Pretty big month for the web. Tons of great posts came out, Apple WWDC took place and a few shocking acquisitions happened as well. I have been travelling for work and with family this month a lot so no other crazy updates from my personal life this month, but as always great...
2 months ago
- I recently gave a talk on customizable (as in fully-stylable) <select>, and as I was building demos I realised there's a sizing 'pattern' that's almost always the-one-you-want, but it took me a long time to figure out how to do it in CSS. Well, I say I figured it out. I actually...
- This morning on Hacker News I saw Moebius: 0.2B Lightweight Image Inpainting Framework with 10B-Level Performance, describing a small but effective inpainting model—a model where you can mark regions of …
- Named slots are one of web components’ biggest superpowers ✨. Imagine a Button component with an optional icon; in Web Components we don’t need a separate Button and IconButton, a single Button component with <slot name="icon"> will do. Or a card component with a handful of...
3 months ago
- Drama about the pricing of AI models, countless npm vulnerabilities and Google I/O that at this point should be rebranded to Google AI. This is a short summary of the past month in software. Most of the news from these categories I entirely ignore, so I prepared for you a list...
- Gradient shaderPlanted: May 2026Status: seedIntended Audience: Creative coders and front-end developers with a basic understanding of WebGL shaders.How to create an organic gradient animation using a WebGL shader. If you're new to shaders, check out this note. What we'll make:...
- My colleague Chris Griffith, with whom I collaborated to put The Effects of Nuclear Weapons, Third Edition (1977) online, is also a spaceflight enthusiast (and an urban trails hiker: check out his new book!). He recently asked me how I would mark up a table with a split diagonal...
- There are a bunch of JavaScript animation libraries out there, and you might have wondered whether there’s a performance cost compared to traditional CSS transitions and keyframe animations. In this blog post, we’ll compare the same animation across several different strategies...
4 months ago
- Safari and Firefox change how big sites render based on the domain. TikTok, Netflix, Instagram… even SeatGuru. Chrome doesn’t. Why is that?...
- I’ve been posting about how you can make lots of HTML pages and leverage navigations over in-page, JS-dependent interactions. Now I’m gonna post another example. On my icon sites, I have a little widget that allows you to resize the icons you’re looking at. Previously, I...
- Forgive me, Reader. It’s been five months since my last vibe check. That’s a lot of ground to cover and it’s not possible to get into everything that happened. Like in real life conversations, instead of telling you how I’m doing, I’ll tell you what I’ve been doing these past...
Rows per page