An ongoing firehose of the latest 10 things we’re reading from around the web that we find interesting. Subscribe to the feed.
May 14, 2025
Are developers falling out of love with Apple?
After very nearly four years fighting Apple’s iOS monopoly, I’ve noticed a definite shift in the way that many developers regard Apple. When I first used to read comments on tech news reports of EU and UK attempts to regulate Apple, most were vehemently supportive of Apple’s closed ecosystem, App…
Say you had a UI component that had pagination arrows for whatever reason. If there was enough space on the outside of that component, you wanted to put those arrows outside, like this this: But if there isn’t enough room for them without shrinking the main content area, then place…
Have you ever wished you could write simple CSS to declare a color, and then have the browser figure out whether black or white should be paired with that color? Well, now you can, with contrast-color(). Here’s how it works. Imagine we’re building a website or a web app, and…
Since writing my new talk, An Introduction to the World Wide Web for Very Senior Programmers, in which I transport the audience back to the year 1995, I’ve become somewhat of a proud and nerdy Internet historian. So much happened on the web in 1995. HTML 2.0 was released in…
May 9, 2025
Shaping Up CSS
CSS shape() Commands Try out the new clip-path: shape() function, which just landed in Chrome & Safari, with Geoff Graham at CSS-Tricks. Geoff has a helpful table defining all of the shape commands, plus a pair of embedded Pens where you can start tinkering. Corner-shape CSS From the very experimental…
May 8, 2025
CSS snippets
I’ve been thinking about the kind of CSS I write by default when I start a new project. Some of it is habitual. I now use logical properties automatically. It took me a while to rewire my brain, but now seeing left or top in a style sheet looks wrong…
May 7, 2025
shape(): A New Powerful Drawing Syntax in CSS
I first saw in the Safari 18.4 release notes that shape(), a new function is now supported. Then I saw on MDN it’s actually already in Chrome, too! The shape() function joins friends like polygon(), circle(), rect(), inset(), and a handful of others. These functions are used as values for…
Browser makers didn’t take long to add the movement capabilities to CSS. The simple :hover pseudo-class came first, and a bit later, the transitions between two states. Then came the ability to change states across a set of @keyframes and, most recently, scroll-driven animations that link keyframes to the scroll…
May 5, 2025
christopher.org for the next 100 years
I’m trying to do right by my old buddy Christopher Schmitt and his digital footprint. You might remember we made a thank-you site for him where people shared memories. That’s hosted on a provided Netlify account, and the code is on a public GitHub repo. Notably the site doesn’t use…
May 2, 2025
Reading flow ships in Chrome 137
I’m really excited that the reading-flow and reading-order properties are in Chrome 137 (current beta, will be Chrome stable as of May 27, 2025). Finding a way to deal with the visual and source order disconnect created by grid and flex layout has been something I’ve kept returning to ever…