This week
- We rolled out adaptive light-dark() support on our design system themes and it’s been a delightful upgrade. Creating light and dark variable sets isn’t difficult, but delivery has trade-offs. Most apps that do this probably ship both sets of token values in a single stylesheet....
- Dominic Nguyen (Founder of Storybook and Chromatic) joins me to talk about Storybook MCP the long journey of design system quality. We get into what it actually feels like to be “scaredcited” right now, and Dom shows off the newly-released […]...
Last week
- Marcin Wichary brings attention to this lovely dialog in ClarisWorks from 1997: He quips: this breaks the rule of button copy being fully comprehensible without having to read the surrounding strings first, perhaps most well-known as the “avoid «click here»” rule. Never...
Two weeks ago
- Apple recently updated all their OSs to 26.4, and there were plenty of Liquid Glass updates. Most of them for the better! Here are some of the changes that stood out to me, as well as a bit more grumbling about Liquid Glass in general (sorry). When I last wrote about Liquid...
- Big Citywide update today! I’ve added lowercase to the family, plus over 170 new characters, expanded diacritics and symbols, and a fresh round of refinements to existing letterforms, spacing, and stylistic sets. And because I’m doing things DIY Future Fonts style, this is a...
- I found myself using the phrase “the Creative Infinite” when I’m talking about AI as a design material. I keep coming back to it because I don’t think we’ve fully grasped what this technology actually is, what it can do, […]...
About a month ago
- On Friday night, I needed a break from screens, so decided to work on a bathroom mural that our family has been chipping away at for the last 4 years. But a lot was on my mind, so made the […]...
- Imagine I’m the design leader at your org and I present the following guidelines I want us to adopt as a team for doing design work: Typography: Use expressive, purposeful fonts and avoid default stacks (Inter, Roboto, Arial, system). Motion: Use a few meaningful animations...
about 1 month ago
- I was walking my dog in the woods and decided to share my thoughts about the state of AI and the tension between the trajectory of AI companies and the designers/creators/makers of the world who are under a tremendous deal […]...
- Rahul Garg continues his series of Patterns for Reducing Friction in AI-Assisted Development. This pattern describes a structured conversation that mirrors whiteboarding with a human pair: progressive levels of design alignment before any code, reducing cognitive load, and...
- “If a picture is worth a thousand words, then a prototype is worth a thousand meetings.”– Tom & David Kelley But what if the meeting is the prototype? That’s the spirit of an idea I’m calling “Real-time UI” (the name […]...
about 2 months ago
- Ian, TJ, and I are excited to announce live AI & Design Systems Jam Sessions with our AI & Design Systems course community! Our first jam session will be Thursday, February 26 at 10AM ET. In these recurring biweekly Zoom […]...
- Did you know there is inverse correlation between how often author publishes new posts and how often they tinker with their website?...
2 months ago
- I was listening to the excellent (now completed) Waste Not Why Not podcast when I first heard the term ‘wishcycling’. If you’re not familiar with the term, wishcycling is basically what happens at the end of any house party comprised of adults in their thirties. In a sincere...
- I recently updated my collection of macOS icons to include Apple’s new “Creator Studio” family of icons. Doing this — in tandem with seeing funny things like this post on Mastodon — got me thinking about the history of these icons. I built a feature on my icon gallery sites...
- Nic Chan comes out as the whistleblower on how many “Contact Us” pages are made (spoiler: they’re designed to keep us from contacting anyone). A “fuck off contact page” is what a company throws together when they actually don’t want anyone to contact them at all. They […] are...
3 months ago
- Early last year I ventured out on my own again, taking on contract design work after a long stretch away. Not long after, I settled on a name to work under, and now I’m excited to share that name and a website to go along with it: Loud Room. The name is inspired in part by my...
- I'm increasingly seeing a lot of technical and business writing make heavy use of bold font weights, in an attempt to emphasize what the writers think is important. LLMs seem to have picked up and spread this practice widely. But most of this is self-defeating, the more a writer...
- This is another window into the sometimes unglamorous-yet-vital tasks that being an accessibility designer demands. Keyboard shortcuts occupy a strange area for web design. Most websites don’t have them, and that’s totally fine. However, it makes more sense for web apps to...
- The other day I was browsing YouTube — as one does — and I clicked a link in the video description to a book. I was then subjected to a man-in-the-middle attack, where YouTube put themselves in the middle of me and the link I had clicked: Hyperlinks are subversive. Big Tech must...
- When Apple released its new operating systems last year, I wasn’t in a hurry to upgrade. I had initially come away from WWDC 2025 excited about the new Liquid Glass design language, but then became grumpy. The visual effects looked nice to me, but they functioned more poorly...
- You might have noticed that I did a big design refresh on my entire site… unless you’re on RSS I guess. I’ll talk about aspects in detail, but at a high level there’s been three big changes: A monospace font Named CSS grid lines Juicier multi-page view transitions But my most...
- I got some wonderful bit of Hemmingway-esque consulting advice from the garage door repair guy. https://www.youtube.com/shorts/8ArxSUzke7A
- Firefox 146 added support for contrast-color() joining Safari 26 in the First Implementor’s Club. For those unfamiliar, contrast-color(<color>) is a new CSS function that will take a <color> as input and returns either white or black depending on which has the most contrast. The...
Rows per page