var()
Функцію CSS var() (змінна) можна використовувати для вставляння значення кастомної властивості (що також іноді зветься "змінною CSS") замість будь-якої частини значення іншої властивості.
Спробуйте його в дії
Функція var() не може бути вжита в назвах властивостей, селекторах або ще чому завгодно, крім значень властивостей. (Зазвичай спроби зробити щось подібне призводять до недійсного синтаксису, або ж до значення, яке не має ніякого стосунку до змінної.)
Синтаксис
/* Просте використання */
var(--custom-prop);
/* Із запасним варіантом */
var(--custom-prop,);  /* порожнє значення як запасний варіант */
var(--custom-prop, initial); /* початкове значення властивості як запасний варіант */
var(--custom-prop, #FF0000);
var(--custom-prop, var(--default-value));
var(--custom-prop, var(--default-value, red));
Перший аргумент функції – це назва кастомної властивості, що підставляється. Необов'язковий другий аргумент – служить запасним значенням. Якщо кастомна властивість, на яку посилається перший аргумент, недійсна, то ця функція використовує друге значення.
Синтаксис запасного значення, як і синтаксис кастомних властивостей, дозволяє коми. Наприклад var(--foo, red, blue) визначає запасне значення red, blue; тобто будь-що між першою комою та кінцем функції вважається запасним значенням.
Значення
<custom-property-name>Назва кастомної властивості, представлена ідентифікатором, що починається з двох рисок. Кастомні властивості призначені суто для використання розробниками та користувачами; CSS ніколи не надасть їм значення, яке виходить за межі того, що представлено тут.
<declaration-value>Запасне значення кастомної властивості, яке використовується в разі того, що кастомна властивість недійсна в контексті свого використання. Це значення може містити будь-які символи, крім певних символів з особливими значеннями, штибу символів нового рядка, кінцевих дужок без пари, тобто
),]або}, крапок з комою на найвищому рівні та знаків оклику. Запасне значення само може бути кастомною властивістю, що використовує синтаксисvar().Примітка:
var(--a,)– дійсний запис, який задає те, що якщо кастомна властивість--aнедійсна або відсутня, тоvar()замінюється нічим.
Формальний синтаксис
var( <custom-property-name> , <declaration-value>? )
Приклади
Використання кастомної властивості, заданої на :root
CSS
:root {
  --main-bg-color: pink;
}
body {
  background-color: var(--main-bg-color);
}
Результат
Тут значення властивості background-color задано через кастомну властивість --main-bg-color. Таким чином, кольором фону тіла HTML буде рожевий.
Використання кастомної властивості до її задання
CSS
body {
  background-color: var(--main-bg-color);
}
:root {
  --main-bg-color: pink;
}
Результат
У цьому прикладі фоновий колір тіла HTML буде рожевим, попри те, що кастомна властивість задана пізніше.
Використання кастомної властивості, заданої в іншому файлі
HTML
<!doctype html>
<html lang="uk">
  <head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="1.css" />
    <link rel="stylesheet" href="2.css" />
  </head>
  <body></body>
</html>
CSS
/* 1.css */
body {
  background-color: var(--main-bg-color);
}
/* 2.css */
:root {
  --main-bg-color: pink;
}
Результат
Фоновим кольором тіла HTML буде рожевий, попри те, що кастомна властивість задана в іншому файлі.
Кастомні властивості з запасними значеннями на випадок того, що властивість не задана
HTML
<div class="component">
  <h1 class="header">Заголовок</h1>
  <p class="text">Текст</p>
</div>
CSS
/* У стилі компонента: */
.component .header {
  /* header-color не задана, тож елемент залишається синім, згідно з запасним значенням */
  color: var(--header-color, blue);
}
.component .text {
  color: var(--text-color, black);
}
/* У стилі більшого застосунку: */
.component {
  --text-color: #080;
}
Результат
Оскільки --header-color не задана, текст "Заголовок" буде синім, згідно з запасним значенням.
Використання кастомної властивості як запасного значення
CSS
:root {
  --backup-bg-color: teal;
}
body {
  background-color: var(--main-bg-color, var(--backup-bg-color, white));
}
Результат
Оскільки --main-bg-color не задана, то background-color тіла відступить до --backup-bg-color, тобто чиркового кольору.
Специфікації
| Специфікація | 
|---|
| 
                
                  CSS Custom Properties for Cascading Variables Module Level 2 (CSS Variables 2) # using-variables  | 
            
Сумісність із браузерами
| desktop | mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 
Дивіться також
env(…)– змінні оточення, доступні лише для зчитування, що контролюються користувацьким агентом.- Використання кастомних властивостей (змінних) CSS
 - Директива 
@property - Модуль Кастомних властивостей як каскадних змінних CSS