/
afanasevn
/
MaxSystems
Обзор
Документация
Войти
/
afanasevn
/
MaxSystems
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
client/src/theme/theme.ts
25 строк
770 B
IBS\NAfanasev
charts added
19 июн 2026, 16:16
19 июн 2026, 16:16
73ac335
Код
Авторство
О чём код?
export type ThemeSetting = 'light' | 'dark' | 'system' export type ResolvedTheme = 'light' | 'dark' export const THEME_STORAGE_KEY = 'maxsystems.theme' export function getStoredTheme(): ThemeSetting { const value = localStorage.getItem(THEME_STORAGE_KEY) if (value === 'light' || value === 'dark' || value === 'system') { return value } return 'system' } export function getSystemTheme(): ResolvedTheme { return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' } export function resolveTheme(setting: ThemeSetting): ResolvedTheme { return setting === 'system' ? getSystemTheme() : setting } export function applyTheme(resolved: ResolvedTheme) { document.documentElement.classList.toggle('dark', resolved === 'dark') }