A simple custom element to toggle between a light and dark page color scheme.
- Toggle between a light and dark color scheme
- Considers system preference
- Persist user preference
npm install color-scheme-switch-element<script>
// Ensure the event listener is setup before the initial `color-scheme-switch` event gets dispatched.
document.addEventListener('color-scheme-switch', event => {
const colorScheme = event.target.value;
// Set the page color scheme e.g
document.documentElement.style.setProperty('color-scheme', colorScheme);
// ...
});
</script>
<script type="module" async blocking="render" src="https://unpkg.com/color-scheme-switch-element@latest/dist/color-scheme-switch-element.js"></script><color-scheme-switch title="Toggle light & dark color scheme">
<!-- ... -->
</color-scheme-switch>When initially loaded or after switching the color scheme, a color-scheme-switch event is dispatched from the <color-scheme-switch> element.
document.addEventListener('color-scheme-switch', event => {
const button = event.target;
const colorScheme = event.target.value;
// Set page color scheme, update aria-label, icon, etc.
})Distributed under the MIT license. See LICENSE for details.