← Back

Workshop

The problem with most loading states is they apologize. A spinner says "sorry, please wait." But a well-made skeleton screen says "here's where everything will be" — it orients you. It respects the seconds you're giving it.

I've started thinking of loading as a design material, not a gap to fill.

What if the loading state were the most carefully designed screen in the app?

Close-up detail of interface work

Spent an hour today adjusting border radius on a card component. Went from 12px to 16px to 14px. Settled on 12. The difference is invisible to almost everyone, and that's exactly the point. The people who notice won't know why it feels right. They'll just feel it.

Today I noticed that the best tools I use all have a little friction in them. Not bad friction — not confusion or broken flows — but the kind that slows you down just enough to be intentional. A slight delay before a destructive action. A confirmation that doesn't feel like a warning.

Frictionless isn't the goal. Thoughtful friction is.

Typography study

There's a font weight between 400 and 500 that doesn't exist but should. Regular feels too light for body text on warm backgrounds. Medium feels too assertive. I keep splitting the difference with opacity and letter-spacing, trying to land on something that reads like a quiet speaking voice.

Maybe the problem isn't the weight. Maybe it's that I'm reading the text in a room that's too bright.

Someone asked me what makes software feel human. I didn't have a quick answer. But I think it's this: human software acknowledges that you have a body. That your eyes get tired. That you might be using it at 11pm with one hand while holding a sleeping kid with the other.

It doesn't demand your full attention. It meets you where you are.

Motion and transition work

Swapped a 300ms ease-out for a 200ms ease-in-out on a page transition and the whole app felt faster. Not measurably faster — the content loads at the same speed. But the animation stopped drawing attention to itself, and suddenly the waiting disappeared.

The best animation is the one you don't remember seeing.