Подобно « Как определить, находится ли OS X в темном режиме? » Только для браузеров.
Кто-нибудь нашел, есть ли способ определить, находится ли система пользователя в новом темном режиме OS X в Safari / Chrome / Firefox?
Мы хотели бы изменить дизайн нашего сайта, чтобы он был совместим с темным режимом в зависимости от текущего режима работы.
Ответы:
Новый стандарт зарегистрирован на W3C в Media Queries Level 5 .
ПРИМЕЧАНИЕ: в настоящее время доступно только в Safari Technology Preview Release 68.В случае предпочтений пользователя
light
:В случае предпочтений пользователя
dark
:Также есть возможность,
no-preference
если у пользователя нет предпочтений. Но я рекомендую вам просто использовать обычный CSS в этом случае и правильно каскадировать CSS.-
-
-
-
-
источник
window.matchMedia("(prefers-color-scheme: dark)").matches
Если у меня будет немного свободного времени, я добавлю к своему ответу полное решение javascript.Если вы хотите обнаружить его из JS, вы можете использовать этот код:
Чтобы следить за изменениями:
источник
matchMedia
а затем попытается сопоставитьprefers-color-scheme: dark
строку. Если он совпадает, мы находимся в темном режиме.if (window.matchMedia?('(prefers-color-scheme: dark)').matches) { }
В настоящее время (сентябрь 2018 г.) это обсуждается в «Черновиках редактора рабочей группы CSS» .Запущен Spec (см. Выше), доступный в виде медиа-запроса. Что-то уже появилось в Safari, см. Также здесь . Так что теоретически вы можете сделать это в Safari / Webkit:Но похоже, что это личное .На MDN функция медиа CSSinverted-colors
является упомянуто . Штекер: Я писал о режиме темного здесь .источник
Я искал через Mozilla API, похоже, у них нет переменных, соответствующих цвету окна браузера. Хотя я нашел страницу, которая может вам помочь: Как использовать стили операционной системы в CSS . Несмотря на заголовок статьи, цвета у Chrome и Firefox разные.
источник
Согласно Mozilla, вот предпочтительный метод по состоянию на сентябрь 2019 г.
источник