Most applications nowadays have dark mode: your command line, your IDE, your browser, etc. Why would your site be any different? Your website can also go dark when the visitor's browser has dark mode enabled. It's easier than you think. I'll show you how.
@media (prefers-color-scheme: dark) {
body {
background-color: black;
color: #ccc;
}
}
Hello darkness, my old friend.
This CSS snippet overrides styles for users' dark theme. The best thing is that this feature is already available in Chrome 76, Firefox 67, Safari 12.1, and Opera 62.
You can optionally check if the browser supports it using Javascript.
if (window.matchMedia('(prefers-color-scheme)').media === 'not all') {
console.log('Browser doesn\'t support dark mode');
}
I hope this short snippet helped to enhance your site's style.
Happy coding 🚀
Top comments (9)
What's more likely to happen in this case is that you'll have color set on specific parts of the site for different things. So the better thing to do is to use CSS variables.
Simple but effective. Thanks for sharing
Just to enrich the conversation I want to add that another consideration is that if you are using
styled-components
a dark theme might be accomplished with something in a similar way, for example:When I change to dark theme in Firefox then this line:
window.matchMedia("(prefers-color-scheme: dark)").matches
still returns false.
So so slick. Love it
How to change block constanta and let to global scope javascript?
Awesome! Good work!
Mine is not working
Sorry, how do you activate the dark scheme?
howtogeek.com/359033/how-to-enable...