Skip to main content
🎨 CSS as a design system·Module B5 · Lesson 10
TaskAdd color-scheme: light dark to :root. Body has background #fff, color #111 in light; dark overrides via prefers-color-scheme. Form has an input and a select — they pick up native dark/light styling automatically.

color-scheme + scrollbar colors

60 XP5 min
Theory

What color-scheme actually does

:root { color-scheme: light dark; }

Tells the browser "this page supports both modes." Browser then themes:

  • Scrollbars — light or dark variant matching the page.
  • Form controls<input>, <select>, <button> get dark or light native styling.
  • `<dialog>` backdrop — different default backdrop color.
  • Spell-check underlines — different colors for visibility.

Without color-scheme: light dark, you'd ship a dark page with bright white scrollbars and bright form controls — looks broken.

Per-element

.modal { color-scheme: dark; }

Force a region into one scheme regardless of the page setting. Useful for a modal that ignores OS preference.

Browser limitations

  • Custom-styled scrollbars override color-scheme.
  • Some Linux distros (older Firefox) don't honor it for native widgets.

In 2026: treat color-scheme: light dark on :root as a free win. Add it to every project.

🔒

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 10 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.