Design Systems
Running shared UI as a product: tokens and themes, component standards, documentation, governance and design-to-code parity. Interviewers probe it as a versioning and adoption problem.
part ofDesign systems & UX foundationsoverview, primer and where to startread it →on this pageshowhide
explore
- Purpose & Parts11 questions
- Anatomy & Vocabulary3 questions
- Business Case & ROI4 questions
- Team Models & Stakeholders4 questions
- Launch Planning12 questions
- Greenfield vs Extraction4 questions
- Interface Inventory4 questions
- First Release Scope4 questions
- Design Tokens22 questions
- Tiers & Aliasing5 questions
- Naming Taxonomy4 questions
- Tool-Agnostic Source Format5 questions
- Per-Platform Output4 questions
- Safe Renames & Removals4 questions
- Theming Strategy18 questions
- Multi-Brand Support5 questions
- Light, Dark & Contrast Modes4 questions
- Density & Scale Modes4 questions
- Runtime Switching & Scope5 questions
- Component Standards12 questions
- Spec Template4 questions
- Release Readiness Checklist4 questions
- Maturity Stages4 questions
- Documentation & Guidance12 questions
- Site Structure & Page Template4 questions
- Usage Guidelines4 questions
- Keeping Docs Current4 questions
- Governance & Operations25 questions
- Centralized vs Federated Models4 questions
- Contribution Process4 questions
- Release Cadence & Notes4 questions
- Deprecation & Codemods4 questions
- Adoption Metrics5 questions
- Office Hours & Support4 questions
- Handoff & Implementation Sync16 questions
- Library Parity4 questions
- Redlines & Annotations4 questions
- Parity Drift Audits4 questions
- Lint & CI Guardrails4 questions
questions
128 · 8 sectionsHow does a design system differ from a component library, a style guide, a pattern library and a UI kit?
basics
~20 sA design system bundles design language, tokens, coded components, patterns, usage guidance and governance, run as a product. A component library is its coded parts; a style guide documents rules; a pattern library catalogues reusable solutions; a UI kit is design-file assets.
What are the trade-offs between staffing a design system with a dedicated team, part-time contributors, or a hybrid of both?
basics
~20 sA dedicated team brings focus, quality and a roadmap but costs more and can drift from product needs. Part-time contributors are cheap and close to real problems but lose time to deadlines. A hybrid, a small core plus allocated contributors, balances both.
What value does a design system promise an organisation, and what costs must that value outweigh?
basics
~20 sA design system promises consistency, faster delivery through reuse, and accessibility and quality fixed once for every consumer. It costs a standing team, ongoing upkeep, migrating existing products, documentation and support, so it pays off only when many teams reuse it.
Which disciplines does a design-system team need besides engineers and visual designers, and what does each one contribute?
basics
~20 sBeyond engineers and visual designers, a design system needs accessibility expertise, content design for labels and guidance, product management to prioritise, interaction design, quality assurance, and engineers for each platform it serves. Small teams borrow these roles part-time.
How would you measure the return on investment of a design system, and why is that measurement hard?
basics
~20 sCompare the system's full cost with the value it creates: effort saved when teams reuse parts instead of building them, fewer UI and accessibility defects, and cheaper cross-cutting changes. It is hard because the counterfactual is unobservable and benefits lag costs.
In a design system effort, what are the trade-offs between building the system greenfield and extracting it from a live product's UI?
basics
~20 sExtraction harvests patterns already proven in production, so the system fits real needs and has a first consumer, but it inherits inconsistency and debt. Greenfield allows a clean, coherent model but risks untested abstractions nobody adopts and a costly retrofit.
In design system work, what is an interface inventory, and why run one before building shared components?
basics
~20 sAn interface inventory is a systematic catalogue of the colors, type styles, spacing, icons and components a product actually uses, grouped and counted. It exposes duplication and inconsistency, grounds the system's scope in evidence, and helps win stakeholder support.
When starting a design system, why should a team use published reference systems as input rather than adopt one wholesale as a template?
basics
~20 sA published reference system encodes another organisation's brand, products, platforms and constraints. Copying it imports decisions without their reasons; studying it supplies proven structures, accessibility behaviour and naming ideas to adapt deliberately to your own users.
When scoping a design system's first release for a freelance job marketplace, how do you decide which foundations and components to include?
basics
~20 sShip foundations first, then choose components by how widely they are used and how much pain their inconsistency causes, weighed against effort and the pilot's upcoming work. Keep the release small but complete rather than broad and shallow.
When running an interface inventory of a course-registration portal, what does a screenshot audit catch that a code audit misses, and vice versa?
basics
~20 sA screenshot audit captures what users actually see — visual inconsistency, combinations, platform differences — but misses exact values and hard-to-reach states. A code audit finds declared values and near-duplicates, including unused ones, but cannot show how they combine on screen.
In a design system, why is changing a design token's value usually safe for consuming apps while renaming the same token breaks them?
basics
~20 sConsumers bind to a token's name, not its value. A value change flows through every existing reference and restyles apps, while a rename leaves every reference pointing at nothing, so builds fail or styles silently fall back.
In the Design Tokens Community Group format, what do $value, $type and $description hold, and what makes an object a token rather than a group?
basics
~20 sIn the Design Tokens Community Group format any JSON object with a $value is a token and any object without one is a group; $value holds the value, $type declares its kind, and $description explains its purpose in plain text.
For a design token, why should the name describe its intent rather than its value, and what breaks when a name spells its value?
basics
~20 sAn intent name such as breaking-news text color stays true when its value changes; a value name like red-text either lies after a rebrand or forces a rename in every consumer, and it couples unrelated roles that merely looked alike.
In a design system with primitive, semantic and component token tiers, what does each tier hold, and which tier should product screens reference?
basics
~20 sPrimitive tokens hold raw options such as every blue in the palette, semantic tokens alias them by purpose such as the primary-action color, and component tokens scope a decision to one component. Product screens reference semantic tokens.
In a design system, how do you rename a widely used design token without breaking consumers, and when can the old name be removed?
basics
~20 sAdd the new token, turn the old name into a deprecated alias that references it, and ship that as a minor release. Remove the old name only in a later major release, once consumers have had at least one release to migrate.
In a design system, why should dark mode remap semantic token values instead of adding dark-specific styles to every component?
basics
~20 sComponents reference semantic names such as surface, primary text and border, and a mode supplies different values for those names. One mapping switches every component at once, while per-component dark styles multiply the work and drift apart.
In a design system, what are the trade-offs between applying a theme at build time and switching it at runtime?
basics
~20 sBuild-time theming bakes each theme's values into its own output: simple and fast, but switching means loading another output. Runtime theming resolves values while the app runs, allowing instant switching and nested scopes, at the cost of indirection and startup work.
In a recruiting app with a dark-mode toggle, how should the in-app choice relate to the operating system's appearance preference?
basics
~20 sDefault to following the operating system's appearance preference, and offer three choices: system, light and dark. An explicit choice overrides the preference; system keeps tracking it live. Contrast settings are a separate axis that combines with either mode.
In a design system with compact and comfortable density modes, what may a density switch change, and what must stay fixed?
basics
~20 sA density switch may tighten padding, gaps, row and control heights, and occasionally secondary text. Pointer targets must still meet WCAG 2.2 criterion 2.5.8 (24 by 24 CSS pixels or enough spacing), and legible text, focus indicators, contrast and content stay.
In design-system theming, how does supporting white-label clients differ from supporting a company's own several brands, and what does that change?
basics
~20 sMulti-brand serves a known set of brands your own designers curate; white-label serves clients who bring their own branding, unknown in advance. White-label therefore needs a narrow override surface, derived values and automatic validation instead of hand review.
In a design system, what should a shared component's release-readiness checklist require beyond working code, and what does each item protect?
basics
~20 sBeyond working code: accessibility conformance, responsive and localisation readiness, support for every theme, usage docs, automated tests, parity with the design asset, and design and engineering sign-off - each backed by evidence, so consumers meet no surprises in any supported context.
In a design system, what sections belong in a shared component's spec, and what failure does each section prevent?
basics
~20 sA component spec covers anatomy, variants, states, behaviour, content rules, spacing and sizing redlines, and accessibility notes. Each closes a gap that different teams would otherwise fill differently: unnamed parts, missing states, invented behaviour, broken copy, drifting spacing and inaccessible builds.
In a design system, what may a consuming team rely on when a component is labelled experimental, beta, stable or deprecated?
basics
~20 sExperimental may change or disappear without notice. Beta is settling, with breaking changes announced ahead. Stable changes incompatibly only in a major release. Deprecated still works but gains nothing new and names its replacement and removal plan.
In a design system, why must a shared component clear a stricter release bar than a feature built for one product screen?
basics
~20 sA shared component's defects multiply: every consuming team inherits them, cannot easily fix them locally, and starts distrusting the system. So its bar covers every context consumers use - themes, locales, screen sizes, assistive technology - not just the first screen.
In a component spec, why are variants and states documented separately, and is error a variant or a state?
basics
~20 sVariants are options chosen when placing a component, such as size or emphasis; states are conditions it enters at runtime, such as hover, focus, disabled or error. Keeping them separate makes every variant-by-state combination specifiable. Error is a state.
In a design system's documentation site, what sections should every component page share, and why use one fixed template for all of them?
basics
~20 sOverview, usage, anatomy, variants and states, API, accessibility and content guidance, in the same order on every page. A fixed template lets readers jump straight to what they need and makes missing sections obvious to authors.
In a design system, why keep component documentation as code beside the component rather than in a separate wiki?
basics
~20 sDocs kept beside the component change in the same review as its code, are versioned and released with it, and can be checked by the build, so an API change without a docs update is caught instead of drifting silently.
In a design system's documentation site, why separate foundations, components and patterns, and what belongs in each section?
basics
~20 sEach answers a different question. Foundations hold shared rules - color, type, spacing, motion, icons, accessibility principles. Components document each reusable part. Patterns show how parts combine for recurring tasks. Separating them lets readers find answers by the kind of question.
In a design system's documentation, what makes a component's usage guideline useful, and why pair each do with a don't and a reason?
basics
~20 sA useful usage guideline says when to use a component, when not to and what to use instead. Pairing each do with a don't and a stated reason shows the boundary and lets readers judge cases the page never listed.
In a component library's documentation, why generate property tables from the source and render live examples instead of writing them by hand?
basics
~20 sHand-copied property tables and pasted snippets go wrong the moment a property changes. Generated tables read names, types and defaults from the component's source, and examples the docs build renders turn API drift into a build failure.
In a design system, why is a component deprecated first and removed later instead of being deleted in a single release?
basics
~20 sDeprecation keeps the component working while warning consumers and naming its replacement, giving teams a support window to migrate on their own schedule; removal comes later in a major release, so no product breaks without warning.
What should a design system's release notes contain so a consuming product team knows what changed and whether it must act?
basics
~20 sChanges grouped by impact: first anything requiring consumer action, with the exact steps; then visible visual changes, new features and fixes, each naming the component, platforms and design-library counterpart, with links to docs and migration notes.
In a design system, how would you measure whether product teams have actually adopted it, and why is counting package installs not enough?
basics
~20 sMeasure adoption from several signals: component usage in code scans and design files, the share of product UI built from system parts, detach and override rates, and consumer satisfaction surveys. An install proves only that a dependency exists.
In a design system for an online learning platform, how do you decide whether one team's lesson countdown timer stays local or joins the system?
basics
~20 sKeep it local unless several teams need the same thing, it can be specified without one feature's business logic, and its design has settled; otherwise it stays a documented local component, built from system parts, that can be promoted later.
In a design system for a travel-expense tool, how would you use a codemod to retire an old button component across many consuming codebases?
basics
~20 sMap the old button's options to the new one, write a syntax-aware codemod that rewrites mechanical cases and flags the rest, test it on real usages, then have teams dry-run it and track what remains.
In a design-system handoff, why should the spec name the system components and tokens it uses rather than redline raw measurements and color values?
basics
~20 sA raw redline records what one drawn frame measured, so engineers hardcode it and it drifts when a mode or the system changes. Naming the component, variant and token says what to reuse and keeps every theme and future update working.
In a design handoff for a cloud admin console's resource table, which behaviours must be annotated because a static mockup cannot show them?
basics
~20 sAnnotate what one frame hides: loading, empty, error and permission states; content extremes and truncation; how the layout resizes; data rules such as default sort; and what changes after an action. Left out, each becomes the engineer's guess.
In a design system, how should design-file variables relate to the coded design tokens, and what goes wrong when they are maintained separately?
basics
~20 sDesign-file variables should mirror the coded tokens: same names, same tiers and aliases, same modes, ideally generated from one source. Maintained by hand on both sides, values and names drift, so designs show colours or spacing the product never renders.
In a design system's design library, what are overridden and detached component instances, and why do they cause drift between design and code?
basics
~20 sAn overridden instance keeps its link to the library component but changes some properties locally; a detached one cuts the link and becomes loose shapes. Style overrides and detachments stop following library updates and depict components that code does not have.
In a design system, why do teams lint against raw color and spacing values in product code, and what should the rule suggest instead?
basics
~20 sRaw values bypass tokens, so themes, modes and system updates skip them. A lint rule catches them as code is written and suggests the token for that role — not auto-applied, since one value can serve several roles.