Hello everyone ๐, I hope you are doing great.
So, Today you are going to learn how to Add dark/light theme to your website using only CSS ๐.
HTML
Let's first set up our HTML.
<input id="toggle-theme" class="toggle-theme" type="checkbox" checked/>
<main >
<label for="toggle-theme" class="toggle-theme-label">
<span>๐ก</span>
</label>
<article>
<header>Dark / Light Mode Using Only CSS</header>
<p>...</p>
</article>
</main>
CSS
Now lets set the background-colour
and text colour
of our HTML using CSS variables.
:root {
--bg-color: #edf2f4;
--text-color: #011627;
}
main {
padding: 24px;
background-color: var(--bg-color);
color: var(--text-color);
}
Now, lets set up the checkbox functionality when the checkbox is checked.
/* all the magic happing here โจ*/
input[type="checkbox"]:checked ~ main {
--bg-color: #011627;
--text-color: #edf2f4;
}
That's It ๐.
Example
๐ Further Reading:
Thanks for reading! My name is Bipin Rajbhar; I love helping people to learn new skills ๐. You can follow me on Twitter if youโd like to be notified about new articles and resources.
Top comments (5)
I found an interesting tool to help with this the other day on ProductHunt: nighteye.app/dark-css-generator/
It worked pretty well! Not sure how maintainable it is to have a separate stylesheet. But I was very impressed with the results they created.
I wish all websites and docs had this light bulb :) Good stuff!
Awesome
๐คฏ๐คฏ๐คฏ Are there any drawbacks to using this as opposed to more involved solutions?
maybe or may not ๐ค
If you have answer let me know in the comment ๐