feat: add persistent theme switcher
This commit is contained in:
+1
-1
@@ -10,7 +10,7 @@
|
||||
- `--border-strong`, `--border-subtle`, `--shadow-color` — разделители и глубина;
|
||||
- существующие status/source-токены сохраняют смысл, но получают контрастные dark-значения там, где используются как текст.
|
||||
|
||||
Первый этап следует `prefers-color-scheme` только через CSS и поэтому не создаёт вспышку неверной темы, не записывает состояние и не требует inline script. Явный выбор появится на этапе D03–D04 и будет согласован с SSR через allowlist-cookie.
|
||||
По умолчанию сайт следует `prefers-color-scheme` через CSS. Переключатель в header позволяет явно выбрать системную, светлую или тёмную тему; выбранное значение хранится в allowlist-cookie `rf4-theme` (`SameSite=Lax`, год, `Secure` на HTTPS). Astro читает cookie на сервере и сразу выставляет `data-theme="light|dark"`; для системного режима атрибут отсутствует. Client script собирается Astro во внешний asset, поэтому inline-код, localStorage и ослабление CSP не требуются.
|
||||
|
||||
## Дальнейшая миграция
|
||||
|
||||
|
||||
Reference in New Issue
Block a user