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
 
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
 
mdfasadik profile image
Md F A Sadik

Thanks for sharing the wonderful idea ❤️

Collapse
 
thomasledoux1 profile image
Thomas Ledoux

You're welcome!

Collapse
 
karanpratapsingh profile image
Karan Pratap Singh

This helped, thanks

Collapse
 
thomasledoux1 profile image
Thomas Ledoux

Glad it helped!

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
 
aliif profile image
Aliif

thx