Коли кольори, радіуси та інші параметри вручну задані в десятках віджетів Elementor, навіть невеликий редизайн стає трудомістким. Потрібно знаходити всі кнопки, картки, поля форм і декоративні блоки, а потім перевіряти, чи не залишилося старих значень.
CSS-змінні вирішують цю проблему: основні значення зберігаються в одному місці, а стилі компонентів звертаються до них за назвою. Змінивши одну змінну, можна одночасно оновити всі пов’язані елементи. Для стандартних кольорів Elementor варто використовувати Global Colors, а CSS-змінні залишити для власної дизайн-системи та нестандартних стилів.
Що таке CSS-змінні і навіщо вони потрібні в Elementor
CSS-змінна — це іменоване значення, яке можна повторно використовувати в стилях. Найчастіше змінні оголошують у селекторі :root, щоб вони були доступні на всій сторінці сайту. Наприклад, замість того щоб багато разів записувати #2563eb, у стилі можна використати var(--brand).
Такий підхід відокремлює значення від правил оформлення. Компонент знає, що його фон має бути кольором бренду, але конкретний відтінок зберігається окремо. Це спрощує редизайн, підтримку кількох шаблонів і контроль візуальної єдності.
Змінні корисні не лише для кольорів. У них можна зберігати радіуси, тіні, відступи, ширину рамки, розміри шрифту або інші значення, які повторюються в інтерфейсі.
- одна зміна оновлює всі пов’язані елементи;
- менше дублювання коду в Custom CSS;
- зручніше підтримувати кнопки, картки, форми та повідомлення;
- легше створити послідовну візуальну систему для всього сайту.
Як оголосити змінні на рівні сайту
CSS-змінні потрібно додати в місце, яке завантажується глобально: наприклад, у глобальний CSS сайту або в розділ додаткових стилів теми. Якщо у вашій конфігурації Elementor доступний глобальний Custom CSS, його також можна використати для цього завдання. Важливо, щоб код не був доданий лише до одного віджета або окремої сторінки, якщо змінні мають працювати на всьому сайті.
Базовий набір може виглядати так:
- назви змінних робіть зрозумілими: --brand, --text, --surface, --radius;
- не прив’язуйте назву до конкретного відтінку на кшталт --blue-1, якщо колір може змінитися;
- зберігайте змінні в одному місці, щоб не створювати кілька конфліктних наборів;
- для складніших сайтів можна окремо описати кольори, типографіку, відступи та ефекти.
:root {
--brand: #2563eb;
--brand-hover: #1d4ed8;
--accent: #f59e0b;
--text: #172033;
--text-muted: #667085;
--surface: #ffffff;
--surface-soft: #f5f7fb;
--border: #d9deea;
--radius: 12px;
--shadow-card: 0 8px 24px rgba(23, 32, 51, 0.08);
}
Де краще зберігати глобальний CSS
Конкретне місце залежить від теми, тарифу Elementor і способу організації сайту. Для глобальних правил підійде системний файл стилів дочірньої теми, глобальний CSS у налаштуваннях сайту або інший перевірений механізм, який підключається на всіх потрібних сторінках.
Не варто дублювати той самий блок :root у кожному шаблоні. Це ускладнює пошук помилок і може призвести до ситуації, коли одна сторінка використовує нові значення, а інша — старі.
Як використовувати змінні в Custom CSS Elementor
Після оголошення змінних їх можна викликати через функцію var(). Вона працює в будь-якій CSS-властивості, яка приймає відповідний тип значення: колір, довжину, радіус, тінь тощо.
Наприклад, для кнопки можна централізовано задати фон, колір тексту, радіус і стан наведення:
- color: var(--text) застосовує основний колір тексту;
- background-color: var(--brand) використовує фірмовий колір;
- border-radius: var(--radius) синхронізує заокруглення;
- box-shadow: var(--shadow-card) повторно використовує готову тінь.
.site-button {
color: var(--surface);
background-color: var(--brand);
border-radius: var(--radius);
transition: background-color 0.2s ease;
}
.site-button:hover {
background-color: var(--brand-hover);
}
Значення за замовчуванням
Для надійності можна вказати запасне значення після коми. Якщо змінна не завантажилася або має помилку, браузер використає fallback. Це особливо корисно під час поетапного перенесення старих стилів.
.card-title {
color: var(--text, #172033);
border-radius: var(--radius, 12px);
}
CSS-змінні чи Global Colors Elementor
Ці інструменти не обов’язково конкурують між собою. Global Colors Elementor зручні для кольорів, які можна вибирати безпосередньо в налаштуваннях віджетів: основного, другорядного, текстового та акцентного. Якщо колір змінюється через інтерфейс Elementor, пов’язані елементи можуть оновитися без редагування CSS.
CSS-змінні більше підходять для компонентів і нестандартних властивостей: окремого кольору фону картки, стану hover, кольору рамки форми, радіуса, тіні або набору значень для конкретної дизайн-системи.
Важливо не створювати дві незалежні системи для одного й того самого значення. Наприклад, якщо основний синій уже визначений як глобальний колір Elementor, не варто без потреби дублювати його під іншою назвою в :root. Виберіть одне джерело або чітко визначте, як вони пов’язані.
- Global Colors — для стандартних кольорів, які часто вибираються в панелі Elementor;
- CSS-змінні — для власних компонентів, станів, радіусів, тіней та інших параметрів;
- локальні значення — лише для винятків, які справді мають відрізнятися.
Практичні приклади для карток, форм і декоративних блоків
Найбільшу користь змінні дають там, де один стиль повторюється багато разів. Картки, інформаційні блоки та поля форм часто мають однаковий фон, рамку, радіус і тінь. Замість копіювання значень їх можна описати через змінні.
.content-card {
color: var(--text);
background-color: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow-card);
}
.form-field input,
.form-field textarea,
.form-field select {
color: var(--text);
background-color: var(--surface);
border: 1px solid var(--border);
border-radius: calc(var(--radius) / 2);
}
.notice-block {
color: var(--text);
background-color: var(--surface-soft);
border-left: 4px solid var(--accent);
border-radius: var(--radius);
}
Змінні для окремої секції
CSS-змінні можна оголошувати не лише глобально. Якщо певна секція має власну тему, змінну можна задати на її контейнері або класі. Тоді дочірні елементи успадкують це значення, а інші частини сайту не зміняться.
.dark-section {
--text: #ffffff;
--surface: #172033;
--border: rgba(255, 255, 255, 0.2);
color: var(--text);
background-color: var(--surface);
}
.dark-section .content-card {
border-color: var(--border);
}
Типові помилки та перевірка після налаштування
Якщо стиль не застосувався, спочатку перевірте, чи справді CSS із :root завантажується на потрібній сторінці. Далі відкрийте інструменти розробника браузера та подивіться, чи має елемент потрібне правило і яке значення отримала змінна.
Найчастіше проблема пов’язана не з самими змінними, а з областю дії, специфічністю або кешем. Після зміни глобального CSS очистьте кеш плагіна оптимізації, кеш браузера та інші рівні кешування, якщо вони використовуються на сайті.
- змінна названа з помилкою: --brand і --brands — це різні імена;
- у var() пропущені дужки або використано неіснуючу змінну;
- значення змінної не відповідає властивості: наприклад, колір використовується як радіус;
- стиль Elementor має вищу специфічність і перекриває ваше правило;
- глобальний CSS завантажується лише на одній сторінці;
- після редагування переглядається стара кешована версія стилів.
/* Неправильно: змінна не оголошена */
.element {
color: var(--missing-color);
}
/* Надійніше: є запасне значення */
.element {
color: var(--missing-color, #172033);
}
Як безпечно переносити старі стилі
Не обов’язково переписувати весь сайт за один раз. Спочатку створіть змінні для основної палітри, потім замініть значення в кнопках і повторюваних компонентах. Після кожного етапу перевіряйте десктопну та мобільну версії, стани hover і поля форм.
Не видаляйте старі правила, поки не переконалися, що нові змінні працюють у всіх потрібних місцях. Поступова міграція зменшує ризик зламати вже опубліковані шаблони.
Рекомендований порядок впровадження
Щоб CSS-змінні не перетворилися на ще один неструктурований список значень, перед початком варто провести короткий аудит стилів. Зберіть кольори та параметри, які повторюються, і визначте, які з них є системними, а які — винятками.
Практичний порядок роботи може бути таким:
- визначити основні кольори, фони, рамки, радіуси та тіні;
- перевірити, які кольори вже налаштовані через Global Colors Elementor;
- створити єдиний блок :root у глобальному CSS;
- перенести на змінні кнопки, картки, форми та повторювані блоки;
- додати fallback для критичних значень;
- перевірити адаптивність, hover/focus-стани та різні шаблони;
- видалити дублікати лише після завершення перевірки.
Поширені запитання
Чи можна використовувати CSS-змінні в безкоштовній версії Elementor?
CSS-змінні є стандартною можливістю CSS, тому вони не залежать від самого Elementor. Однак місце для введення Custom CSS може залежати від теми, плагінів і доступних функцій вашої конфігурації. Глобальні змінні можна підключити через інший глобальний механізм стилів WordPress.
Чи замінюють CSS-змінні Global Colors Elementor?
Ні, ці інструменти можна поєднувати. Global Colors зручні для стандартних кольорів, доступних у редакторі Elementor, а CSS-змінні — для складніших компонентів, станів і параметрів на кшталт радіусів або тіней.
Чому var(--brand) не працює в стилі віджета?
Перевірте, чи оголошена змінна на сторінці, чи немає помилки в її назві та чи завантажується глобальний CSS. Також перегляньте специфічність правил Elementor і очистьте кеш після зміни стилів.
Чи можна змінювати CSS-змінні для мобільної версії?
Так. У медіазапиті можна перевизначити потрібну змінну, і всі елементи, які її використовують, отримають нове значення в заданому діапазоні ширини. Це зручно, наприклад, для радіусів або відступів.
Висновок
CSS-змінні допомагають перетворити набір розрізнених стилів Elementor на керовану систему. Основні значення зберігаються централізовано, а кнопки, картки, форми та декоративні блоки використовують їх через var().
Почніть із повторюваних кольорів і параметрів, не дублюйте Global Colors без потреби та перевіряйте область дії кожного правила. Такий підхід скорочує кількість ручної роботи й робить майбутній редизайн значно передбачуванішим.