A couple weeks ago, a friend asked if I’d be willing to share some favorite articles about design systems. After a few hours’ work, I tossed some links in an email, and sent it over. When they replied to thank me, they added a note that surprised me: they asked if I’d consider publishing the list online.
So with their permission, here’s a lightly edited version of the email I sent them. This isn’t an exhaustive list, mind: just a few articles, resources, and essays that reflect how I think about design systems work! But my friend seemed to like it; I hope you do, too.
Hey! As promised, here are some of my favorite articles around and about design systems. Three lil’ prefatory notes, before you dive in:
- I know you’d asked for “current” thinking, and I’ve tried to hew to that. But you’ll probably notice that some of these timestamps look a little older; I’ve included them because (I think) some of the ideas they’re putting forward are just starting to gain traction.
- If there are specific topics you’d like me to dive into more, or topics you were hoping I’d cover but didn’t, please let me know and I’ll adjust!
- I’ve done some rough categorization, but those labels are really very fuzzy.
With all those things said, the list follows below! I hope it’s helpful to you, friend.
- “The Language of Modular Design.” Alla Kholmatova’s been a massive influence on how I think about design systems. Her writing really inspired most of my writing about deemphasizing modularity and tooling, and re-centering the people and processes at the heart of these systems. (Also, if you haven’t already read Alla’s book on the topic, I can’t recommend it strongly enough.)
- “From Pages to Patterns.” Charlotte Jackson’s pattern teardown is a really fun one to do with clients and stakeholders, I’ve found. I think it does a nice job of emphasizing the importance of language in these systems, and why that language has to be built up alongside the patterns.
Technical & architectural
- “Grubhub: How we architect our pattern library using design APIs.” This is quite high up the technical stack, dealing with a taxonomy for CSS classes, but I think it’s of a part with Alla and Charlotte’s work. The team at GrubHub built a shared language around front-end work, one that’s clear and sensible to them.
- “Creating the ‘Perfect’ CSS System.” I love how Lindsay Grizzard thinks about building a team-wide CSS architecture, in a process that looks a lot more like community building than it does arguing about naming conventions.
- “A Tale of Two Buttons.” This is some weapons-grade CSS wonkery, so please skip if that’s not interesting to you! With that said, I think James Nash does a lovely job outlining the current tensions in modern front-end development, which tend to manifest in most design systems: hyper-componentized CSS classes, vs. some smart, contextually-relevant application of the cascade.
- “Component Styling API.” I’d describe this essay as more “explorative” than “directly practical,” but it touches on a lot of things I like thinking about, including the visibility problem baked into most design systems. And it’s helpful for me to see that a truly robust component API — something most design systems teams have been chasing for years — is still a subject of active research.
- “Adaptation: the Continuing Evolution of the New York Public Library’s Digital Design System.” A ten dollar title, I know! But the essay’s a great overview of the NYPL’s various iterations on its design system, as well as the principles they brought to each version.
- “Opening up the GOV.UK Design System for contributions.” I love this look at how the GDS team accepts and manages contributions to users of the system, not least because they neatly cover some things which aren’t working as well as they’d like.
- “The Salesforce Team Model for Scaling a Design System.” This predates the GDS essay by a few years, and it’s much higher-level. But for my money, Jina Anne’s ably described one of the few sustainable options I’ve seen for federating a design system at scale.
- “Design Systems at Gusto: Part II.” This could just as easily go in the next category as it could here, but Robin Rendle’s thesis is one that’s often missed in the early stages of a design systems project: that most of the ✌️operational✌️ work behind a design system is less about managing patterns; it’s more about the importance of outreach, communication, no small amount of politicking, and patience.
On failure states
- “Systems, Mistakes, and the Sea.” Here’s Robin again, who brings a super helpful concept to design systems work — hyperobject — to describe its often-invisible scale, as well as how often it fails.
- “When your design system fails.” Marissa Christy shares some stories about the times Paperless Post’s design system failed their team, and talks about some routes around those recurring, uh, patterns.
- “What to do when your design system isn’t enough.” This essay’s written from the perspective of a product team that’s trying — and often, struggling — to work with IBM’s corporate design system. Some really great forensics in here, I think, as well as some impossibly keen adaptations.
- “Reimagining Design Systems at Spotify.” I mentioned this in a recent talk, but Spotify’s work presents a nice counterpoint to the prescriptive-by-default model for design systems. It feels considerably more sustainable, and I’ll be curious to see how it works out for them.
That’s it! Hope you liked it. Of course, lists like these are dated the minute you publish them. If I’d been asked for some favorite articles a few years ago, it would’ve looked quite different; heck, if I was writing it this week, I would’ve added some links I’ve only just stumbled across.1 Sadly, time is linear and we are but made of dust, so I’ll have to let this list mark a particular point in my design systems reading.
And of course, since I was asked for a list of articles, you won’t find any mention of Sara Hendren’s What Can A Body Do?, Donella Meadows’ Thinking in Systems: A Primer, or Ursula Franklin’s The Real World of Technology. Each of those books are key to my thinking about design systems — or really, any system. If you haven’t read them, well, I thoroughly commend them to you.