A Design System is a collection of reusable components, guided by clear standards, that can be assembled together to build any number of applications.
-
Consistency - Ensure uniform design and functionality, enhancing user experience and brand identiy.
-
Efficiency and Speed - Accellerates product evelopment with reusable components, enabling faster iterations.
-
Collaboration - Improves teamwork with a shared language and understanding of design and development.
-
Quality - Raises product quality by standardizing design and development practices.
-
Cost Reduction - Reduces design and development costs by reusing components and patterns.
- Typography - Font family, size, weight, line height, and color.
- Color - Primary, secondary, and accent colors.
- Spacing - Margins, padding, and grid.
- Iconography - Icons and symbols.
- Buttons - Primary, secondary, and tertiary buttons.
- Inputs - Text fields, text areas, and checkboxes.
- Forms - Form fields, labels, and validation messages.
- Navigation - Menus, tabs, and breadcrumbs.
- Cards - Containers for content.
- Modals - Dialogs and popups.
- Can be overengineered - May include unnecessary components and styles.
- Timeconsuming to learn - May require time to understand and implement.
- Needs customization - May not fit your brand or product.
- Result in bloated code - May include unused components and styles.
Caveat: Buying a design system to speed up the creation of your design system can work. But avoid using their entire system as is.
- Collaborate with developes, desiges, product managers, and stakeholders - Ensure everyone is on board with the design system.
- Sell the benefits - Explain how the design system will improve efficiency, consistency, and quality.
- Set expectations - Communicate the time and effort required to build and maintain the design system.
-
Define the Purpose - Clarify the goals and objectives of the design system.
-
Set Scope - Determine the components and styles to include in the design system.
-
Identify Audience - Understand who will use the design system and their needs.
-
Accessibility - Will the design system be accessible to all users?
-
Versioning - How will you manage versions of the design system?
-
Responsiveness - Will the design system be responsive for all devices?
-
Dark Mode - Will the design system support dark mode?
-
Existing Assets - Identify reusable components and styles.
-
Gaps and Inconsistencies - Note gaps and inconsistencies in the design.
-
Context - Build components and styles as you need them is easier when you have context.
-
Focused - Build components that you are using to keep the system focused and streamlined.
-
Faster and Cheaper - Avoids the upfront investment in a system that may need larger revisions later.
-
Layout Grid - Define the grid system for the design system.
-
Layout Padding - Define padding within components.
-
Typography - Define font sizes, weights, and line heights. (e.g., headings, body text, and links)
-
Color Palette - Define primary, secondary, and accent colors, modes, and states through variables.
-
Aesthetic Styles - Define rounded corners, shadows, and other aesthetic styles. (e.g., buttons, cards, and modals)
-
Buttons - Create primary, secondary, and tertiary buttons.
-
Inputs - Create text fields, text areas, and checkboxes.
-
Forms - Create form fields, labels, and validation messages.
-
etc.
Don't forget states - Define states for each element (e.g., hover, focus, active, and disabled)
-
Navigation - Create menus, tabs, and breadcrumbs.
-
Cards - Create containers for content.
-
Modals - Create dialogs and popups.
-
etc.
Avoid too much abstraction - Keep components simple and focused on their purpose.
-
Reuse - Reuse components across applications.
-
Customization - Customize components for specific use cases.
-
Consistency - Ensure components are used consistently across applications.
-
Accessibility - Ensure components are accessible to all users.
Step back and look at them as a whole - Ensure components work together harmoniously.
Tools - Storybook https://storybook.js.org/
-
User Feedback - Collect feedback from users and stakeholders. Useful to highlight impormenets or reaveal usability issues.
-
Brand evolution - Update the design system to reflect changes in brand identity.
-
Technology changes - Update the design system to reflect changes in technology.
-
Component updates - Update components to improve usability and accessibility.
- Can we reuse an existing component?
- Can we revise an existing component?
- Anyone working on a similar component?
-
Clear versioning strategy - Use semantic versioning to manage versions of the design system.
-
Documentation changes - Update documentation to reflect changes in the design system.
-
Rolloutstrategy - Plan how to roll out changes to the design system.
-
Depreciation strategy - Plan how to deprecate components and styles.
-
Communicate Value - Explain the benefits of the design system to users and stakeholders.
-
Chamions - Identify champions to promote the design system within the organization.
-
Ownership - Assign ownership of the design system to a team or individual.
-
Training - Provide training on how to use the design system.
Design principles are a framwork that can help make design decisions, ensuring yout service is user-centric and fir for purpose.
- Consistent decision-making
- A shared understanding of what good looks like
- A way to evaluate design decisions
A digital playbook is a set of guidelines that help teams design and deliver better digital services.
- Agreed set of processes
- A shared understanding of how to deliver digital services
- A way to evaluate the success of digital services