Skip to content
tezvyn:

CSS & Design Systems

Tailwind, CSS, accessibility, design tokens

78 bites

Test yourself: Top 30 advanced CSS & Design Systems interview questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Advanced everything in CSS & Design Systems

advanced1 min read

Performance concerns with the :has() selector

:has() forces upward and forward style invalidation on DOM changes, broad subjects are costly; mitigate by scoping the subject, avoiding deep or universal arguments, and limiting dynamic…

advanced1 min read

Building a container-query-driven card component

Declare a wrapper container with container-type, query it with @container, restyle the card's internal grid by container width, optionally use cqi units.

advanced2 min read

A federated design system governance model

Let the product team own the component as maintainers, with the core team setting standards, reviewing against a checklist, and owning the platform and tokens.

advanced2 min read

Driving and measuring design system adoption

Lower friction with migration paths and great docs, incentivize over mandate, and measure adoption via package usage, component coverage, and code analysis.

advanced2 min read

CI/CD pipeline for a design system monorepo

Install and cache, then parallel lint, type-check, unit and visual tests, then build, and on main a release job bumps versions and publishes.

advanced2 min read

Respecting prefers-reduced-motion in a design system

Gate CSS animations behind the media query, read the same preference in JS via matchMedia, and centralize motion tokens.

advanced1 min read

Building an accessible combobox with ARIA

Input has role combobox with aria-expanded and aria-controls, listbox holds options, and choose aria-activedescendant to keep focus in the input versus roving DOM focus.

advanced1 min read

Shadow DOM encapsulation vs CSS Modules

Shadow DOM creates a separate tree blocking selectors both ways, CSS Modules only rename classes, and global styles need explicit bridges.

advanced1 min read

The polymorphic 'as' prop pattern

Render the element from an as prop, infer props from the chosen element, and forward refs.

advanced2 min read

Integrating design tokens with Tailwind CSS

Feed tokens into Tailwind's theme config (or v4 CSS theme) so utilities derive from one source; a parallel setup causes drift.

advanced1 min read

Modeling responsive design tokens

Model a token as a breakpoint-to-value map, transform into a base custom property redefined in media queries, components use one var per viewport.

advanced2 min read

Token architecture for white-label multi-brand

A shared semantic schema, per-brand primitive and mapping overrides, a build step emitting one bundle per brand, components consume stable semantic names.

advanced1 min read

Architect themes on a token foundation

Separate primitive tokens from semantic alias tokens that themes redefine, emit semantics as custom properties per theme scope, components use only semantics.

advanced1 min read

Versioning a design system library

Monolithic versioning is simple and coherent but couples unrelated changes; independent versioning gives granular upgrades but adds tooling complexity.

advanced1 min read

Support a one-off that deviates from the system

Offer sanctioned escape hatches like custom-property overrides, scope the one-off to the app not the library, track it for promotion or removal.

advanced1 min read

Build a custom PostCSS plugin (px to rem)

Export a plugin returning visitor hooks, walk Declaration nodes, parse and rewrite px values to rem against a base size.

advanced1 min read

Diagnose and shrink a large CSS bundle

Purge unused selectors, minify and merge with cssnano, split critical CSS and code-split per route.

advanced1 min read

Build a scalable Sass theming system

Store themes as maps, emit values as CSS custom properties so runtime switching needs no recompile, generate per-theme scopes via mixins.

advanced1 min read

Using :is() and :where() to manage specificity

:is() groups selectors and takes its most specific argument's specificity, :where() does the same grouping but contributes zero specificity, ideal for easily overridable defaults.

advanced2 min read

Utility-first versus semantic CSS trade-offs

Utility-first gives speed, small purged bundles, and no naming overhead but verbose markup; semantic BEM gives readable markup and clear boundaries but naming and dead-CSS risk.

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