Ручная статическая 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
ОКЛХ не заменяет относительный синтаксис.