Dark mode helps reduce eye strain in low light. Media-based dark mode changes the website style automatically based on user preference.
Media-based dark mode strategy in Tailwind
@media (prefers-color-scheme: dark) {
/* CSS rules for dark mode here */
}This CSS media query detects if the user prefers dark mode.
Tailwind uses the dark: variant to apply styles in dark mode.
@media (prefers-color-scheme: dark) {
body {
background-color: #111;
color: #eee;
}
}/* Tailwind config example */ module.exports = { darkMode: 'media', // other config }
<div class="bg-white dark:bg-gray-900 text-black dark:text-white">
Hello, dark mode!
</div>This example uses Tailwind CSS with media-based dark mode. The background and text colors change automatically if your system is set to dark mode.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Media-based Dark Mode Example</title> <script> tailwind.config = { darkMode: 'media' }; </script> <script src="https://cdn.tailwindcss.com"></script> </head> <body class="bg-white dark:bg-gray-900 text-black dark:text-white min-h-screen flex items-center justify-center"> <main class="text-center p-6 rounded-lg shadow-lg"> <h1 class="text-3xl font-bold mb-4">Welcome to Dark Mode</h1> <p class="text-lg">This page changes colors based on your system preference.</p> </main> </body> </html>
Test dark mode by changing your system or browser color scheme settings.
Use semantic HTML and good contrast colors for accessibility.
Tailwind's darkMode: 'media' is easy to set up and requires no JavaScript toggles.
Media-based dark mode uses CSS to detect user preference automatically.
Tailwind supports this with darkMode: 'media' in its config.
Use dark: prefix in Tailwind classes to style dark mode elements.
Practice
darkMode: 'media' in Tailwind CSS configuration do?Solution
Step 1: Understand Tailwind dark mode options
Tailwind can detect user preference automatically withdarkMode: 'media'.Step 2: Effect of
This setting applies dark styles only if the user's system prefers dark mode.darkMode: 'media'Final Answer:
It enables dark mode styles based on the user's system preference. -> Option AQuick Check:
darkMode: 'media' = automatic user preference [OK]
- Thinking it forces dark mode for all users
- Confusing 'media' with manual toggle
- Assuming it disables dark mode
Solution
Step 1: Understand Tailwind dark mode prefix
The correct prefix for dark mode styles isdark:, placed before the class.Step 2: Correct order for background colors
Normal background first, thendark:bg-*overrides in dark mode.Final Answer:
dark:bg-gray-800 bg-gray-200-> Option CQuick Check:
Usedark:prefix before class [OK]
dark: prefix before classes for dark mode [OK]- Using wrong prefix like 'darkmode:'
- Placing dark class after normal class incorrectly
- Writing 'bg-dark:' instead of 'dark:bg-'
{ darkMode: 'media' } and this HTML: <div class="bg-white dark:bg-black text-black dark:text-white">Hello</div>What background and text colors will appear if the user's system prefers dark mode?
Solution
Step 1: Check dark mode config
WithdarkMode: 'media', dark styles apply if system prefers dark mode.Step 2: Analyze classes in dark mode
dark:bg-blacksets background black,dark:text-whitesets text white in dark mode.Final Answer:
Background black, text white -> Option BQuick Check:
dark:bg-black + dark:text-white = black bg, white text [OK]
- Ignoring dark mode overrides
- Mixing text and background colors
- Assuming normal styles always show
{ darkMode: 'media' } and your HTML: <div class="bg-white darkmode:bg-black">Test</div>Why does the dark mode background not apply when system prefers dark mode?
Solution
Step 1: Check dark mode prefix usage
The correct prefix for dark mode classes isdark:, notdarkmode:.Step 2: Effect of wrong prefix
Usingdarkmode:bg-blackis invalid and ignored by Tailwind.Final Answer:
Because the prefix should bedark:, notdarkmode:-> Option AQuick Check:
Use exactdark:prefix for dark mode [OK]
dark: prefix, no variations [OK]- Typing 'darkmode:' instead of 'dark:'
- Changing config to 'class' unnecessarily
- Assuming normal classes override dark mode
Solution
Step 1: Understand responsive and dark mode prefixes
Tailwind applies prefixes from left to right:md:dark:means dark mode styles apply only on medium screens and up.Step 2: Analyze each option
bg-white md:dark:bg-gray-800usesmd:dark:bg-gray-800which applies dark background only on screens ≥768px and in dark mode.Final Answer:
bg-white md:dark:bg-gray-800-> Option DQuick Check:
Usemd:dark:to combine media query and dark mode [OK]
- Reversing prefix order like 'dark:md:'
- Applying dark mode without screen size condition
- Using unrelated classes that override styles
Ready to prove it?
Pass the test and this pattern moves unknown
