Skip to content

🌓 Pure JS script allow you to simply switch your web interface in dark mode.

License

Notifications You must be signed in to change notification settings

Airmime/dark-mode-switcher

Repository files navigation

dark-mode-switcher

Pure JS allow you to switch your web interface in dark mode.

Informations

This script has been developed in parallel with the minstyle.io project, in order to facilitate the integration of the button to change display mode.

Version

dark-mode-switcher V0.0.1

Get Started

To install the script, three options are available :

The first possibility is to download dist/dark.js file, to integrate it into a web page :

<script src="../dist/dark.min.js"></script>

You can also upload the script with NPM or Yarn :

npm :

$ npm install dark-mode-switcher

yarn :

$ yarn add dark-mode-switcher

How it works

First, the script will inject on your web page an HTML structure, allowing to display a fixed button. It will allow the user to change the Dark/Light display mode.

By default, the theme displayed will be the one set on the operating system. Nevertheless, if the user wishes to change the display mode, a cookie will be created in order to keep this choice.

Changing the display mode changes the data-theme attribute of the <html> tag like that :

<html lang="en"> <!-- For light mode. same as : <html lang="en" data-theme="light"> -->
<html lang="en" data-theme="dark"> <!-- For dark mode. -->

What about the CSS?

In order to develop a web page with a dark theme, the use of CSS variables is necessary, such as the following :

html{ /* same as : html[data-theme='light'] */
  --default-bg: #ffffff;
  --default-font-color: #000000;
}

html[data-theme='dark'] {
  --default-bg: #000000;
  --default-font-color: #ffffff;
}

A detailed example is available here.

You can also use the CSS framework minstyle.io, integrating the management of the dark mode.

About

🌓 Pure JS script allow you to simply switch your web interface in dark mode.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published