В Safari 27.3 beta появился Adaptive Dark Mode — система, которая по желанию пользователя превращает светлые сайты в тёмные. По данным команды WebKit, около 40% загрузок страниц приходится на пользователей с тёмным режимом, но собственную тёмную тему поддерживают лишь около 10% загрузок. Новая функция должна сократить разрыв для сайтов, которые ещё не предлагают такой вариант оформления.
Для проверки нужно включить тёмное системное оформление и открыть сайт со светлым фоном. Safari предложит предварительный просмотр адаптации. Если страница уже объявляет color-scheme: light dark через HTML или CSS, браузер её не меняет. В остальных случаях WebKit оценивает преобладающие цвета: изначально тёмные страницы остаются как есть, светлые преобразуются.
В основе лежит цветовая матрица, которая инвертирует яркость, сохраняя оттенок. Для текста браузер стремится обеспечить контраст WCAG не ниже 4,5:1. Он также изменяет светлые CSS-градиенты и учитывает видимость кнопок, текста поверх изображений и всплывающих меню. Большинство изображений не затрагивается, но SVG-иконки и логотипы могут быть скорректированы при потере контраста. Для простых чёрно-белых bitmap-логотипов применяется анализ гистограммы пикселей. Содержимое canvas остаётся неизменным, а эффекты вроде masks и mix-blend-mode иногда отключаются, если результат получается неудачным.
Разработчикам рекомендуют использовать SVG вместо растровых иконок, CSS вместо спрайтов и фоновых картинок, а также прозрачные фоны у контентных изображений. Для отдельного блока можно задать собственную тёмную тему через color-scheme и CSS. Полностью отказаться от адаптации предлагается с помощью light only, однако ключевое слово only не работает в первой бета-версии Safari 27.3.
Apple отдельно ограничила обнаружение функции сайтами, чтобы не добавлять данные для fingerprinting. JavaScript получает исходные CSS-цвета, а изображения, перенесённые в canvas, сохраняют оригинальный вид. Таким образом, преобразование выполняется внутри WebKit и не раскрывает странице, включил ли его пользователь.