Задача 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>
This commit is contained in:
1 parent
d3495fb077
commit
a6e70ffd1a
7 files changed
+221
-47
No files matched your search
@@ -0,0 +1,11 @@
|
||||
// изменение 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 недоступен (приватный режим и т.п.) — тема по умолчанию: авто по системе
|
||||
}
|
||||
})();
|
||||
Reference in new issue
Block a user