Четыре инструмента доступности: prefers-color-scheme (тема), prefers-reduced-motion (движение), prefers-contrast (контраст) и свойство color-scheme (системные элементы под тему).
Медиа-фичи prefers-* и их значения
Медиа-фича
Значения
Зачем нужна
prefers-color-scheme
light · dark
Системная светлая или тёмная тема
prefers-reduced-motion
no-preference · reduce
Просьба убрать анимации и движение
prefers-contrast
no-preference · more · less · custom
Запрос повышенного/пониженного контраста
prefers-reduced-data
no-preference · reduce
Режим экономии трафика
Свойство color-scheme
Значение
Что делает
color-scheme: light dark;
Страница поддерживает обе темы — браузер красит скроллбары, поля ввода, чекбоксы под активную
color-scheme: dark;
Принудительно тёмные системные элементы
color-scheme: normal;
Поведение по умолчанию (как было)
Короткие шаблоны
/* тёмная тема */
@media (prefers-color-scheme: dark) { :root { --bg:#111827; --text:#f8fafc; } }
/* меньше движения */
@media (prefers-reduced-motion: reduce) { *{ animation-duration:.01ms !important; } }
/* больше контраста */
@media (prefers-contrast: more) { .card{ border:2px solid currentColor; } }
/* системные элементы под тему */
:root { color-scheme: light dark; }
Палитра урока
light bglight textdark bgdark text
Правило: адаптивность — это не только ширина viewport. Учитывайте тему, читаемость, движение и контраст, которые задаёт сам пользователь.