Everything in Design Systems, page 4
Shadow DOM accessibility: focus and cross-boundary ARIA
IDREF ARIA can't cross the shadow boundary, so aria-labelledby and aria-activedescendant break; delegatesFocus and ElementInternals/ARIAMixin help.
Adapting CSS for Forced Colors Mode
Use semantic HTML and system color keywords, the forced-colors media query, forced-color-adjust sparingly.
Accessible toasts with ARIA live regions
A persistent live region, polite vs assertive by urgency, role status or alert, content injected after mount.
Enforcing an accessible name on icon-only buttons
Require aria-label via the type system for icon-only variants, warn at runtime, decorate the icon as aria-hidden.
ARIA roles and keyboard nav for a Tabs component
Tablist, tab, tabpanel roles with aria-selected and aria-controls; arrow keys move tabs, Tab moves to the panel via roving tabindex.
Enforcing WCAG color contrast programmatically
Pre-validate token pairs, expose only safe semantic combos, lint and test contrast in CI.
Managing keyboard focus in an accessible Modal
Move focus in on open, trap Tab inside, close on Escape, restore focus to the trigger on close.
Minimizing library bundle-size impact on consumers
Track size in CI with size-limit, support granular imports, externalize peers, lazy-load heavy parts, audit with bundle analyzers.
Building a visual regression testing pipeline
Snapshot Storybook stories per PR, freeze nondeterminism, set diff thresholds, manage baselines via approvals.
Syncing design tokens from Figma to code
Export Figma variables to a token spec, transform with Style Dictionary into platform outputs, automate via CI.
Bundling a library for tree-shaking and multiple formats
Externalize peers, emit ESM and CJS, preserve modules for tree-shaking, set sideEffects false, ship types.
Releasing a breaking change without forcing upgrades
Ship a major bump, keep the old major published, document migration, automate with Changesets.
Monorepo vs polyrepo for a design system
Atomic cross-package changes and shared tooling versus build orchestration, caching, and versioning complexity.
CSS-in-JS vs pre-compiled CSS for distribution
Runtime cost and dynamic theming of CSS-in-JS versus cacheability and SSR simplicity of static CSS.
Storybook's role in design system infrastructure
Isolated development, living documentation, visual and interaction testing, shared review surface.
Publishing a component to a private NPM registry
Configure package.json fields and scoped name, build dist, set registry auth, npm publish with access restricted.
Measuring design system documentation effectiveness
Search-with-no-results, time-to-first-component, support-ticket deflection, tied to analytics and registry data.
Documenting component anti-patterns and don'ts
Paired do/don't examples, explain the why, enforce with lint rules.
Auto-generating component API docs from source
Extract types via react-docgen-typescript, surface in Storybook ArgsTable, enrich with JSDoc.
Structuring Storybook stories for visual states
One named story per state with explicit args, plus argTypes and controls.
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