Research-backed studies suggest reusing code can yield 42–81% time savings and boost productivity by 40%. It should come as no surprise then that design systems, which facilitate sharing user interface code, are surging in popularity amongst developers.
In the last few years, Tom and I witnessed countless veteran teams anchor their design system tooling around Storybook. They concentrated on reducing communication overhead, durable architecture, and automating repetitive manual tasks. We hope that distilling these common-sense tactics will help your design system flourish.
Thanks for learning with us. Subscribe to the Chroma mailing list to get notified when helpful articles and guides like this are published.
If you’re coding along with us, your repositories should look like this:
The example code is based on Storybook’s own design system (SDS) which powers the user experience for tens of thousands of developers. SDS is a work in progress – we welcome community contributions. As a contributor, you’ll get hands-on experience with design system best practices and emergent techniques. SDS is also where the Storybook team demos bleeding-edge features.
Design Systems for Developers was created by Dominic Nguyen and Tom Coleman. Dominic designed Storybook’s user interface, brand, and the design system. Tom is a member of the Storybook steering committee in frontend architecture. He worked on Component Story Format, addon API, parameter API.
Content, code, and production brought to you by Chroma. InVision’s Design Forward Fund graciously helped kickstart production with a grant. We’re seeking sponsors to make continued maintenance and new guides like this possible. Email Dominic for more details.
It’s worth expanding your focus to get a holistic design system perspective.
More from the authors:
Design systems include (but are not limited to) design files, component libraries, tokens, documentation, principles, and contribution flows. The guide is scoped to the developer perspective on design systems so we cover a subset of the topics. Specifically, the engineering details, APIs, and infrastructure that go into production design systems.
Governance is a nuanced topic that is more extensive and organization-specific than we can fit into nine chapters.
Yes! The Storybook community creates addons that make design tool integration easy. For example, InVision’s Design System Manager integrates with Storybook to showcase stories in the InVision app. There are also community-created addons for design tokens, Sketch, and Figma.
No. There is an opportunity cost for creating and maintaining a design system. At small scales, a design system requires more effort than is returned in time-savings.
No one is perfect. Your design system will inevitably ship with a bug that impacts consumer apps. Mitigate this disruption by instrumenting your client app’s Storybook with automated testing (visual, unit, etc) in the same way we did with the design system. That way when you update dependencies on a branch (manually or with automated services like Dependabot), your client app’s test suite will catch incoming regressions from the design system.
The design system team is a service team. Instead of interfacing with end-users, it exists to make internal app teams more productive. The stewards of the design system are responsible for managing requests and socializing status with other teams. Many teams use a task manager like Jira, Asana, or Trello to keep track of proposals.
Thanks to the amazing Storybook community for their invaluable feedback.
Gert Hengeveld and Norbert de Langen (Chroma), Alex Wilson (T. Rowe Price), Jimmy Somsanith (Talend), Dan Green-Leipciger (Wave), Kyle Holmberg (Acorns), Andrew Frankel (Salesforce), Fernando Carrettoni (Auth0), Pauline Masigla and Kathleen McMahon (O’Reilly Media), Shawn Wang (Netlify), Mark Dalgleish (SEEK), Stephan Boak (Datadog), Andrew Lisowski (Intuit), Kaelig Deloumeau-Prigent and Ben Scott (Shopify), Joshua Ogle (Hashicorp), Atanas Stoyanov, Daniel Miller (Agile Six), Matthew Bambach (2u), Beau Calvez (AppDirect), Jesse Clark (American Family Insurance), Trevor Eyre (Healthwise), Justin Anastos (Apollo GraphQL), Donnie D’Amato (Compass), Michele Legait (PROS), Guilherme Morais (doDoc), John Crisp (Acivilate), Marc Jamais (SBS Australia), Patrick Camacho (Framer), Brittany Wetzel (United Airlines), Luke Whitmore, Josh Thomas (Ionic), Ryan Williamson-Cardneau (Cisco), Matt Stow (Hireup), Mike Pitt (Zeplin), Jordan Pailthorpe (NextRequest), Jessie Wu (New York Times), Lee Robinson (Hy-Vee)