Bird
Raised Fist0
Tailwindmarkup~5 mins

Dark variant usage in Tailwind

Choose your learning style10 modes available
Introduction

Dark variant helps you make your website look good in dark mode. It changes colors when users prefer dark backgrounds.

You want your website to support dark mode automatically.
You want text or backgrounds to change color in dark mode for better reading.
You want buttons or links to look different in dark mode.
You want to improve user experience by respecting system color preferences.
Syntax
Tailwind
dark:<utility-class>

The dark: prefix applies styles only when dark mode is active.

You need to enable dark mode in your Tailwind config for this to work.

Examples
The background is white normally, but dark gray in dark mode.
Tailwind
<div class="bg-white dark:bg-gray-800">Content</div>
The text is black normally, but white in dark mode.
Tailwind
<p class="text-black dark:text-white">Hello</p>
The button is blue normally, but a darker blue in dark mode.
Tailwind
<button class="bg-blue-500 dark:bg-blue-700">Click me</button>
Sample Program

This example shows a box and button that change colors when dark mode is toggled. Click anywhere to switch modes.

Tailwind
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>Dark Variant Example</title>
  <script src="https://cdn.tailwindcss.com"></script>
  <script>
    tailwind.config = {
      darkMode: 'class'
    }
  </script>
  <style>
    /* Just to center content */
    body {
      display: flex;
      height: 100vh;
      justify-content: center;
      align-items: center;
      margin: 0;
    }
  </style>
</head>
<body class="bg-white dark:bg-gray-900">
  <div class="p-6 rounded-lg shadow-lg bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-gray-100">
    <h1 class="text-2xl font-bold mb-4">Dark Variant Example</h1>
    <p class="mb-2">This box changes colors based on dark mode.</p>
    <button class="px-4 py-2 bg-blue-600 dark:bg-blue-700 text-white dark:text-gray-900 rounded">
      Button
    </button>
  </div>
  <script>
    // Toggle dark mode on click anywhere
    document.body.addEventListener('click', () => {
      document.documentElement.classList.toggle('dark');
    });
  </script>
</body>
</html>
OutputSuccess
Important Notes

Dark mode must be enabled in Tailwind config with darkMode: 'class' or 'media'.

Using darkMode: 'class' means you control dark mode by adding/removing the dark class on html or body.

Using darkMode: 'media' applies dark styles automatically based on user system preferences.

Summary

The dark: prefix applies styles only in dark mode.

You must enable dark mode in Tailwind config to use dark variants.

Dark variants help make your site look good and readable in dark mode.

Practice

(1/5)
1. What does the dark: prefix do in Tailwind CSS?
easy
A. Applies styles only when dark mode is active
B. Applies styles only on hover
C. Applies styles only on small screens
D. Applies styles only when JavaScript is enabled

Solution

  1. Step 1: Understand the dark: prefix purpose

    The dark: prefix in Tailwind CSS is used to apply styles only when the website is in dark mode.
  2. Step 2: Compare with other prefixes

    Other prefixes like hover: or sm: apply styles on hover or small screens, not related to dark mode.
  3. Final Answer:

    Applies styles only when dark mode is active -> Option A
  4. Quick Check:

    dark: = dark mode styles [OK]
Hint: Remember dark: means styles for dark mode only [OK]
Common Mistakes:
  • Confusing dark: with hover: or responsive prefixes
  • Thinking dark: applies styles always
  • Not enabling dark mode in config
2. Which of the following is the correct syntax to change text color to white only in dark mode using Tailwind?
easy
A. text-white dark:text-black
B. dark-text-white
C. text-white:dark
D. dark:text-white

Solution

  1. Step 1: Identify correct dark mode syntax

    Tailwind uses dark: prefix before the utility class to apply styles in dark mode, so dark:text-white is correct.
  2. Step 2: Check other options for syntax errors

    text-white dark:text-black applies white text always and black text in dark mode, which is reversed. Options B and C have invalid syntax.
  3. Final Answer:

    dark:text-white -> Option D
  4. Quick Check:

    Correct dark mode prefix = dark: [OK]
Hint: Use dark: before utility class, no colon after class [OK]
Common Mistakes:
  • Placing :dark after class name
  • Using dash instead of colon in dark prefix
  • Reversing colors for dark and light modes
3. What will be the background color of the button when dark mode is enabled?
<button class="bg-white dark:bg-gray-800 text-black dark:text-white p-4">Click Me</button>
medium
A. Gray-800 background with white text
B. White background with white text
C. White background with black text
D. Gray-800 background with black text

Solution

  1. Step 1: Analyze classes for dark mode

    The button has bg-white and dark:bg-gray-800, so in dark mode background changes to gray-800.
  2. Step 2: Analyze text color in dark mode

    Text color is text-black normally and dark:text-white in dark mode, so text becomes white.
  3. Final Answer:

    Gray-800 background with white text -> Option A
  4. Quick Check:

    dark:bg-gray-800 + dark:text-white = Gray-800 background with white text [OK]
Hint: dark: overrides normal styles in dark mode [OK]
Common Mistakes:
  • Ignoring dark: prefix effects
  • Mixing text and background colors
  • Assuming colors stay same in dark mode
4. You wrote this code but dark mode styles are not applying:
<div class="dark:bg-black bg-white">Content</div>

What is the most likely reason?
medium
A. You should use dark-bg-black instead
B. The order of classes is wrong
C. You forgot to enable dark mode in Tailwind config
D. Dark mode styles only work on buttons

Solution

  1. Step 1: Check Tailwind dark mode setup

    Dark mode styles require enabling dark mode in Tailwind config file. Without it, dark: classes won't work.
  2. Step 2: Verify class syntax and usage

    Class order does not affect dark mode. dark-bg-black is invalid syntax. Dark mode works on any element, not just buttons.
  3. Final Answer:

    You forgot to enable dark mode in Tailwind config -> Option C
  4. Quick Check:

    Enable dark mode in config = dark styles work [OK]
Hint: Enable dark mode in config before using dark: classes [OK]
Common Mistakes:
  • Not enabling dark mode in tailwind.config.js
  • Using wrong class syntax for dark mode
  • Thinking dark mode only applies to certain elements
5. You want a card component that has a white background and black text in light mode, but in dark mode it should have a dark gray background and light gray text. Which Tailwind classes achieve this correctly?
<div class="?">Card Content</div>
hard
A. bg-gray-900 text-gray-300 dark:bg-white dark:text-black
B. bg-white text-black dark:bg-gray-900 dark:text-gray-300
C. bg-white dark:bg-gray-900 text-gray-300 dark:text-black
D. dark:bg-white dark:text-black bg-gray-900 text-gray-300

Solution

  1. Step 1: Identify light mode styles

    Light mode requires white background and black text, so bg-white text-black are correct for light mode.
  2. Step 2: Identify dark mode styles

    Dark mode requires dark gray background and light gray text, so dark:bg-gray-900 dark:text-gray-300 apply these styles in dark mode.
  3. Step 3: Check other options for correctness

    bg-gray-900 text-gray-300 dark:bg-white dark:text-black reverses light and dark mode colors. bg-white dark:bg-gray-900 text-gray-300 dark:text-black mixes text colors incorrectly. dark:bg-white dark:text-black bg-gray-900 text-gray-300 places dark mode classes before light mode, which is allowed but colors are reversed.
  4. Final Answer:

    bg-white text-black dark:bg-gray-900 dark:text-gray-300 -> Option B
  5. Quick Check:

    Light mode white/black + dark mode gray/gray = bg-white text-black dark:bg-gray-900 dark:text-gray-300 [OK]
Hint: Light mode classes first, dark: prefix for dark mode styles [OK]
Common Mistakes:
  • Swapping light and dark mode colors
  • Placing dark: classes incorrectly
  • Using wrong color shades for readability
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard