The LEGOism of Design Systems

‘We’re going to build a component library — which are like a bunch of LEGOs — so designers/developers can just pick a prefabricated component off the shelf and build with consistency and coherence.’

It’s a nice thought, if you don’t think about it too much

Jim Nielsen, Components and LEGOs

The concept of a component is commonly sold as “LEGO [pieces]” , reusable bricks that encapsulate some piece of UI. With only a handful of unique blocks, we can create an infinite number of experiences. I’m not entirely convinced anymore. The LEGOism of Design Systems has it’s place—purely as a means of prefabrication. But in the age of Generative AI1 and really really good open source headless UI libraries, the gap is closing on the value for prefab bricks.

We’re pitching the value of a design system as a time-saving, plug n’ play collection of LEGO bricks when we really should be pitching the Building Instructions instead. You know, that little booklet that comes with all the cool sets that shows you how to build the thing step by step?

If components are just LEGO bricks, I’m not sure if I even want them anymore. I’d rather you teach me how to design using the system.

Bricks are useless (to me)

For me, there’s nothing more useless than a bucket of LEGO bricks. I lack the ability to translate my imagination into reality. That’s probably why I’m not a designer. The extent of my crafting ability ends at a square box, maybe a door (if the specific encapsulated door component is available), and two holes, all masquerading to represent a house-like thing. It’s my go to build.

There’s two kinds of people—those that use the Building Instructions and those that don’t (Freebuilders). I acknowledge the people who can grab a bucket of bricks and build up the Death Star from pure creative resolve. I am not that person. Ask me to build a house from scratch and I will lookup 10 different ways and synthesize and distill the best pieces from each. Ask me to build a component from scratch and I’ll do the same thing, consulting Open UI and Component Gallery.

If I want to build a house, I’m not going to each brick and trying to understand when and where to use it.

You Still Need One-Offs Anyway

A poor doodle of LEGO brick #6275973
Artist's rendition of LEGO brick #6275973

And components are cool, but every product will still require their own one-offs. Similarly, all the cool LEGO sets end up having to print their own unique parts anyway. For example, the Diagon Alley set has 55 unique parts. Maybe it’s a newspaper or a dinosaur bone or a train track switch, sometimes the existing bricks just don’t cut it and a new one must be made.

Counter point: I do think it’s really cool that they were able to reuse Element #6275973: GLASS FOR FRAME 1X2X2. NO. 7, for both the Stranger Things Upside Down set and the Diagon Alley set.

That means I, as a consumer, can’t actually build my own best-in-class LEGO set for Dune. I’m not able to make my own unique pieces. I have to wait for the LEGO company to do it for me. The Company will always deliver a higher quality product.

This Isn’t For You2

And all that is fine. Maybe these bricks just aren’t for me, as a developer, but I think they can be. Those Building Instructions that come with each set do more to teach design than any long-winded article or video playlist. They can make for a decent How To Guide and, when done correctly, invite a sense of flow.

Building Instructions teach you patterns, implicitly. If you build enough of them, the design will start to reveal itself. At the end of the day:

LEGOs are a nice, but often you want more than just prefabrication and composition. Design and intention bring about constraints and coherence — “componentisation with big picture planning”.

Jim Nielsen, Components and LEGOs

  • Composability in design systems - Jeremy Keith writes about how the old LEGO kits hit differently. It’s probably because they had a lot less one-off components/bricks.

Footnotes

  1. I’m not an AI doomer. Not in this one.

  2. Wells For Boys