Кастомні властивості (--*) – змінні CSS

Імена властивостей, що починаються з --, наприклад, --example-name, є своєрідними властивостями, котрі містять значення, що можуть бути використані в інших оголошеннях за допомогою функції var().

Сфера застосування своєрідних властивостей обмежена елементом (елементами), на котрих вони оголошені, а також їм властива каскадність: значення певної своєрідної властивості береться з оголошення, обраного каскадним алгоритмом.

Синтаксис

--some-keyword: left;
--some-color: #0000ff;
--some-complex-value: 3px 6px rgb(20 32 54);
<declaration-value>

Це значення захоплює будь-яку послідовність з однієї чи більше лексем, поки не зустрінеться неприпустима лексема. Воно представляє усю повноту того, що дійсне оголошення може мати за своє значення.

[!NOTE] Імена своєрідних властивостей чутливі до регістру: --my-color вважатиметься окремою своєрідною властивістю поруч із --My-color.

Приклад

HTML

<p id="firstParagraph">Цей абзац повинен мати синє тло та жовтий текст.</p>
<p id="secondParagraph">Цей абзац повинен мати жовте тло та синій текст.</p>
<div id="container">
  <p id="thirdParagraph">Цей абзац повинен мати зелене тло та жовтий текст.</p>
</div>

CSS

:root {
  --first-color: #16f;
  --second-color: #ff7;
}

#firstParagraph {
  background-color: var(--first-color);
  color: var(--second-color);
}

#secondParagraph {
  background-color: var(--second-color);
  color: var(--first-color);
}

#container {
  --first-color: #290;
}

#thirdParagraph {
  background-color: var(--first-color);
  color: var(--second-color);
}

Результат

Специфікації

Сумісність із браузерами

desktop mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet
--*
Chrome Full support 49
Edge Full support 15
Firefox Full support 31
Internet Explorer No support Ні
Opera Full support 36
Safari Full support 9.1
WebView Android Full support 49
Chrome Android Full support 49
Firefox for Android Full support 31
Opera Android Full support 36
Safari on iOS Full support 9.3
Samsung Internet Full support 5.0
env() Chrome Full support 69
Edge Full support 79
Firefox Full support 65
Internet Explorer No support Ні
Opera Full support 56
Safari Full support 11.1
WebView Android Full support 69
Chrome Android Full support 69
Firefox for Android Full support 65
Opera Android Full support 48
Safari on iOS Full support 11.3
Samsung Internet Full support 10.0
Safe area inset variable safe-area-inset-bottom
Chrome Full support 69
Edge Full support 79
Firefox Full support 65
Internet Explorer No support Ні
Opera Full support 56
Safari Full support 11
WebView Android Full support 69
Chrome Android Full support 69
Firefox for Android Full support 65
Opera Android Full support 48
Safari on iOS Full support 11
Samsung Internet Full support 10.0
Safe area inset variable safe-area-inset-left
Chrome Full support 69
Edge Full support 79
Firefox Full support 65
Internet Explorer No support Ні
Opera Full support 56
Safari Full support 11
WebView Android Full support 69
Chrome Android Full support 69
Firefox for Android Full support 65
Opera Android Full support 48
Safari on iOS Full support 11
Samsung Internet Full support 10.0
Safe area inset variable safe-area-inset-right
Chrome Full support 69
Edge Full support 79
Firefox Full support 65
Internet Explorer No support Ні
Opera Full support 56
Safari Full support 11
WebView Android Full support 69
Chrome Android Full support 69
Firefox for Android Full support 65
Opera Android Full support 48
Safari on iOS Full support 11
Samsung Internet Full support 10.0
Safe area inset variable safe-area-inset-top
Chrome Full support 69
Edge Full support 79
Firefox Full support 65
Internet Explorer No support Ні
Opera Full support 56
Safari Full support 11
WebView Android Full support 69
Chrome Android Full support 69
Firefox for Android Full support 65
Opera Android Full support 48
Safari on iOS Full support 11
Samsung Internet Full support 10.0
Window Controls Overlay variable titlebar-area-height
Експериментальне
Chrome Full support 93
Edge Full support 93
Firefox No support Ні
Internet Explorer No support Ні
Opera Full support 78
Safari No support Ні
WebView Android No support Ні
Chrome Android Full support 93
Firefox for Android No support Ні
Opera Android Full support 65
Safari on iOS No support Ні
Samsung Internet Full support 17.0
Window Controls Overlay variable titlebar-area-width
Експериментальне
Chrome Full support 93
Edge Full support 93
Firefox No support Ні
Internet Explorer No support Ні
Opera Full support 78
Safari No support Ні
WebView Android No support Ні
Chrome Android Full support 93
Firefox for Android No support Ні
Opera Android Full support 65
Safari on iOS No support Ні
Samsung Internet Full support 17.0
Window Controls Overlay variable titlebar-area-x
Експериментальне
Chrome Full support 93
Edge Full support 93
Firefox No support Ні
Internet Explorer No support Ні
Opera Full support 78
Safari No support Ні
WebView Android No support Ні
Chrome Android Full support 93
Firefox for Android No support Ні
Opera Android Full support 65
Safari on iOS No support Ні
Samsung Internet Full support 17.0
Window Controls Overlay variable titlebar-area-y
Експериментальне
Chrome Full support 93
Edge Full support 93
Firefox No support Ні
Internet Explorer No support Ні
Opera Full support 78
Safari No support Ні
WebView Android No support Ні
Chrome Android Full support 93
Firefox for Android No support Ні
Opera Android Full support 65
Safari on iOS No support Ні
Samsung Internet Full support 17.0
var() Chrome Full support 49
Edge Full support 15
Firefox Full support 31
Internet Explorer No support Ні
Opera Full support 36
Safari Full support 9.1
WebView Android Full support 50
Chrome Android Full support 49
Firefox for Android Full support 31
Opera Android Full support 36
Safari on iOS Full support 9.3
Samsung Internet Full support 5.0

Дивіться також