webdev-power-kit
Version:
A powerful toolkit that simplifies access to browser features like clipboard, notifications, battery, vibration, and more — perfect for modern web developers.
25 lines (24 loc) • 761 B
JavaScript
/**
* Checks if user's OS prefers dark mode.
* @returns boolean - true if dark mode is preferred
*/
export function isDarkMode() {
return window.matchMedia('(prefers-color-scheme: dark)').matches;
}
/**
* Toggle dark mode by adding/removing a class on <html>.
* @param className Optional CSS class to toggle (default: "dark")
*/
export function toggleDarkMode(className = "dark") {
document.documentElement.classList.toggle(className);
}
/**
* Subscribe to changes in system theme (dark/light).
* @param callback Function triggered on change
*/
export function onThemeChange(callback) {
const media = window.matchMedia('(prefers-color-scheme: dark)');
media.addEventListener("change", () => {
callback(media.matches);
});
}