Atomic Design Memo
Source : Atomic Design by Brad Frost
Style Guide Benefits
- Promote consistency and cohesion across the entire experience (myriad of screen sizes, devices, browsers, and environments)
- Speed up your team’s workflow, saving time and money.
- Establish a more collaborative workflow between all disciplines involved in a project.
- Establish a shared vocabulary between everyone in an organization, including outside vendors.
- Provide helpful documentation to help educate stakeholders, colleagues, and even third parties.
- Make cross-browser/device, performance, and accessibility testing easier.
- Serve as a future-friendly foundation for teams to modify, extend, and improve on over time.
Design System Content
- Brand identity guidelines: logos, typography, color palettes, messaging, illustrations...
- Design language guidelines: general design direction, philosophy, and approach to specific projects or products.
- Voice & tone style guide: how the company’s voice and tone should shift across a variety of scenarios.
- Writing style guide: some guidelines and guardrails for contributing content.
- Code style guide: conventions, patterns, and examples to write legible, scalable, maintainable code
- Pattern Libraries: front-end style guides / UI libraries / component libraries
Atomic Design Methodology
- Atoms: basic html elements (ex: form labels, inputs, buttons, h1...)
- Molecules: groups of UI elements functioning together as a unit (ex: form label + search input + button)
- Organisms: complex UI components composed of groups of molecules, atoms & other organisms. These organisms form distinct sections of an interface (ex: a header)
- Templates: component layout and content structure (generic content)
- Pages: real content into templates and variations, to demonstrate the final UI and test the resilience of the design system.
Interface Inventory
- Global elements: headers, footers, and other elements that are shared across the experience.
- Navigation: primary navigation, footer navigation, pagination, breadcrumbs and anything that’s used to navigate.
- Image types: logos, hero images, avatars, thumbnails, backgrounds...
- Icons: every interface icons & their meanings.
- Forms: inputs, text areas, select menus, checkboxes, switches, radio buttons, sliders...
- Buttons: primary, secondary, big, small, disabled, active, loading, even text links.
- Headings: h1, h2, h3, h4, h5, h6 and variations of typographic headings.
- Blocks: callouts, summaries, ads, or hero units, blocks are collections of typographic headings and/or images and/or summary text.
- Lists: unordered, ordered, definition, bulleted, numbered, lined, striped...
- Interactive components: accordions, tabs, carousels, and modules with moving parts.
- Media: video players, audio players and other rich media elements.
- Third-party components: widgets, iframes, stock tickers, social buttons, invisible tracking scripts...
- Advertising: all ad formats and dimensions.
- Messaging: alerts, success, errors, warnings, validation, loaders, popups, tooltips, and so on.
- Colors: all unique colors presented in the interface.
- Animations: UI element that moves, fades, shakes, transitions, or shimmies across the screen.
Maintaining a Design System
- Make a thing: start now and improve it.
- Make it official: establish a design system team ; makers (visual, product, ux, frontend, qa) & users
- Make it adaptable: count on change and establishing a clear governance plan.
- Make it maintainable: easy to deploy & communicate about it (change logs, roadmap, success stories, tips and tricks...)
- Make it approachable: create an easy-to-use style guide (documentation, logical naming, use case...) & educate (pair sessions, workshops, webinars, tutorials, onboarding...)
- Make it a global project (issue tracker, chat, forum, suggestions, requests for feedback, surveys...)
- Make it visible: make it public
- Make it bigger: include brand, voice and tone, code, design principles, and writing guidelines.
- Make it last by laying a solid foundation