@danestves/tailwindcss-darkmode v2.0.1
Tailwindcss DarkMode
Tailwind CSS plugin that adds variants for DarkMode.
Installation
# npm
npm install @danestves/tailwindcss-darkmode --save-dev
# yarn
yarn add --dev @danestves/tailwindcss-darkmodeAdd the plugin to the plugins array in your tailwind.config.js file.
module.exports = {
// ...
plugins: [
// ...
require('@danestves/tailwindcss-darkmode')()
]
};Actually the function receive two parameters:
prefix: default todark.activatorClass: default todark-mode.
So if you want to rename the activatorClass you can make it as simple as:
module.exports = {
// ...
plugins: [
// ...
require('@danestves/tailwindcss-darkmode')('dark', 'my-custom-activator-class')
]
};Variants generated
Note: These variants are activated when either the html or body tag has the class dark-mode. But you can change it.
darkdark:hoverdark:focusdark:activedark:disableddark:odddark:evendark:group-hoverdark:focus-within
<div class="bg-gray-100 dark:bg-gray-800 border-t-4 border-green-500">
<nav class="flex flex-wrap justify-end items-center p-4">
<a class="text-gray-700 hover:bg-gray-300 dark:hover:bg-transparent dark:focus:text-green-500" href="#">Text</a>
</nav>
</div>🚨 Dark variants must be enabled on each utility in your tailwind.config.js file. 🚨
variants: {
backgroundColor: [
"responsive",
"hover",
"focus",
"dark",
"dark:hover",
"dark:focus"
],
borderColor: [
"responsive",
"hover",
"focus",
"dark",
"dark:hover",
"dark:focus"
],
textColor: [
"responsive",
"hover",
"focus",
"group-hover",
"dark",
"dark:hover",
"dark:focus",
"dark:group-hover",
"focus-within",
"dark:focus-within",
"dark:odd",
"dark:even",
"dark:active",
"dark:disabled"
],
borderStyle: ["responsive", "dark"]
}You can check the full list of default variants in the Tailwind default config file.
Customize class name prefix for variants
dark is used as default prefix for the variants that are generated. It´s possible to change dark for whatever you want, just pass any string as a param. For example, with prefers-dark:
module.exports = {
// ...
plugins: [
// ...
require('tailwindcss-prefers-dark-mode')('prefers-dark')
]
};And variants must be named with the new prefix:
variants: {
textColor: [
'responsive',
'hover',
'focus',
'group-hover',
'prefers-dark',
'prefers-dark:hover',
'prefers-dark:focus',
'prefers-dark:group-hover',
'focus-within',
'prefers-dark:focus-within'
];
}