intermediate

@layer

Organize reset, base, components, utilities, and overrides with explicit cascade layer order.

`@layer` adds an explicit ordering step before specificity. Declare global order once, then assign rules to layers such as reset, base, components, utilities, and overrides.

					@layer reset, base, components, utilities, overrides;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
}
@layer components {
  .btn { padding: 0.5rem 1rem; }
}
@layer utilities {
  .hidden { display: none !important; }
}

/* Unlayered author styles beat all layered normal styles */
.alert { border: 2px solid red; }
				

Low-specificity utilities in a later layer can beat higher-specificity component rules — by design. Unlayered styles outrank layered normal rules, which surprises migrations.

On interviews: how layers differ from source order and why they reduce specificity escalation.

The trade-off is explicit layer governance versus surprise when unlayered styles outrank layered rules.

Common pitfalls: random layer names without governance; dumping new code unlayered during adoption.

Checklist:

  • Declare layer order at entry point.
  • Place resets and utilities deliberately.
  • Know unlayered precedence rules.
  • Document override and !important policy.