skip to content

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 pageshow

explore

questions

128 · 8 sections

How does a design system differ from a component library, a style guide, a pattern library and a UI kit?

level: juniorimportance: must knowfreq 55%
basics
~20 s

A 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.

open as a page

What are the trade-offs between staffing a design system with a dedicated team, part-time contributors, or a hybrid of both?

level: middleimportance: must knowfreq 40%
basics
~20 s

A 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.

open as a page

What value does a design system promise an organisation, and what costs must that value outweigh?

level: juniorimportance: should knowfreq 40%
basics
~20 s

A 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.

open as a page

Which disciplines does a design-system team need besides engineers and visual designers, and what does each one contribute?

level: juniorimportance: should knowfreq 35%
basics
~20 s

Beyond 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.

open as a page

How would you measure the return on investment of a design system, and why is that measurement hard?

level: middleimportance: should knowfreq 38%
basics
~20 s

Compare 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.

open as a page

In a design system effort, what are the trade-offs between building the system greenfield and extracting it from a live product's UI?

level: middleimportance: must knowfreq 45%
basics
~20 s

Extraction 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.

open as a page

In design system work, what is an interface inventory, and why run one before building shared components?

level: juniorimportance: should knowfreq 36%
basics
~20 s

An 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.

open as a page

When starting a design system, why should a team use published reference systems as input rather than adopt one wholesale as a template?

level: juniorimportance: should knowfreq 30%
basics
~20 s

A 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.

open as a page

When scoping a design system's first release for a freelance job marketplace, how do you decide which foundations and components to include?

level: middleimportance: should knowfreq 38%
basics
~20 s

Ship 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.

open as a page

When running an interface inventory of a course-registration portal, what does a screenshot audit catch that a code audit misses, and vice versa?

level: middleimportance: should knowfreq 30%
basics
~20 s

A 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.

open as a page

In a design system, why is changing a design token's value usually safe for consuming apps while renaming the same token breaks them?

level: juniorimportance: must knowfreq 58%
basics
~20 s

Consumers 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.

open as a page

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?

level: juniorimportance: must knowfreq 48%
basics
~20 s

In 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.

open as a page

For a design token, why should the name describe its intent rather than its value, and what breaks when a name spells its value?

level: juniorimportance: must knowfreq 62%
basics
~20 s

An 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.

open as a page

In a design system with primitive, semantic and component token tiers, what does each tier hold, and which tier should product screens reference?

level: juniorimportance: must knowfreq 64%
basics
~20 s

Primitive 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.

open as a page

In a design system, how do you rename a widely used design token without breaking consumers, and when can the old name be removed?

level: middleimportance: must knowfreq 50%
basics
~20 s

Add 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.

open as a page

In a design system, why should dark mode remap semantic token values instead of adding dark-specific styles to every component?

level: juniorimportance: must knowfreq 60%
basics
~20 s

Components 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.

open as a page

In a design system, what are the trade-offs between applying a theme at build time and switching it at runtime?

level: middleimportance: must knowfreq 52%
basics
~20 s

Build-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.

open as a page

In a recruiting app with a dark-mode toggle, how should the in-app choice relate to the operating system's appearance preference?

level: middleimportance: must knowfreq 50%
basics
~20 s

Default 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.

open as a page

In a design system with compact and comfortable density modes, what may a density switch change, and what must stay fixed?

level: middleimportance: must knowfreq 55%
basics
~20 s

A 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.

open as a page

In design-system theming, how does supporting white-label clients differ from supporting a company's own several brands, and what does that change?

level: middleimportance: must knowfreq 45%
basics
~20 s

Multi-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.

open as a page

In a design system, what should a shared component's release-readiness checklist require beyond working code, and what does each item protect?

level: middleimportance: must knowfreq 52%
basics
~20 s

Beyond 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.

open as a page

In a design system, what sections belong in a shared component's spec, and what failure does each section prevent?

level: middleimportance: must knowfreq 48%
basics
~20 s

A 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.

open as a page

In a design system, what may a consuming team rely on when a component is labelled experimental, beta, stable or deprecated?

level: juniorimportance: should knowfreq 42%
basics
~20 s

Experimental 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.

open as a page

In a design system, why must a shared component clear a stricter release bar than a feature built for one product screen?

level: juniorimportance: should knowfreq 40%
basics
~20 s

A 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.

open as a page

In a component spec, why are variants and states documented separately, and is error a variant or a state?

level: juniorimportance: should knowfreq 42%
basics
~20 s

Variants 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.

open as a page

In a design system's documentation site, what sections should every component page share, and why use one fixed template for all of them?

level: middleimportance: must knowfreq 42%
basics
~20 s

Overview, 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.

open as a page

In a design system, why keep component documentation as code beside the component rather than in a separate wiki?

level: juniorimportance: should knowfreq 36%
basics
~20 s

Docs 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.

open as a page

In a design system's documentation site, why separate foundations, components and patterns, and what belongs in each section?

level: juniorimportance: should knowfreq 38%
basics
~20 s

Each 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.

open as a page

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?

level: juniorimportance: should knowfreq 38%
basics
~20 s

A 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.

open as a page

In a component library's documentation, why generate property tables from the source and render live examples instead of writing them by hand?

level: middleimportance: should knowfreq 33%
basics
~20 s

Hand-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.

open as a page

In a design system, why is a component deprecated first and removed later instead of being deleted in a single release?

level: juniorimportance: must knowfreq 38%
basics
~20 s

Deprecation 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.

open as a page

What should a design system's release notes contain so a consuming product team knows what changed and whether it must act?

level: juniorimportance: must knowfreq 38%
basics
~20 s

Changes 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.

open as a page

In a design system, how would you measure whether product teams have actually adopted it, and why is counting package installs not enough?

level: middleimportance: must knowfreq 42%
basics
~20 s

Measure 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.

open as a page

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?

level: seniorimportance: must knowfreq 42%
basics
~20 s

Keep 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.

open as a page

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?

level: seniorimportance: must knowfreq 36%
basics
~20 s

Map 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.

open as a page

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?

level: juniorimportance: must knowfreq 55%
basics
~20 s

A 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.

open as a page

In a design handoff for a cloud admin console's resource table, which behaviours must be annotated because a static mockup cannot show them?

level: middleimportance: must knowfreq 50%
basics
~20 s

Annotate 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.

open as a page

In a design system, how should design-file variables relate to the coded design tokens, and what goes wrong when they are maintained separately?

level: middleimportance: must knowfreq 40%
basics
~20 s

Design-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.

open as a page

In a design system's design library, what are overridden and detached component instances, and why do they cause drift between design and code?

level: juniorimportance: should knowfreq 42%
basics
~20 s

An 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.

open as a page

In a design system, why do teams lint against raw color and spacing values in product code, and what should the rule suggest instead?

level: juniorimportance: should knowfreq 40%
basics
~20 s

Raw 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.

open as a page