Псевдокласс :open, улучшения CSS random(), интерполяция цвета SVG-градиентов, ToggleEvent.source, Origin API и 63 исправления ошибок — всё, что нужно знать о самом большом майском релизе WebKit.
11 мая 2026 года Apple выпустила Safari 26.5 — последнюю версию своего флагманского браузера. Хотя это не революционный релиз, Safari 26.5 приносит значимые улучшения в CSS, веб-API и общее качество браузера, о которых стоит знать каждому веб-разработчику.
Главные новинки включают псевдокласс :open для стилизации состояний
интерактивных элементов, улучшения CSS random() с
глобальными именованными значениями и новым ключевым словом element-scoped,
поддержку color-interpolation для SVG-градиентов, свойство
ToggleEvent.source для Popover API и новый Origin API
для работы с источниками (origin). Но главная история — это 63 исправления
ошибок, что делает этот релиз самым качественно проработанным майским
обновлением в истории WebKit.
Единая стилизация открытых <details>, <dialog>, <select> и <input>. Заменяет ограниченный селектор атрибута [open].
Глобальные именованные значения по умолчанию, новое ключевое слово element-scoped для поэлементной случайности.
Новое свойство для управления интерполяцией цветов в SVG-градиентах, включая цветовое пространство linearRGB.
Определяет, какой элемент вызвал переключение popover. Упрощает сложные popover-взаимодействия.
Структурированный API для операций с источником — схема, хост и порт без ручного парсинга URL.
Scroll-driven анимации, Anchor Positioning, CSS Grid, SVG, WebRTC, рендеринг при зуме и многое другое.
Псевдокласс :open — самая практически полезная CSS-функция в Safari 26.5.
Он предоставляет единый, последовательный способ стилизации открытого состояния
нескольких интерактивных элементов, которые ранее имели несовместимые подходы.
Раньше единственным способом стилизовать открытый <details> или
<dialog> был селектор атрибута [open]. Он работал для
этих двух элементов, но не действовал на выпадающие списки <select>
или пикеры <input> (выбор даты, цвета и т.д.).
С :open вы пишете один селектор, который работает для всех четырёх типов
элементов:
Для <dialog> псевдокласс :open срабатывает независимо
от того, открыт ли диалог через showModal() или show().
Для <input> он применяется, когда отображается связанный пикер —
выбор даты, цвета и другие нативные контролы.
Это чистое прогрессивное улучшение: браузеры без поддержки :open просто
игнорируют правила, а элементы продолжают нормально функционировать. Полифилл не требуется.
Safari стал первым браузером, внедрившим CSS random()
в версии 26.2 (декабрь 2025). С тех пор Рабочая группа CSS уточнила спецификацию,
и Safari 26.5 реализует изменения, включая новое ключевое слово
element-scoped.
Без именованного значения random() генерирует новое число каждый раз
при вычислении. Каждый элемент получает уникальное значение:
Использование идентификатора пользовательского свойства в качестве первого аргумента создаёт именованное случайное значение. В Safari 26.5 эти имена имеют глобальную область видимости — все экземпляры с одинаковым именем используют один случайный результат для всего документа.
Новое ключевое слово element-scoped восстанавливает поэлементное
поведение, когда это необходимо. Устаревшее ключевое слово element-shared
было удалено.
Safari 26.5 добавляет поддержку свойства color-interpolation в контексте
SVG-градиентов. Это свойство управляет интерполяцией цветов между точками градиента,
поддерживая значения auto (по умолчанию) и linearRGB.
Значение linearRGB использует линейное RGB-цветовое пространство, которое
обеспечивает более визуально равномерные цветовые переходы по сравнению со стандартной
sRGB-интерполяцией. Это особенно заметно в сине-фиолетовых градиентах и других
переходах, где sRGB-интерполяция может давать грязные промежуточные оттенки.
Popover API стал революцией в создании оверлеев, подсказок и меню без JavaScript-библиотек.
Safari 26.5 добавляет свойство ToggleEvent.source, которое определяет,
какой элемент вызвал переключение popover-цели.
Safari 26.5 представляет Origin API — новый JavaScript-интерфейс для операций на основе источника (origin). Он предоставляет программный доступ к компонентам источника — схеме, хосту и порту — без ручного парсинга URL.
Количество и качество исправлений в Safari 26.5 впечатляет. Джен Симмонс из WebKit назвала его "самым большим майским релизом WebKit", с улучшениями, охватывающими почти все подсистемы:
Исправлены имена временных шкал, пауза при динамическом состоянии, значения прогресса у границ view timeline и восстановление из bfcache.
Исправлены цепочки из 3+ элементов, fallback anchor() с нулём без единиц, область видимости display:contents и привязка sticky-дочерних элементов.
Исправлены sizing subgrid внутри grid-lanes, границы таблиц с rowspan, абсолютное позиционирование внутри block-in-inline и отображение текста с column-count:1.
Исправлены двойной зум lh/rlh с числовым line-height, aspect-ratio на увеличенных страницах и evaluation-time zoom для несвойственных свойств.
Исправлены fallback @font-face с разными стилями, обработка hanging-punctuation для кавычек и пробелов.
Значительные улучшения рендеринга SVG и стабильности WebRTC в различных сценариях.
:open предоставляет единый способ стилизации открытого состояния интерактивных элементов, таких как <details>, <dialog>, <select> и <input>. Он заменяет селектор атрибута [open], который работал только для <details> и <dialog>. Доступен в Safari 26.5+ и реализован как прогрессивное улучшение — браузеры без поддержки просто игнорируют правила.random(--size, 100px, 200px), теперь создают глобальный результат вместо привязки к отдельным элементам. Это соответствует обновлённой спецификации CSS. Safari 26.5 также добавил ключевое слово element-scoped для случаев, когда нужно поэлементное поведение, и удалил устаревшее element-shared.color-interpolation в контексте SVG-градиентов, включая значение linearRGB. Это позволяет контролировать интерполяцию цветов для более точных и визуально равномерных переходов, особенно в сине-фиолетовых градиентах, где sRGB-интерполяция может давать грязные промежуточные оттенки.ToggleEvent.source — новое свойство интерфейса ToggleEvent, которое определяет, какой элемент вызвал переключение popover. Когда несколько кнопок могут открывать один и тот же popover, event.source показывает, какая из них была нажата, устраняя необходимость в data-атрибутах или отслеживании через замыкания. Упрощает создание контекстных меню, action sheets и подсказок с несколькими триггерами.URL. Полезен для проверок безопасности (валидация origin сторонних скриптов), скоупинга Service Worker, валидации кросс-доменных запросов и конфигурации на основе источника.:has(:empty), разрешение цепочек anchor-positioned элементов и исправление двойного зума lh/rlh.Safari 26.5 — бесплатное обновление, доступное через macOS Software Update, iOS/iPadOS Settings и visionOS. Для большинства пользователей и разработчиков нет причин не обновляться — новые функции обратно совместимы, а 63 исправления делают повседневную работу и разработку более стабильной.
Псевдокласс :open и улучшения CSS random() — главные
достопримечательности для фронтенд-разработчиков. Свойство ToggleEvent.source
и поддержка color-interpolation более нишевые, но ценны для интерфейсов
с popover и SVG-дизайнов соответственно.
Итог: Safari 26.5 демонстрирует обновлённую приверженность Apple качеству WebKit. Возможно, в нём нет громких функций крупного ежегодного релиза, но совокупный эффект 63 исправлений в scroll-анимациях, anchor positioning, вёрстке и зуме делает веб-платформу заметно более надёжной.
Отслеживание обновлений браузеров Safari, Chrome и Firefox — это работа на полный день. Если вы создаёте веб-приложение, которое должно надёжно работать во всех современных браузерах — включая новейшие функции Safari — я могу помочь.
Я — full-stack разработчик с 20+ годами опыта создания веб-приложений, с глубокими знаниями кросс-браузерной совместимости, современного CSS и JavaScript API. Нахожусь в Минске и работаю по всему миру — обсудим ваш проект.
Расскажите о задаче — дам экспертные рекомендации по кросс-браузерной совместимости и современной веб-разработке. Бесплатно.