Skip to main content
🎨 CSS as a design system·Module B8 · Lesson 1
TaskBuild a small layered system. @layer base, components. @layer base { body { font-family: system-ui, sans-serif; padding: 24px; } }. @layer components { .card { padding: 20px; background: #eef; border-radius: 8px; } .card h2 { margin: 0; color: #3B82F6; } }. Demo: a card with an h2.

@layer: explicit cascade priority

100 XP7 min
Theory

The cascade you control instead of fight

@layer reset, base, components, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
}

@layer base {
  body { font-family: system-ui, sans-serif; }
  a { color: #3B82F6; }
}

@layer components {
  .card { padding: 16px; border-radius: 8px; }
}

@layer utilities {
  .text-center { text-align: center; }
}

The order at the top declares priority: utilities > components > base > reset. Unlayered styles WIN over layered ones — like an "unlayered" implicit top.

Why this beats specificity wars

Before @layer, you needed !important to override Bootstrap from your code. Now:

@layer bootstrap { /* their styles */ }
@layer overrides { /* yours, always wins */ }

Your overrides ALWAYS beat bootstrap's, regardless of specificity inside each layer. No !important needed.

The classic "5-layer" project structure

  1. @layer reset — the modern reset (box-sizing, margin: 0).
  2. @layer base — element defaults (body, h1, a).
  3. @layer tokens — custom properties (:root variables).
  4. @layer components — .card, .button, .alert.
  5. @layer utilities — Tailwind-style atomic classes.

Decide the order ONCE at the top of your main stylesheet. The rest of the project is conflict-free.

Browser support

All evergreen browsers since 2022. Safe everywhere.

🔒

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial — card required, cancel anytime.

Sign up — free trial →

First 15 lessons in each track are free. No card needed for those.

PreviousNext lesson →

Get one Python or web tip a day — by email

Short, hand-written, no spam. Unsubscribe in one click.