Мы используем класс на html
-элементе, чтобы определить, находится ли пользователь в режиме dark
или light
приложения.
<html class="dark-mode"></html>
Этот класс добавляется с помощью Renderer2
в сервисе, который обнаруживает выбранные настройки пользователя. Пока все работает нормально.
Теперь нам нужно настроить все компоненты, чтобы они хорошо выглядели и в темном режиме. Но проблема в том, что Angular ViewEncapsulation
.
Мы подумали, что это пригодится, просто обновив S CSS компонента:
.headline {
color: black;
.dark-mode & {
color: white;
}
}
Или просто CSS:
.headline {
color: black;
}
.dark-mode .headline {
color: white;
}
Теперь это не работает, потому что класс .dark-mode
, как и ожидалось, инкапсулирован.
Как мы можем решить эту проблему?