@ogasphere/theme-manager
Version:
A reusable theme management package for Next.js and Vite applications
16 lines (15 loc) • 582 B
JavaScript
const DEFAULT_PREFIX = "theme";
export function applyTheme(element, themeId, prefix) {
const themePrefix = prefix ?? DEFAULT_PREFIX;
const themeClass = `${themePrefix}-${themeId}`;
removeTheme(element, prefix);
element.classList.add(themeClass);
}
export function removeTheme(element, prefix) {
const themePrefix = prefix ?? DEFAULT_PREFIX;
const classes = Array.from(element.classList);
const themeClasses = classes.filter((cls) => cls.startsWith(`${themePrefix}-`));
for (const cls of themeClasses) {
element.classList.remove(cls);
}
}