📖 Scenario: You want to create a simple webpage that changes its background and text colors when the user switches their device or browser to dark mode.
🎯 Goal: Build a webpage with a heading and a paragraph. The background should be white with black text in light mode, and switch to a dark background with white text in dark mode using Tailwind CSS dark variant.
📋 What You'll Learn
Use Tailwind CSS classes to style the page
Use the dark: variant to change background and text colors
Include a heading with the text 'Welcome to Dark Mode Demo'
Include a paragraph with the text 'This text changes color based on the theme.'
Ensure the page uses semantic HTML5 elements
💡 Why This Matters
🌍 Real World
Many websites today support dark mode to reduce eye strain and save device battery. Using Tailwind CSS dark variants makes it easy to style pages for both light and dark themes.
💼 Career
Understanding how to implement dark mode with Tailwind CSS is a valuable skill for frontend developers working on modern, accessible, and user-friendly websites.
Progress0 / 4 steps
1
Create the HTML skeleton with heading and paragraph
Create a main element containing an h1 with the text 'Welcome to Dark Mode Demo' and a p with the text 'This text changes color based on the theme.'
Tailwind
Hint
Use semantic tags: <main>, <h1>, and <p>.
2
Add Tailwind classes for light mode background and text colors
Add Tailwind CSS classes to the main element to set the background color to white using bg-white and the text color to black using text-black.
Tailwind
Hint
Use bg-white for background and text-black for text color on the main element.
3
Add Tailwind dark variant classes for dark mode colors
Add Tailwind CSS dark variant classes to the main element to change the background color to bg-gray-900 and the text color to text-white when dark mode is active. Use dark:bg-gray-900 and dark:text-white.
Tailwind
Hint
Use dark:bg-gray-900 and dark:text-white on the main element to style dark mode.
4
Add dark class to html for manual dark mode toggle
Add the class="dark" attribute to the <html> tag to enable dark mode styling manually.
Tailwind
Hint
Adding class="dark" to the <html> tag forces dark mode styles to apply.
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
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.
Step 2: Compare with other prefixes
Other prefixes like hover: or sm: apply styles on hover or small screens, not related to dark mode.
Final Answer:
Applies styles only when dark mode is active -> Option A
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
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.
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.
Final Answer:
dark:text-white -> Option D
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?
The button has bg-white and dark:bg-gray-800, so in dark mode background changes to gray-800.
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.
Final Answer:
Gray-800 background with white text -> Option A
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
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.
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.
Final Answer:
You forgot to enable dark mode in Tailwind config -> Option C
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
Step 1: Identify light mode styles
Light mode requires white background and black text, so bg-white text-black are correct for light mode.
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.
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.
Final Answer:
bg-white text-black dark:bg-gray-900 dark:text-gray-300 -> Option B