Files
ipam_control/web/theme.js
T
ayurishchevandClaude Opus 5.5 a6e70ffd1a Задача 038: тёмная тема UI
Все цвета — CSS-переменные; тёмная палитра по prefers-color-scheme (режим «авто»)
и принудительно через data-theme; светлая тема не изменилась. Переключатель —
пиктограмма в шапке (авто / светлая / тёмная), выбор в localStorage; theme.js ставит
тему до отрисовки CSS (без вспышки, без ослабления CSP). QR 2FA на белой подложке.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 17:44:48 +03:00

12 lines
904 B
JavaScript

// изменение 038: применяет сохранённый выбор темы до отрисовки CSS, чтобы избежать вспышки светлой темы.
// Подключается синхронно в <head> до styles.css. Инлайн-скрипт запрещён CSP (default-src 'self'), поэтому — отдельный файл.
// Нет значения в localStorage — тема остаётся «авто» (следует prefers-color-scheme через styles.css), атрибут не ставится.
(function () {
try {
var t = localStorage.getItem("ipam.theme");
if (t === "light" || t === "dark") document.documentElement.setAttribute("data-theme", t);
} catch (e) {
// localStorage недоступен (приватный режим и т.п.) — тема по умолчанию: авто по системе
}
})();