Code Reference

Dark Mode

Tailwind · Reference cheat sheet

Dark Mode

Tailwind · Reference cheat sheet


📋 Overview

Dark mode uses the dark: variant. Strategy is either media-based (prefers-color-scheme) or class-based (class="dark" on a root element).

🔧 Core concepts

StrategyConfigToggle
mediadefault in many setupsOS preference
classdarkMode: 'class'Add/remove dark on <html>
selector (v4)custom selectorFramework-specific
PairExample
Surfacesbg-white dark:bg-zinc-900
Texttext-zinc-900 dark:text-zinc-100
Bordersborder-zinc-200 dark:border-zinc-700

💡 Examples

Class strategy config (v3):

export default {
  darkMode: "class",
  content: ["./src/**/*.{js,ts,jsx,tsx}"],
};

Markup:

<html class="dark">
  <body class="bg-white text-zinc-900 dark:bg-zinc-950 dark:text-zinc-50">
    ...
  </body>
</html>

Toggle sketch:

document.documentElement.classList.toggle("dark");

⚠️ Pitfalls

  • Forgetting to set darkMode: 'class' while toggling a class does nothing.
  • Flash of wrong theme on first paint — set class early (inline script) before CSS paints.
  • Not all colors need inversion; keep brand accents consistent.

On this page