Я застрял на этом некоторое время и думаю, что нашел хорошее решение. Ранее я использовал платформу ionic 4, и их документы содержат интересную страницу о добавлении темного режима в PWA. Ссылка здесь
В нем говорится о CSS-селекторе, который может определять, когда устройство пользователя работает в темном режиме, и соответственно изменять стили элементов. Из документов:
Первый способ включить темный режим - использовать медиазапрос CSS для предпочтительной цветовой схемы пользователя. Этот медиазапрос подключается к системным настройкам устройства пользователя и применяет тему, если включен темный режим.
@media (prefers-color-scheme: dark) {
:root {
/* dark mode variables go here */
}
}
В настоящее время медиазапрос предпочтительной цветовой схемы имеетограниченная поддержка браузера, поэтому пользователи не смогут получить выгоду от применения темного режима с использованием этого медиазапроса в определенных браузерах. Тем не менее, темный режим все еще может быть применен с помощью запасного класса CSS.
/* Fallback for older browsers or manual mode */
body.dark {
/* Dark mode variables go here */
}
Я проверял это в моем PWA на iOS 13 и iPadOS, и они оба, кажется, работают, когда яизменить мое устройство в темный режим. Я не уверен насчет Android, но я ожидаю, что результат будет таким же.
Стоит также отметить, что вы можете включить настройки темного режима вашего приложения, хотя приложение (т.е. имеет настройку в вашем приложении, поэтомуваше приложение может быть темным, даже если устройство не). demo ниже на странице документации это прекрасно демонстрирует.
Надеюсь, это поможет вам начать работу в темном режиме!