返回 ViMax
theme.ts
根目录 / web / src / theme.ts
1 export type Theme = 'light' | 'dark';
2
3 export const THEME_STORAGE_KEY = 'vimax-web-theme';
4
5 export function resolveTheme(stored: string | null | undefined, prefersDark: boolean): Theme {
6 if (stored === 'light' || stored === 'dark') return stored;
7 return prefersDark ? 'dark' : 'light';
8 }
9
10 export function applyTheme(theme: Theme) {
11 document.documentElement.dataset.theme = theme;
12 const meta = document.querySelector<HTMLMetaElement>('meta[name="theme-color"]');
13 if (meta) meta.content = theme === 'dark' ? '#090a0c' : '#ffffff';
14 }
15
15 lines TYPESCRIPT