CSS URL Modifiers — что это вообще за зверь?
02.01.2026 • css
Вступление
С выходом Safari 26.2 пару недель назад появились и заметки о выпуске в блоге WebKit. Один из интересных пунктов звучит так:
Safari 26.2 adds support for cross-origin() and referrer-policy() CSS URL modifiers.
В этом месте появилось недоумение — что это вообще такое, откуда взялось, где работает? На момент написания нет ни страницы на MDN, ни на caniuse. Мне также не удалось найти ни одного примера в интернете (или я плохо старался). Но при этом эта возможность зарелижена в стабильном браузере без всяких флагов.
Давайте разбираться.
Немного спецификации
CSS URL Modifiers были в спеке ещё 10 лет назад, но тогда не было ни одного примера модификатора, и в браузерах тоже ничего реализовано не было. Выглядело это так:
<url> = <url()> | <src()>
<url()> = url( <string> <url-modifier>* ) | <url-token>
<src()> = src( <string> <url-modifier>* )src() нигде не реализована и является, по сути, некоторым аналогом url() (насколько мне известно).
В спеке CSS Values and Units Module Level 5 появились виды модификаторов, всего их 3:
cross-origin. Позволяет задавать режим CORS для ресурсаintegrity. Позволяет задать один или несколько хешей для запроса. После загрузки браузер проверит, что хеш от скачанного ресурса равен одному из переданных хешейreferrer-policy. В каком виде передавать заголовокRefererдля запроса
С релизом 26.2 Сафари начал поддерживать cross-origin() и referrer-policy(), а integrity() за отдельным флагом и выключена на данный момент.
На практике
Использовать модификаторы можно так:
background-image: url('image.png' cross-origin(use-credentials) referrer-policy(origin));Пара важных нюансов:
- Нужно обязательно указывать путь до картинки в кавычках, без кавычек не распарсится.
- Значения новых модификаторов нужно указывать без кавычек.
- Все модификаторы необязательные и их можно указывать больше одного.
Значения для cross-origin:
anonymous | use-credentialsДля referrer-policy:
no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-urlИтого
Ждём поддержку в остальных браузерах, нормальные доки, и, кто знает, новые модификаторы? CSS пополняется поддержкой возможностей из HTML/JS, и лично мне не хватает loading=lazy. Но такое скорее сделают через новое свойство, чем через модификатор урла. А чего вам не хватает в современном CSS? Поделитесь)