Everything in Design & UX, page 5
CSS custom properties versus Sass for theming
Custom properties are live and cascade for dynamic switching; Sass variables compile away.
Architecting a themeable React component library
A ThemeProvider supplying tokens through Context, components reading them, and CSS variables for performance.
Structuring tokens for brand and sub-brand inheritance
Tiered tokens (primitive, semantic, component), sub-brands override only semantic aliases, and references keep inheritance live.
Implementing light and dark mode on the web
CSS custom properties for color tokens, a data-theme attribute toggle, and prefers-color-scheme as default.
Automated enforcement of deprecated component removal
Lint rule failing new usages, codemods for existing ones, and a usage dashboard gating removal.
Coexisting major versions during migration
Scoped aliases or namespaced packages, isolated token scopes, and incremental migration.
Tracking design system component usage and versions
Static scan of code or lockfiles, a central reporting store, and a dashboard; data drives deprecation and roadmap.
First steps to deprecate a legacy component
Add a JSDoc @deprecated tag and IDE/console warning, document the migration, and keep the component working.
SemVer bump for a non-breaking bug fix
A backward-compatible bug fix is a PATCH, the third number; major is breaking, minor is new compatible features.
Quantifying the cost of a missing component
Scan repos for duplicate hand-rolled tables, count implementations and lines, estimate redundant build and maintenance hours plus defect rates.
Isolating the design system's velocity impact
Use comparison groups, difference-in-differences or before-after baselines, and control for confounders; cite mechanism data like component reuse.
Constructing a design system ROI formula
ROI equals (benefits minus cost) over cost; benefits from time saved, defect reduction, and faster onboarding; gather data via analytics and tickets.
Quantifying migration cost for a major release
Pre-release, scan codebases for affected usages and estimate engineer-hours; post-release, track actual upgrade lead time and effort.
Designing a UI consistency score
Combine signals like token vs hard-coded values, design-system vs off-system components, and override rates, then automate via AST scans and CI.
Tracking design system adoption technically
Scan codebases for component imports via AST, compute adoption versus off-system usage, and aggregate into a dashboard over time.
Governance model for specialized contributions
Define a governance model, RFC and shared-need gate, tiered intake (core vs community), CI and CODEOWNERS review, then versioned release.
Essential docs for onboarding a new team
Getting-started guide, per-component API and usage docs, design guidelines and tokens, plus changelog and migration notes.
Bug report to deployed fix workflow
Triage and reproduce, write a failing test, fix it, pass CI gates and review, then patch-release and notify.
Designing a component deprecation process
Announce with a replacement and timeline, mark deprecated with runtime and lint warnings, provide codemods, then remove only in a major release.
Classifying a visually breaking padding change
A layout-shifting padding change is effectively breaking, so major; release with visual diffs, a migration note, and a token or opt-in path.
We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.
See open roles