CSS-переменные
CSS-переменные (также известны как кастомные свойства) позволяют хранить значения в одном месте и переиспользовать их по всему документу.
1. Что такое CSS-переменные
Это значения, которые можно сохранить под именем и потом использовать многократно. Имена переменных
начинаются с двух дефисов --.
:root {
--main-color: #530899;
--secondary-color: #14b8a6;
--padding: 20px;
}
.button {
background-color: var(--main-color);
padding: var(--padding);
}
2. Объявление переменных — :root
Обычно переменные объявляют внутри :root — это псевдокласс, который соответствует корневому
элементу документа (<html>). Переменные, объявленные в :root, доступны
на всей странице.
:root {
--primary: #530899;
--secondary: #14b8a6;
}
3. Использование переменных — var()
Функция var() подставляет значение переменной. Можно указать запасное значение на случай,
если переменная не определена.
.element {
color: var(--demo-primary, #000000);
background-color: var(--demo-secondary, #ffffff);
}
✅ Переменная работает на всей странице
4. Наследование переменных
Переменные наследуются: если задать переменную на родителе, она будет доступна всем потомкам.
.parent {
--text-color: #14b8a6;
}
.child {
color: var(--text-color);
}
✅ Переменная, заданная на родителе, доступна потомку
5. Переопределение переменных
Переменные можно переопределять внутри конкретных элементов. Это удобно для создания тем и вариаций.
:root {
--color: #530899;
}
.button {
background-color: var(--color);
}
.button.secondary {
--color: #14b8a6; /* переопределяем */
}
✅ Один класс кнопки, разные цвета через переопределение переменной
6. Пример использования: темы оформления
С помощью CSS-переменных можно легко создать светлую и тёмную тему. Переменные задаются в разных классах, а переключение темы происходит через JavaScript.
:root {
--bg: white;
--text: black;
}
.dark-theme {
--bg: #1a1a1a;
--text: white;
}
body {
background-color: var(--bg);
color: var(--text);
}
Как переключать тему: При нажатии на кнопку JavaScript добавляет класс
dark-theme к элементу <body> (или удаляет его). Все переменные
автоматически обновятся, так как CSS-переменные наследуются.
Это демонстрация темы. Нажмите на кнопку, чтобы переключить.
✅ При нажатии на кнопку JavaScript добавляет/удаляет класс, и CSS-переменные меняют цвета
- Не повторять одни и те же значения (цвета, отступы, шрифты)
- Легко менять дизайн в одном месте
- Создавать темы оформления (светлая/тёмная)
- Упрощать поддержку кода