Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Very simple and lightweight utility to manage dark and light schemes from vanilla JavaScript. Call it with your button as a parameter and you're all set.

Notifications You must be signed in to change notification settings

alotropico/dark-mode-attribute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dark Mode Attribute

Very simple and lightweight utility to manage dark and light schemes from vanilla JavaScript.

Call it with your button as a parameter and you're all set: dark-mode-attribute(toggleButton)

When no default value is provided, the module checks if the user saved a preference from a previous session.

If they haven't, it looks for the user's system preference.

Installation

npm i --save-dev @alotropico/dark-mode-attribute

Usage

In your JavaScript, call dark-mode-attribute with your toggle-dark-mode element as a parameter:

import * as dma from '@alotropico/dark-mode-attribute'

const toggleButton = document.querySelector('.my-button')

dma(toggleButton)

Your CSS:

body {
    background-color: white;
    color: black;
}
body.dark {
    background-color: black;
    color: white;
}
.my-button:after {
    content: '🌞'
}
body.dark .my-button:after {
    content: '🌚'
}

Options

By default, it adds the dark class to the body element, but you can customize it.

Use a custom class:

dma(toggleButton, 'dark-mode')

Instead of a class, let it be a custom attribute:

dma(toggleButton, 'dark-mode', 'data-scheme')
body[data-scheme="dark-mode"] {
    background-color: black;
}

Instead of the body, apply the class/attribute to a custom element:

const container = document.body.querySelector('.container')

dma(toggleButton, 'dark-mode', 'data-scheme', container)

Pass a default value, which overrides the built-in detection and storage methods:

dma(toggleButton, 'dark', 'class', container, true)

About

Very simple and lightweight utility to manage dark and light schemes from vanilla JavaScript. Call it with your button as a parameter and you're all set.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published