So, after planning the file structure for Synth, it was time to start working on the styles, in which we normally refer to the following as the “foundations” of a design system: colors, typography, spacing, grids, and elevation. While I was excited for this process, there was a drawback - I was essentially piloting a design system - a design system without a specific destination (yet!), so I didn’t want to put an emphasis on selecting the “perfect” color scales or typeface.
When we discuss foundations for design systems, sometimes we can get stuck on identifying the perfect foundational elements before we proceed further. In my opinion, I don’t think it’s necessary to hone in on the perfect colors and typefaces early on because - well, in the words of Dan Mall:
The idea of “foundations” in design system work is a black hole. For systems-minded designers and engineers, the gravitational pull of spending months studying to find a perfectly harmonious set of colors, workhorse type family, data visualization library, or animation suite is near impossible to resist. When done too early, these are self-serving (and often selfish) activities that distract from the real focus of design systems: making it easier and better for feature teams to create things that further the organization’s mission.
A design system is a product, so the process to create an adopted one should resemble the process that startups use to create adopted products: create a minimum viable product to test a particular hypothesis, measure how customers respond, and learn whether to pivot or persevere. Picking primary and secondary colors isn’t a test of any particular hypothesis, not one that matters when you’re first starting anyway.
Spending time on “foundations”reveals its own hypothesis: that an objectively better design system will find traction. That, if the code is cleaner and the design is tighter, designers and engineers will naturally make the wiser choice to use it. Perhaps of any common assumption I’ve seen in design system work, this is the one I’ve found to be the least true.
I was building Synth for utility use, simply because I know I can easily transfer styles over to any design project I’m working on, if that particular project/product doesn’t have an organized set of styles to begin with.