Pattern Wise, System Foolish
Design systems are not pattern libraries, and abandoning them for “experimental” AI won’t free us from constraints.
So, this piece — Down With the Design System — is making the rounds, and it’s been echoed approvingly by some big names in the tech world, but I have some complicated misgivings about its fundamental conclusion: that design systems were a necessary crutch as web UX evolved, but they’ve become a straight jacket keeping us from true user-focused experience.
Obviously, some lexical nitpicks. The author discusses “design systems” purely and solely as componentized pattern libraries that someone else maintains, complaining:
…Standardization that swept the industry is leaving us with armies of UX Lego designers, clicking together colorful bricks that imprison our users into admittedly good, but still infinitely improvable, usage patterns.
If your view of UX is dominated by The Year’s Best Wordpress Portfolio Themes roundup posts, okay. Sure. But I can’t imagine anything further from the reality of “design systems” I see with most of our clients. There, inconsistently-funded design system teams must continually explain that they care a lot less about The Approved Button Styles than getting multiple inconsistent and evolving products to work together more effectively. To get the teams who work on them speaking the same language.
That point is one Ethan often returns to when I see him discuss these issues with clients: A library of UX components is one common part of a design system, but the system itself is something bigger. A good system is also a shared set of strategies for solving visual and interactive communication challenges, a playbook rather than a script. A good system, critically, is designed to grow and evolve in the same way the author says “design systems” prevent.
The author of the post seems to understand the underlying problems with “stack the patterns” design work; their list of “Component X doesn’t actually fix Design Problem Y” punchlines anchors the article’s midpoint, and that list includes many of the points we make to our clients when we tell them that a working system is more than a component library!
All these form components, polished, precise, accessible, flexible, enriched… they don’t fix the fact that forms suck.
All these data grids, sortable, filterable, infinitely-scrolling or smoothly paginating… they don’t fix the fact that too much data sucks.
All these nav menus, hamburger menus, kebab menus, user menus, settings screens… they don’t fix the fact that navigation is excise.
The issue here isn’t that design systems “don’t really fix things,” though, or that they encourage lazy, cookie-cutter work. The problem is that treating a design system as a pantry full of widgets is, in and of itself, a failure of both craft and imagination. Think of it like a language: if a writer’s only engagement with it is grabbing words from the dictionary and heaping them together until “message” is achieved, things are going to suck. Language is more than a bag of words.
And that brings us to the kicker. Sure, they admit, we needed design systems (cough, pattern libraries) back in the old days to speed things up. Now, though…
With the help of AI, we can generate in seconds, for pennies, a GUI for each user, a GUI for each moment, for each circumstance.
I’ve been playing a lot with the past few generations of Large Language Models, particularly experiments that apply their distinctive parroting to non-text problems. Using prompts to generate music, say. Or code. Or React components. Or page layouts.
I’m going to be generous and say that the future of AI UX the author dreams of might be a bit farther off than they suggest, but it is achievable. What will get us there, though, isn’t an explosion of Kai’s Power UX experimentation. It’ll be Design Systems.
Once you look past the HDR stock art with too many fingers, the AIs they say will do the grunt work of building our new innovative UXs are actually straightforward. Large Language Models sink enormous up-front time and money into collating patterns in existing human-created content. Then, prompts (“Too many noses,” “High def skunks making spreadsheets,” “A blog post titled ‘Down with the design system,’” etc) are matched to one or more previously-found patterns.
LLMs create new things in the sense that Madlibs books write new stories: They can generate previously-ungenerated output, particularly in cooperation with a creative person who knows how to nudge them in interesting directions. But they are unalterably, inescapably anchored to the patterns past humans invented and popularized; patterns they were trained to mimic. Patterns we call ‘grammar’ or ‘plot’ or ‘genre.’ Patterns we call ‘design systems.’
Humans who speak a language combine the building blocks of its vocabulary according to the rules of its grammar. That’s true even if their understanding of the grammar is hazy and informally acquired while trying to communicate with other speakers.
Design systems that transcend ‘pattern libraries and component repos’ are created and used in a similar way. Whether intentionally or intuitively, they are the repeated consistencies — the patterns — in the way problems are solved and work is done.
Just as there are pedantic language prescriptivists who’ll harangue you for dangling a participle when you’re trying to explore a new idea in writing, humanity’s breadth means there are design prescriptivists who’ll heckle your exploratory UX for its lack of sandblasted uniformity. The solution, though, isn’t to abandon “systems” for “ideation” and let the AIs do the grunt work. LLMs are — quite literally — just regurgitating the patterns of past systems, reskinning them without understanding.
The solution is to engage with the concept of a design system, to grapple with its language-like nature, and to create one that can evolve through use to meet emerging needs. One that can vary contextually but retain consistency across many communities. One that is only successful when it enables groups of creative humans to communicate effectively.
Design systems are the grammar and syntax and vocabulary of this stuff we build. Developing new and innovative solutions to emerging needs and problems means using those systems, whether the usage is intentional, intuitive, or unthinking.
That’s true today and always will be — whether the grunt work is being done by a UX auteur, an overworked junior designer… or an AI.