Picks

Geoff Graham on

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…
May 13, 2025

How to have the browser pick a contrasting color in CSS

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…
May 8, 2025

It wasn’t the idea that failed: it was the execution

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…
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…

Quick Hits

More Quick Hits →