color-scheme

Свойство color-scheme позволяет указать предпочтительную цветовую схему для элемента — светлую или тёмную. Выбранная схема влияет на цвета полей формы, полос прокрутки, а также используемые значения системных цветов.

Для определения цветовой схемы всей веб-страницы целиком, color-scheme добавляется к псевдоклассу :root.

:root {
  color-scheme: light dark;
}

Для указания цветовой схемы отдельных элементов, color-scheme добавляется к соответствующим селекторам.

h2 {
  color-scheme: light dark;
}

Краткая информация

Значение по умолчанию normal
Наследуется Да
Применяется Ко всем элементам
Анимируется Нет

Синтаксис

color-scheme: normal | [ light | dark ]+ && only?
Описание Пример
<тип> Указывает тип значения. <размер>
A && B Значения должны выводиться в указанном порядке. <размер> && <цвет>
A | B Указывает, что надо выбрать только одно значение из предложенных (A или B). normal | small-caps
A || B Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. width || count
[ ] Группирует значения. [ crop || cross ]
* Повторять ноль или больше раз. [,<время>]*
+ Повторять один или больше раз. <число>+
? Указанный тип, слово или группа не является обязательным. inset?
{A, B} Повторять не менее A, но не более B раз. <радиус>{1,4}
# Повторять один или больше раз через запятую. <время>#

Значения

normal
Элемент не поддерживает какие-либо цветовые схемы, поэтому его следует отображать с использованием цветовой схемы браузера по умолчанию.
light
Элемент поддерживает светлую цветовую схему.
dark
Элемент поддерживает тёмную цветовую схему.
only
Запрещает браузеру переопределять цветовую схему элемента.

Допустимо использовать два ключевых слова light и dark, разделяя их пробелом. В этом случае цвета элемента будут меняться в зависимости от установленной темы браузера. Для изменения цвета фона формы в зависимости от темы, можно воспользоваться медиа-запросами.

:root {
  color-scheme: light dark;
}
@media (prefers-color-scheme: light) {
  form {
    background-color: #f0f0f0; /* Светло-серый цвет фона */
  }
}
@media (prefers-color-scheme: dark) {
  form {
    background-color: #333; /* Тёмно-серый цвет фона */
    accent-color: #ba84fa; /* Цвет акцента */
  }
}

Пример

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>color-scheme</title> <style> form { padding: 0.2em; /* Расстояние от текста до края */ } .light { color-scheme: only light; /* Только светлая схема */ background-color: #f0f0f0; /* Светло-серый цвет фона */ } .dark { color-scheme: only dark; /* Только тёмная схема */ background-color: #333; /* Тёмно-серый цвет фона */ accent-color: #ba84fa; /* Цвет акцента */ } </style> </head> <body> <form class="light"> <p> <input type="radio" name="r1" checked> <input type="radio" name="r1"> <input type="radio" name="r1"> </p> </form> <form class="dark"> <p> <input type="radio" name="r2"> <input type="radio" name="r2" checked> <input type="radio" name="r2"> </p> </form> </body> </html>

В данном примере при изменении цветовой схемы формы на тёмную переключатели также меняют цвет фона.

Объектная модель

Объект.style.colorScheme

Спецификация

CSS Color Adjustment Module Level 1

Браузеры

81 81 68 13 96
81 96 58 13

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.