DEV Community

Easy way to use Dark Mode in Next.js + Tailwind

Thomas Ledoux on January 20, 2021

Yesterday I was working on my personal website, and I really wanted to add a dark mode toggle. I already converted my site to use Tailwind before, ...
Collapse
 
shrihari profile image
Shrihari Mohan

Was new to react & next , was confused with using contexts on _document.tsx , because at the tailwind docs it said add class to HTML.
This is a life saver. ♥️

So i went to docs of next-theme. and missed the attribute = class part (wasted 10 mins of life)

By the way , Thanks , really appreciate it.

Collapse
 
peteristhegreat profile image
Peter H

Perfect. Thank you. Much easier than a lot of other solutions.

Collapse
 
mdfasadik profile image
Md F A Sadik

Thanks for sharing the wonderful idea ❤️

Collapse
 
thomasledoux1 profile image
Thomas Ledoux

You're welcome!

Collapse
 
rjitsu profile image
Rishav Jadon • Edited

I have done everything said here, and i still cannot see the dark mode happening. It changes if I set my system to dark mode, but I've set the darkMode property in tailwind.config.js to "class". Been googling for hours :(

Collapse
 
thomasledoux1 profile image
Thomas Ledoux

Hi Rishav, do you have a repository/codesandbox I can check out?

Collapse
 
rjitsu profile image
Rishav Jadon
Thread Thread
 
thomasledoux1 profile image
Thomas Ledoux

I think you could move the ThemeProvider in github.com/rjitsu/cssKenpai-v2/blo... to the top level of the rendering. Maybe that might help to get the <div className="dark:bg-gray-700"> part working?

Thread Thread
 
rjitsu profile image
Rishav Jadon

Great, that fixed it, thanks so much! I thought the ThemeProvider could only have Component as it's children, that's why I didn't try this yet. Thanks.

Thread Thread
 
thomasledoux1 profile image
Thomas Ledoux

Happy to hear that! Glad to help

Collapse
 
daviddalbusco profile image
David Dal Busco

Next + Tailwind = Sweet tech stack!

Thanks for the share Thomas 👍

Collapse
 
thomasledoux1 profile image
Thomas Ledoux

I couldn't agree more :)
My pleasure!

Collapse
 
daviddalbusco profile image
David Dal Busco

I know it was a good idea to keep your post on the side, just used it 😉

Thx again Thomas!

Thread Thread
 
thomasledoux1 profile image
Thomas Ledoux

Excited to see the result!

Collapse
 
kevinalfito69 profile image
Kevin Alfito

use dark: is not working so i use
const {theme, setTheme} = useTheme()
className={theme === 'dark' ? 'text-blue-500' : 'text-white'}

is there any solution?

Collapse
 
kevinalfito69 profile image
Kevin Alfito

I found my problem, i didn't add code
module.exports = {
darkMode: 'class',
// ...
}

to tailwind.config.js

Collapse
 
karanpratapsingh profile image
Karan Pratap Singh

This helped, thanks

Collapse
 
thomasledoux1 profile image
Thomas Ledoux

Glad it helped!

Collapse
 
aliif profile image
Aliif

thx