Safari & Testing

2026: относительные цвета CSS для статических токенов, тёмных рамп и проверки Safari WebKit на Mac

MacHTML Lab2026.05.07около 27 мин

Ручная статическая HTML по-прежнему тащит дюжины почти одинаковых hex для hover, pressed, disabled и scrim. Относительный синтаксис цвета в CSS — функции вроде rgb(from var(--brand) r g b / calc(alpha * 0.72)) — позволяет строить всю лестницу из одного канонического токена вместо археологии таблиц. В 2026 году успех зависит от связки выразительности с проверкой в Safari WebKit, ограничителями @supports и повторным расчётом WCAG, когда альфа двигает яркость. Статья разбирает примитивы, матрицу выбора между sRGB и OKLCH и репетицию на Apple Silicon до слияния рефакторингов токенов.

Читайте также OKLCH и широкий цветовой охват в статическом HTML для перцептивного подбора и основы light/dark и color-scheme, чтобы prefers-color-scheme и метаданные совпадали с производными цветами.

Блок расширенного контекста 1: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 2: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 3: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 4: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 5: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 6: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 7: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 8: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 9: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 10: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 11: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 12: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 13: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 14: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 15: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 16: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 17: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 18: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 19: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 20: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 21: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 22: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 23: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 24: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Блок расширенного контекста 25: относительные цвета связывают каналы RGB или HSL с пользовательскими свойствами, позволяя маркетинговым командам менять базовый токен без правки десятков компонентов. На практике CI должен отклонять сборку, если выражение ссылается на отсутствующий ключ или если альфа выходит за диапазон нуля и единицы. Для Safari особенно важно проверять градиенты шире тысячи двухсот пикселей и при необходимости задавать цветовое пространство явно, чтобы избежать полос при интерполяции в sRGB.

Примитивы

.hero::after { background: rgb(from var(--brand) r g b / 0.35); }

Матрица

sRGBпредсказуемость

Тёмная тема

Используйте color-scheme: light dark.

FAQ

ОКЛХ не заменяет относительный синтаксис.

Safari QA

Аренда Mac mini.

Safari: QA цвета
от $16.9/день