By Fatskills Exam Guides Team — the exam nerds behind 28,500+ quizzes and 2.1M practice questions across 500+ global exams.
For aspiring product designers, graphic designers transitioning to UX, and bootcamp students
A design system is a single source of truth for all UI elements (buttons, typography, colors, spacing) and rules (interaction patterns, accessibility standards) that keep a product consistent, scalable, and efficient. Think of it like LEGO: instead of carving each brick from scratch, you reuse pre-made pieces to build faster and avoid mismatched designs.
Why it matters:- Saves time: No more redesigning the same button for every screen.- Improves usability: Consistent patterns reduce cognitive load (e.g., all "Submit" buttons look and behave the same).- Enables collaboration: Developers, designers, and PMs speak the same language.
Real-world example:A hospital’s patient portal uses a design system to ensure the "Book Appointment" button is the same color, size, and hover state across desktop, mobile, and kiosks. This reduces errors (e.g., patients accidentally clicking "Cancel" instead of "Confirm") and speeds up development when adding new features like telehealth scheduling.
Design Tokens Definition: Variables that store design decisions (e.g., colors, spacing, typography) in code-friendly formats (JSON, CSS). Tokens make global updates easy—change a token once, and it updates everywhere. Example: A token named --primary-blue: #2A5BD7 is used for all buttons, links, and icons. When rebranding, you only update the token, not every instance.
--primary-blue: #2A5BD7
Component Library Definition: A collection of reusable UI elements (buttons, modals, cards) built in tools like Figma or Storybook. Components include variants (e.g., primary/secondary buttons) and states (hover, disabled). Example: A "Card" component in Figma has slots for an image, title, and CTA button. Designers drag it into mockups instead of redrawing it each time.
Atomic Design (Brad Frost) Definition: A methodology for building design systems in layers:
Pages (final screens with real content). Example: A "Product Card" (molecule) combines an image (atom), title (atom), and "Add to Cart" button (atom).
Style Guide Definition: A document (often a PDF or web page) that defines visual rules: typography, color palettes, logos, and usage guidelines. Less interactive than a design system but useful for branding. Example: A style guide for a bank might specify that body text uses Inter 16px, with a line height of 1.5x, and that the logo must never be stretched.
Design System vs. Style Guide Key difference: A style guide is static (colors, fonts, logos). A design system is dynamic (components, tokens, code snippets, interaction rules). Example: A style guide says "Use #FF5733 for CTAs." A design system provides the actual CTA button component in Figma and React, with hover/focus states.
Heuristic: Consistency & Standards (Nielsen’s #4) Definition: Users should feel familiar with your product’s patterns. Follow platform conventions (e.g., iOS vs. Android) and internal consistency (e.g., all error messages use the same red). Example: If your app uses a hamburger menu on mobile, don’t switch to a bottom tab bar on one screen—it confuses users.
Heuristic: Recognition Over Recall (Nielsen’s #6) Definition: Minimize memory load by making actions visible (e.g., showing a dropdown menu instead of requiring users to remember commands). Example: A design system includes a "Date Picker" component so users don’t have to type dates manually (reducing errors).
WCAG Contrast Ratio Definition: Text and interactive elements must have sufficient contrast against their background for readability. WCAG AA requires:
Large text (18.66px+ bold or 24px+ regular): 3:1. Example: A light gray button (#CCCCCC) on a white background fails contrast. Use a darker gray (#757575) or add a border.
8-Point Grid System (Spacing) Definition: A spacing scale based on multiples of 8px (e.g., 8px, 16px, 24px) to create consistent layouts. Works well with most screen densities. Example: Padding inside a card is 16px (2x8), and the gap between cards is 24px (3x8).
Design System Governance Definition: Rules for maintaining and updating the system. Includes versioning, contribution guidelines, and a process for adding new components. Example: A team uses a RFC (Request for Comments) process: Designers propose a new "Notification Banner" component, gather feedback, then add it to the library.
Design System Documentation Definition: Instructions for using the system, often in tools like Storybook, Zeroheight, or Notion. Includes do’s/don’ts, code snippets, and usage examples. Example: A "Tooltip" component’s docs show how to trigger it (hover/click), max width, and when not to use it (e.g., for critical alerts).
Goal: Identify inconsistencies and gaps.Actions: - Inventory UI elements: List all buttons, inputs, cards, etc. in a spreadsheet or Figma board. Use plugins like Auditor to auto-generate a list.- Spot inconsistencies: Highlight mismatched colors, fonts, or spacing (e.g., three different "Primary Blue" shades).- Map to user flows: Note where inconsistencies cause friction (e.g., a "Save" button looks different on mobile vs. desktop).
Figma Tip: Use Auto Layout to test if components scale predictably. If a button’s text wraps awkwardly, adjust padding or min-width.
Goal: Create a scalable base layer.Actions: - Colors: Pick a palette (5–10 colors max) and assign roles (e.g., --primary: #2A5BD7 for CTAs, --error: #D32F2F for alerts). Use tools like Coolors or Adobe Color.- Typography: Define a type scale (e.g., h1: 32px/1.2, body: 16px/1.5). Limit to 2–3 fonts (e.g., Inter for UI, Playfair Display for headings).- Spacing: Adopt the 8-point grid (e.g., 8px, 16px, 24px). Use Figma’s spacing tokens to enforce consistency.- Elevation: Define shadow styles for depth (e.g., shadow-sm for cards, shadow-lg for modals).
--primary: #2A5BD7
--error: #D32F2F
h1: 32px/1.2
body: 16px/1.5
8px
16px
24px
shadow-sm
shadow-lg
Example:
Color Tokens: --primary: #2A5BD7 --primary-hover: #1E40AF --text-primary: #1F2937 --text-secondary: #6B7280
Goal: Create reusable, flexible UI elements.Actions: - Start with atoms: Build buttons, inputs, icons, and typography styles. Use Figma’s Variants to group states (e.g., Primary Button / Hover / Disabled).- Combine into molecules: Create search bars, dropdowns, and cards. Use Auto Layout for responsive behavior.- Document rules: Add notes in Figma (e.g., "Use Primary Button for main CTAs only").
Primary Button / Hover / Disabled
Primary Button
Figma Tip: Use Component Properties to let designers toggle states (e.g., Icon Left/Right for buttons) without detaching instances.
Icon Left/Right
Goal: Ensure components work in real contexts.Actions: - Usability test components: Ask users to complete tasks (e.g., "Find and click the ‘Submit’ button"). Watch for confusion (e.g., users ignoring a disabled button).- Accessibility audit: Use Stark or Axe to check contrast, keyboard navigation, and screen reader compatibility.- Developer handoff: Export tokens to JSON/CSS and test components in Storybook. Verify that hover/focus states work.
Example Test Scenario:
"You’re booking a doctor’s appointment. How would you confirm your time slot?" - Success: User clicks the "Confirm" button (primary CTA).- Failure: User hesitates or clicks "Cancel" (button may look too similar).
Goal: Make the system usable for the whole team.Actions: - Write guidelines: Use Zeroheight or Notion to document: - When to use each component (e.g., "Use Alert for errors, Toast for success messages"). - Do’s/don’ts (e.g., "Don’t use Primary Button for destructive actions"). - Code snippets (e.g., React/HTML examples).- Set up a contribution process: Define how new components are proposed (e.g., via GitHub issues or Figma comments).- Version control: Use semantic versioning (e.g., v1.2.0) and changelogs to track updates.
Alert
Toast
v1.2.0
Example Documentation:
Button Component - Primary Button: Use for main CTAs (e.g., "Submit").- Secondary Button: Use for less critical actions (e.g., "Cancel").- Disabled State: Opacity 50%, cursor: not-allowed.- Do: Keep text concise (1–3 words).- Don’t: Use for navigation (use `Link` instead).
Goal: Keep the system alive and relevant.Actions: - Regular audits: Every 3–6 months, review components for inconsistencies or unused elements.- Gather feedback: Survey designers/developers on pain points (e.g., "The dropdown component is hard to customize").- Deprecate old components: Archive unused components with a clear migration path (e.g., "Use NewCard instead of LegacyCard").
NewCard
LegacyCard
Figma Tip: Use Figma’s Library Analytics to track component usage and identify unused elements.
What happens: Designers create components without testing them in real layouts, leading to awkward spacing or misaligned elements.Correction: - Design in context: Build components inside a template (e.g., a dashboard or form) to spot issues early.- Use real content: Avoid "Lorem ipsum"—test with actual text lengths (e.g., a long German word breaking a button).
Example: A "Card" component looks great alone but overlaps with other cards when placed in a grid. Fix by adding Auto Layout and testing in a real layout.
What happens: Creating too many variants (e.g., 10 button styles) or overly complex components that no one uses.Correction: - Start small: Begin with 3–5 core components (button, input, card) and expand as needed.- Follow the 80/20 rule: 80% of use cases should be covered by 20% of components. Add complexity only when necessary.
Example: Instead of a "Button with Icon Left/Right/Top/Bottom," start with "Button with Icon Left" (most common use case).
What happens: Components fail contrast checks, lack keyboard navigation, or don’t work with screen readers.Correction: - Bake in accessibility: Test components with: - Keyboard-only navigation (can you tab through all interactive elements?). - Screen readers (e.g., VoiceOver or NVDA—does the button announce its state?). - Color blindness simulators (e.g., Stark or Color Oracle).- Document requirements: Add accessibility notes to component docs (e.g., "This modal must trap focus").
Example: A "Toggle Switch" component fails because it’s not keyboard-operable. Fix by adding role="switch" and aria-checked attributes.
role="switch"
aria-checked
What happens: Designers build components that are impossible to implement (e.g., animations that don’t exist in the codebase).Correction: - Pair with devs: Hold a design-dev sync to align on: - Naming conventions (e.g., ButtonPrimary vs. BtnPrimary). - Technical constraints (e.g., "We can’t support gradient borders in CSS"). - Handoff tools (e.g., Storybook for React components).- Use design tokens: Export tokens to code (e.g., via Style Dictionary) to ensure consistency.
ButtonPrimary
BtnPrimary
Example: A designer creates a "Floating Action Button" with a complex shadow effect, but the dev team can’t replicate it in CSS. Solution: Simplify the shadow or use a pre-built component from the code library.
What happens: The system becomes outdated as the product evolves, leading to "shadow design" (designers creating one-off components).Correction: - Assign an owner: Designate a Design System Lead (even part-time) to maintain the system.- Schedule regular updates: Plan quarterly audits to: - Remove unused components. - Add new components based on product needs. - Update tokens for rebranding or new features.- Encourage contributions: Let designers/developers propose changes via a RFC process (e.g., GitHub issues or Figma comments).
Example: A team adds a "Dark Mode" feature but forgets to update the design system. Result: Inconsistent dark mode styles across the app. Fix: Add dark mode tokens and update all components.
What interviewers want: Evidence that you can build and maintain a design system, not just use one.How to showcase it: - Portfolio case study: Include: - Audit phase: Screenshots of the "before" (inconsistent UI) and "after" (unified system). - Token/component creation: Show your Figma file with tokens, variants, and Auto Layout. - Testing: Describe how you validated components (e.g., "Usability tested the dropdown with 5 users; 4/5 completed the task without errors"). - Documentation: Link to a Notion/Zeroheight doc or include a screenshot of your component guidelines.- Interview storytelling: Use the STAR method (Situation, Task, Action, Result) to describe a design system challenge. Example:
"At [Company], our checkout flow had 3 different ‘Continue’ buttons. I audited the UI, created a unified button component with variants, and documented usage rules. This reduced dev time by 30% and improved conversion by 12%."
What interviewers want: Proof that you understand design principles and business impact.How to showcase it: - Link to heuristics: Explain how your system addresses Nielsen’s heuristics (e.g., "Consistent buttons reduce cognitive load—Nielsen’s #4").- Quantify impact: Use metrics like: - "Reduced dev time by X% by reusing components." - "Improved accessibility compliance from WCAG AA to AAA." - "Decreased design debt by eliminating 20+ one-off components." - Show trade-offs: Discuss compromises (e.g., "We limited the color palette to 8 colors to balance brand flexibility and consistency").
Example Portfolio Snippet:
"I chose an 8-point grid for spacing because it aligns with most screen densities and reduces decision fatigue for designers. This improved layout consistency by 40% (measured via design QA audits)."
Tricky distinctions interviewers test: | Term 1 | Term 2 | Key Difference | |--------|--------|----------------| | Design System | Style Guide | A design system is interactive (components, tokens, code); a style guide is static (colors, fonts, logos). | | Component Library | Pattern Library | A component library has reusable UI elements (buttons, cards); a pattern library has reusable solutions (e.g., "How to design a checkout flow"). | | Design Tokens | CSS Variables | Tokens are design decisions (e.g., --spacing-md: 16px); CSS variables are the code implementation. Tokens can be used in Figma and code. | | Atomic Design | Modular Design | Atomic Design is a specific methodology (atoms → molecules → organisms); modular design is a broader approach to reusable parts. |
--spacing-md: 16px
How to answer in interviews:
"A style guide is like a brand’s rulebook—it defines colors and fonts. A design system is like a LEGO set—it includes the rules and the reusable pieces (components, tokens) to build products faster."
Common design system interview tasks: 1. "Design a button component with variants." - What to do: Sketch a button with states (default, hover, active, disabled, loading) and explain your decisions (e.g., "Disabled buttons have 50% opacity to indicate non-interactivity"). - Key principles: Fitts’s Law (size), contrast (WCAG), consistency (Nielsen’s #4).
Key principles: Heuristic evaluation, atomic design.
"A developer says your dropdown component is too complex to build. How do you respond?"
Answer: - Check usage data: Is the "Premium" button needed in multiple places, or is it a one-off? - Apply the 80/20 rule: If 80% of use cases are covered by existing buttons, avoid adding a new variant.- Propose alternatives: Can you use an existing button with a badge (e.g., "Premium" label) instead? - Key principle: Consistency (Nielsen’s #4)—too many variants increase cognitive load.
Answer: - Ask why: Did they miss the component? Was the system’s button not flexible enough? - Document the fix: Add the one-off style to the system (if justified) or update the component to cover the use case.- Educate the team: Hold a quick sync to explain the system’s value (e.g., "Using the system button saves dev time and ensures consistency").- Key principle: Design System Governance—prevent "shadow design" by making the system easy to use.
Answer: 1. Audit existing components: Identify which elements need dark mode variants (e.g., buttons, cards, text).2. Create dark mode tokens: Define new colors (e.g., --bg-dark: #121212, --text-dark: #E0E0E0).3. Update components: Add dark mode variants to buttons, inputs, etc. (use Figma’s Mode Switcher).4. Test contrast: Ensure text meets WCAG AA (4.5:1 for normal text).5. Document: Add dark mode guidelines (e.g., "Use --bg-dark for surfaces, --surface-dark for cards").6. Handoff to devs: Export tokens to CSS/JSON and update Storybook.- Key principle: Scalability—design systems should evolve with product needs.
--bg-dark: #121212
--text-dark: #E0E0E0
--bg-dark
--surface-dark
Join 4M+ learners. Unlock unlimited quizzes, wrong-answer tracking, flashcards + reminders, study guides, and 1-on-1 challenges.