UNPKG

@opensig/opendesign

Version:

<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>

23 lines (22 loc) 539 B
import { isClient } from "../_utils/is.mjs"; import { ref, watchEffect } from "vue"; const THEME_KEY = "__theme__"; function useTheme(defaultTheme = "light") { if (!isClient) { return { theme: ref(defaultTheme) }; } const currentTheme = ref(localStorage.getItem(THEME_KEY) || defaultTheme); watchEffect(() => { const theme = currentTheme.value; document.documentElement.dataset.oTheme = theme; localStorage.setItem(THEME_KEY, theme); }); return { theme: currentTheme }; } export { useTheme };