Skip to content

On pragmatism and idealism

•Design Systems•2 min read

I once took a course on Pragmatism at art school in Stockholm. It felt wildly abstract at the time — William James, John Dewey, truth as the thing that works. Years later it turned out to be the most practical thing I studied, because it describes almost exactly how you keep a design system alive.

A design system tempts you toward purity: one perfect token scale, one correct name, a component that handles every case. But purity is a trap. The team needs something useful today, not something flawless next quarter. So we made the unglamorous calls. We emoji-prefixed components mid-migration so two versions could live side by side without anyone losing track. We renamed our tokens from “subtle / soft / strong” to “soft / moderate / intense” because the first set didn’t actually tell anyone what they did. We let go of Tailwind for CSS Modules to lower the barrier for the next contributor.

None of that looks elegant on a slide. Each one made the system easier to use the same week we shipped it.

The idealism doesn’t disappear, though — it just moves. I’m still chasing the clean, coherent system; I’ve simply stopped pretending the path there is clean too. You inventory six hundred screens, you argue about whether a dialog button should be full-width, you sit in a workshop weighing one color model against another. The ideal is the direction. Pragmatism is how you take the next real step toward it without stalling.

Pandas, it turns out, are pragmatic idealists. So am I.