Кратко
СкопированоОдно из значений директивы @media
для проверки пользовательских настроек. Отслеживает отключение или уменьшение прозрачности в операционной системе.
Пример
Скопированоarticle span { background: #18191C; opacity: 0.9;}@media (prefers-reduced-transparency: reduce) { article span { opacity: 1; }}
article span { background: #18191C; opacity: 0.9; } @media (prefers-reduced-transparency: reduce) { article span { opacity: 1; } }
Как пишется
СкопированоЗадайте после @media
в скобках условие prefers
с одним из значений:
no
— прозрачность в системе по умолчанию.- preference reduce
— прозрачность уменьшена или полностью выключена.
С помощью prefers
можно отменять прозрачность, заданную фону через opacity
, перемещать текст под блок с фоновыми картинками, паттернами и так далее.
На сайтах часто встречаются карточки с фоновыми картинками и текстом. В примере для первой карточки используем стили без prefers
, для второй устанавливаем специальные CSS-правила на случай отключения прозрачности. Они переносят текст под картинку.
<div class="with-mediaquery"> <code>reduce</code> <article> <img src="./images/walking.png" alt=""> <span> <h3>Прогулки</h3> <p>Выгуляем животных вместо вас.</p> </span> </article></div>
<div class="with-mediaquery"> <code>reduce</code> <article> <img src="./images/walking.png" alt=""> <span> <h3>Прогулки</h3> <p>Выгуляем животных вместо вас.</p> </span> </article> </div>
@media (prefers-reduced-transparency: reduce) { .with-mediaquery span { padding: 0; background: unset; } .with-mediaquery article > * { grid-area: unset; }}
@media (prefers-reduced-transparency: reduce) { .with-mediaquery span { padding: 0; background: unset; } .with-mediaquery article > * { grid-area: unset; } }
Если любите глассморфизм, то prefers
тоже спешит на помощь. На этот раз покажем эффект матового стекла только тогда, когда не изменена настройка прозрачности.
article { color: #FFFFFF; background-color: #18191C;}@media (prefers-reduced-transparency: no-preference) { article { color: #000000; backdrop-filter: blur(15px); background: hsl(none none 100% / 20%); }}
article { color: #FFFFFF; background-color: #18191C; } @media (prefers-reduced-transparency: no-preference) { article { color: #000000; backdrop-filter: blur(15px); background: hsl(none none 100% / 20%); } }
Тестирование и отладка
СкопированоУсловие prefers
можно тестировать в браузере или отключив прозрачность в системе.
В Chrome эмуляция prefers
находится в дополнительной вкладке «Отрисовка» (Rendering) в инструменте разработчика. Чтобы добраться до неё, откройте список с дополнительными настройками (кнопка с тремя точками рядом с кнопкой закрытия), а потом разверните список «Другие инструменты» (More tools).
В операционных системах настройки прозрачности находятся разделах доступности и специальных возможностей. В некоторых системах прозрачность можно уменьшить, в других полностью отключить.
Windows 10
Настройки > Персонализация > Цвета > Эффекты прозрачности
Windows 11
Настройки > Универсальный доступ > Визуальные эффекты > Эффекты прозрачности
macOS
Системные настройки > Универсальный доступ > Дисплей > Уменьшить прозрачность
iOS
Настройки > Основные > Универсальный доступ > Экран и размер текста > Уменьшить прозрачность
Android
Настройки > Специальные возможности > Улучшение видимости > Уменьшить прзрачность и размытие
Как понять
СкопированоПрозрачный фон увеличивает когнитивную нагрузку на пользователей и уменьшает уровень читаемости текста. Этой настройкой пользуются:
- Люди с особенностями зрения. Например, с астигматизмом или сниженным зрением.
- Пользователи с когнитивными особенностями. К примеру, люди с дислекси́ей или синдром дефицита внимания.
- Люди с мигренями и головными болями.