@datahandler/theme-switcher
v0.1.1
Published
Tiny framework-agnostic theme switcher with localStorage persistence
Maintainers
Readme
theme-switcher
Tiny framework-agnostic theme switching + persistence.
Install
Once published:
npm install @datahandler/theme-switcherUsage
import { createThemeSwitcher } from "@datahandler/theme-switcher";
const btn = document.getElementById("theme-btn");
const switcher = createThemeSwitcher({
button: btn,
storageKey: "my-app-theme",
defaultTheme: "dark",
datasetKey: "theme", // sets <html data-theme="...">
stylesheetIdsByTheme: {
light: "fp-theme-light",
dark: "fp-theme-dark",
},
onThemeApplied: (theme) => {
btn.textContent = theme === "dark" ? "Dark" : "Light";
},
});
switcher.init();API
createThemeSwitcher(options) returns:
init()– applies initial theme and wires the click handlertoggle()– flips dark/lightsetTheme(theme)– applies a themegetTheme()– current theme from DOMdispose()– removes the click handler
Notes
- Persistence uses
localStorageby default, but failures are ignored (e.g. storage blocked). - Stylesheet toggling is optional; omit
stylesheetIdsByThemeif you don’t need it.
