Let's start by defining "system"
"A system is an interconnected set of elements that is coherently organized in a way that achieves something."
- Donella H. Meadows
Thinking in Systems: A Primer
Systems are composed of:
• Elements
• Interconnections
• Function or Purpose
• Football Team
- Elements: players, coaches, field, the ball, etc
- Interconnections: rules of the game
- Purpose: win games, have fun, etc.
• School
- Elements: teachers, students, books, etc
- Interconnections: admissions, exams, grades, etc
- Purpose: education
Human Body
• digestive system
• nervous system
• circulatory system
• etc.
"A set of connected patterns and shared practices, coherently organized to serve the purposes of a digital product."
- Alla Kholmatova
Design Systems
Elements
• designers, developers, tools, components, etc
Interconnections
• patterns, practices, & processes
Purpose
• support other products and systems
Examples
• Lightning - Salesforce
• Polaris - Shopify
• Carbon - IBM
• US Web Design System - 18F
• Primer - GitHub
• Mineral UI - CA Technology
• Atlassian Design Language - Atlassian
• Gestalt - Pinterest
• purple3, shibori3, and malibu - Heroku
• Guidelines
• Style
• Components
• Utilities
• Accessibility
• Code Patterns & Consistency
• Testing Philosophy and Coverage
• Documentation
• Color
• Components
• Iconography
• Motion & Animation
• Purpose & Values
• Spacing
• Typography
• Voice & Tone
• Grid Components
• Base Components
• Translation
• Theming
• Time-formatting
• CLI tools
• Maximize developer and designer effort
• Scaling UI / UX consistency
• Build apps faster
• Make updates cheap
• Make testing ideas cheap
• Faster onboarding
Many of the companies listed with our examples are far larger and have a lot more resources to support a design system
Some questions to consider:
• Will our current processes and structure scale for our needs?
• Could our UI be more easily maintained and updated?
• Are we able to test new ideas as quickly as they would like?
As frontend and design tooling has improved, design systems have become more accessible for small-to-medium-sized companies.
Perhaps it makes sense to start by building tools to support immediate problems and build from there.