Dark Theme in your website with one line of Js Code

Subscribe to my newsletter and never miss my upcoming articles

In the present context, Dark Theme is like a vital thing for any website. The first thing I search while visiting the website is the theme toggler. Seriously, it is very uneasy to see the light-themed website now, at least for me.

So recently I implemented Dark Theme in my portfolio site. The funny thing is I didn't have to write the whole another CSS file for a dark theme. So let us begin on how you can implement the dark theme on your website using one line of code.

At first, inside your head tag

insert the following script and link files.

<script src="https://binayak.codes/dark-theme-switcher/js/dark-theme-switcher.js"></script>

Now place following code after closing the body tag


<script>
// Basic Usage
new ThemeSwitcherGenerator().init();

// Advance Usage 
new ThemeSwitcherGenerator({
  transition: 100,
  glow: true, 
  glowColor: '#fa4d5f',
  backgroundColor: '#fafafa',
  boxShadow: 'none',
  sunIconUrl: 'https://link.to.icon/sun.png',
  moonIconUrl: 'https://link.to.icon/moon.png',
  size: 40,
  contextMenuOptions: {
    width: '100px',
    height: '30px',
    padding: '15px',
    textColor: '#121212',
    background: '#ccc',
    boxShadow: '0px 5px 10px 0px rgba(77,77,77,0.16)',
    borderRadius: '15px'
  },
  //useDefaultContextMenu: true // Disable context menu provided by dark-theme-switcher
}).init();
</script>

Install it via npm, npm i dark-theme-switcher

And that's it, After doing that you will see a moon icon floating in website

Light Theme

After Clicking in that glowy floating icon, your website theme is changed

That glowy floating icon is user-customizable

Dark Theme

The best part about this glowy icon is, visitors of your website can customize its location. Its draggable element. And it stores the current location where it is dragged and saves it.

Alt Text

You better use it yourself to see how it works Docs Of Dark Theme

Give your judgments!

Edit: Thanks to Luiz Filipe da Silva for making it available as node package, and awesome contribution

Luiz Filipe da Silva's photo

Good idea! I just forked the repository and I hope to contribute with it. Thanks for sharing!

Anjal Binayak's photo

Thanks, I would love that

NELSON MICHAEL's photo

this is so awesome, thanks for sharing.

Anjal Binayak's photo

Pleasure is mine mate

Rishab Kumar's photo

And you my friend, are a lifesaver! 😉

Anjal Binayak's photo

I am happy , you appreciated it.

Astha Srivastava's photo

This is really amazing.. I tried and it worked perfectly fine.. Thanks for such great content. ❤

Anjal Binayak's photo

The pleasure is mine.

Edidiong Asikpo's photo

This is really amazing. I am going to try it out. Thanks for sharing.

Victoria Lo's photo

Very cool! Thanks! I hope to use it in a project someday :)

Anjal Binayak's photo

Thank you, I am happy you liked it.

Tapas Adhikary's photo

Great one Anjal.. I am gonna try it sooner for a project I am working on. Any plans to make it available as npm?

Anjal Binayak's photo

Thanks, Tapas. It may take some time, but yes for sure.

Godstime Onyibe's photo

Please could not add it in my web page. Am using it directly in the browser. Please some some one should help out.

Show +2 replies
Godstime Onyibe's photo

Luiz Filipe da Silva Thanks i have applied it and is working great 😍💕