More in CSS & Design Systems — page 7

How do CSS Custom Properties manage a design system color palette?
WHAT IT TESTS: Tokenization and cascade scoping. ANSWER OUTLINE: Define --color-primary on :root, use var() for buttons and headings, mention fallbacks. RED FLAG: Confusing CSS variables with SASS or using only local scopes.

What is font-display and how do swap and block differ?
This tests knowledge of the font display timeline. Swap shows fallback immediately then swaps in custom font, while block hides text for a short block period before fallback. A red flag is claiming swap prevents layout shift or that block is superior.

Create a vertical black gradient overlay on a background image
WHAT IT TESTS: CSS gradients, alpha channels, and layering. ANSWER: Use linear-gradient with rgba black stops, layer it over the image via stacked backgrounds or a pseudo-element. RED FLAG: Adding an extra div instead of native background stacking.

Which CSS background properties make a hero image cover its container?
Tests background-size keywords and aspect-ratio behavior. Lead with cover, note it fills the container by cropping while preserving ratio, unlike contain. Red flag: recommending 100% 100% or explicit lengths, which stretch and distort the image.

Explain em, rem, px and why rem is preferred for font sizing
This tests CSS unit semantics and accessibility. px is absolute; em compounds against its parent; rem is root-relative and predictable. rem respects user browser font settings without nesting issues.

How do you declare a custom font and apply it to headings?
This tests @font-face usage for custom web fonts. A good answer declares a font-family name and src URL inside @font-face, then applies that family to heading selectors.

Set paragraph text blue and background light grey, compare HEX, RGB, HSL
WHAT IT TESTS: CSS color syntax and tradeoffs between HEX, RGB, and HSL. ANSWER OUTLINE: Set color and background-color; HEX is compact, RGB is explicit, HSL is intuitive for lightness/hue. RED FLAG: Claiming HEX lacks transparency or equating RGB and HSL.

Explain :is() vs :where() specificity and when to pick :where()
Tests whether you treat specificity as architecture, not just syntax. :where() has zero specificity; :is() adopts the most specific argument's weight. Choose :where() for base resets or utility classes designed to be overridden. Red flag: calling them equal.

How is CSS specificity calculated for a complex selector?
This tests ID-CLASS-TYPE algorithm fluency. A strong answer gives the three-column tally, counts IDs, classes or attributes, and types in order, and notes combinators add zero. A red flag is counting combinators or mixing inline styles into selector scores.

What is margin collapsing? Give a sibling scenario and prevention.
This tests understanding of vertical margin combination in normal flow. A strong answer defines collapsing, gives a sibling paragraph example where the larger margin wins, and names a block formatting context or padding as prevention.

Describe the full CSS cascade precedence order
This tests deep cascade knowledge beyond specificity. A strong answer lists the six origins in order, notes !important reverses them, then layers, specificity, and source order.

How do class and ID selectors differ in specificity and use case?
WHAT IT TESTS: Your grasp of CSS specificity weights and selector architecture. ANSWER OUTLINE: IDs are 1-0-0 and meant for unique elements; classes are 0-1-0 and reusable. RED FLAG: Saying order alone decides specificity or using IDs for repeated components.

What color wins when an ID and class rule conflict?
WHAT IT TESTS: Your grasp of CSS specificity scoring beyond source order. ANSWER OUTLINE: Red wins; an ID scores 1-0-0 while a class scores 0-1-0, so the ID rule beats the class rule. RED FLAG: Saying the last declared rule wins or that order matters.

Explain the CSS box model: content-box vs border-box
Tests if you understand how width maps to rendered size. Good answers contrast content-box (350px + 10px border = 370px) with border-box (stays 350px) and note that four width:25% items break under content-box. Red flag: saying border-box includes margin.
Design System Roadmap: Sequence Adoption Over Completeness
A design system roadmap sequences components by business impact, not visual completeness, to stop teams rebuilding the same UI. Use it when multiple squads duplicate buttons and forms. The footgun is a perfect Figma library engineers never adopt.
Design System Guild: Cross-Team Governance
A design system guild lets squads co-own the system, not a central team alone. It scales when one team cannot cover every surface. The footgun is voluntary membership without decision rights; it devolves into a committee that ships nothing.
Private NPM Registry for Internal Packages
A private registry hosts packages so teams npm install internal design systems like public dependencies. It matters when you split a monolith into shared libraries. The footgun is skipping scoped names and auth, which risks leaking code to the public registry.
Cross-Browser Testing Automation
Rendering engines disagree, so your CSS may break in Safari while Chrome looks fine. Automation runs your UI across real browsers in CI to catch visual drift early. The footgun is testing every pixel, which breeds brittle suites that teams eventually ignore.
Auto-Generated Changelogs for Design Systems
Automated changelog generation turns structured commits into release notes without hand editing. It rescues teams when design systems ship frequent token or component updates. The footgun is that sloppy commits produce useless logs so discipline beats tooling.
Tiered Token Architecture in CSS
Tiered tokens layer CSS variables as raw values, semantic aliases, and component bindings. Use them when one rebrand must update hundreds of elements. The footgun is skipping aliases and binding hex codes directly to components, locking you into manual…