Tailwind CSS natively supports dark mode, and by setting it up and adding the class name dark
to HTML elements as shown below, you can enable dark:bg-black
:
<!-- Dark mode not enabled -->
<html>
<body>
<!-- Will be white -->
<div class="bg-white dark:bg-black">
<!-- ... -->
</div>
</body>
</html>
<!-- Dark mode enabled -->
<html class="dark">
<body>
<!-- Will be black -->
<div class="bg-white dark:bg-black">
<!-- ... -->
</div>
</body>
</html>
However, as it is, it does not recognize darker themes provided by external libraries as dark mode.
Specifically, let's say we want to use a theme like Synthwave
provided by DaisyUI.
If we follow the official configuration of DaisyUI, we can use the synthwave
theme with the following code:
<html data-theme="synthwave"></html>
<body>
<div class="bg-white dark:bg-black"> <!-- dark:bg-black not worked
<!-- ... -->
</div>
</body>
</html>
However, dark:bg-black
does not work.
How can we make Tailwind CSS recognize a darker custom theme like synthwave
as dark mode?
Setting up a custom theme as dark mode
The Tailwind CSS official documentation provides the following information:
Following this, we can configure the tailwind.config.js
file as follows:
/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: ['class', '[data-theme="synthwave"]'],
// ...
}
By adding '[data-theme="synthwave"]'
, we can make Tailwind CSS recognize the custom theme as dark mode. With this configuration, the code example above will work as intended:
<html data-theme="synthwave">
<body>
<div class="bg-white dark:bg-black"> <!-- dark:bg-black now working
<!-- ... -->
</div>
</body>
</html>
That's it!
Top comments (0)