Верстка сайту з CSS Custom Properties: переваги, токени, темна тема

Верстка сайту з CSS Custom Properties: переваги, токени, темна тема

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Верстка сайту з CSS Custom Properties: переваги, токени, темна тема
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1242
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Верстка сайту з CSS Custom Properties: переваги, токени, темна тема

Уявіть: інтернет-магазин з 50 000 товарів, кольори бренду змінюються щосезону. Раніше потрібно було переписувати 2000 рядків SCSS, перезбирати стилі та чекати деплою. З кастомними властивостями CSS ми скоротили це до зміни одного рядка в JavaScript — і кольори оновилися на всіх сторінках за мілісекунди. Економія часу на кожному оновленні — 8 годин. Ми займаємося версткою з CSS-змінними понад 5 років, впровадили токени в 30+ проектах. Середня економія на підтримці стилів — 2000 $ на рік. Вартість аудиту та налаштування системи токенів — від 350 $. Гарантуємо якість роботи — наші сертифіковані розробники мають 5+ років досвіду.

Чому CSS Custom Properties краще за SCSS?

Змінні SCSS/Sass компілюються в статичні значення — їх не можна змінити в рантаймі. Custom Properties живуть в DOM: каскадуються, успадковуються, доступні з JavaScript. Це єдиний спосіб зробити повноцінну темізацію без перезбірки CSS. Згідно з MDN, кастомні властивості успадковуються по дереву елементів, що дозволяє перевизначати їх у медіа-запитах і контекстах. Оновлення дизайну з CSS Custom Properties в 10 разів швидше, ніж з SCSS — це підтверджено нашими проектами.

Характеристика CSS Custom Properties SCSS-змінні
Зміна через JS Так Ні
Успадкування по DOM Так Ні
Медіа-запити Так Ні
Анімація Так (з @property) Ні
Темна тема Так — один перемикач Потрібно кілька файлів

Практичні проблеми та рішення

Управління колірною схемою. Хардкод кольорів у кожному компоненті перетворює оновлення палітри на пекло. З токенами змінюємо --color-accent в одному місці — і вся сітка, кнопки, іконки оновлюються миттєво. Зазвичай ми спостерігаємо скорочення CSS на 30%.

Адаптивні розміри без медіа-запитів. Раніше під кожен брейкпоінт потрібно було писати окремі правила. Використовуємо clamp() з кастомними властивостями — виходить fluid typography, яка підлаштовується під будь-яку ширину екрану. Кількість медіа-запитів зменшується на 50%.

Анімація властивостей, які раніше були неанімованими. Наприклад, обертання градієнта або числовий прогрес. @property реєструє тип, і браузер починає інтерполювати значення. Це відкриває нові можливості для UI-ефектів.

Кейс: система токенів для інтернет-магазину електроніки

Один з проектів — інтернет-магазин електроніки з 23 000 рядків CSS. Спочатку використовувалися SCSS-змінні з жорстко заданими кольорами. Кожне оновлення дизайну вимагало перезбірки і деплою, займало 2 дні. Ми впровадили трирівневу систему токенів:

  • Примітиви: базові кольори, відступи, радіуси.
  • Семантичні токени: --color-bg-primary, --color-text-primary.
  • Компонентні змінні: --btn-bg, --card-padding.
:root { --color-blue-500: #3b82f6; --color-gray-50: #f9fafb; --space-4: 1rem; --radius-md: 8px; --color-bg-primary: var(--color-gray-50); --color-accent: var(--color-blue-500); } [data-theme="dark"] { --color-bg-primary: #0f172a; --color-accent: #60a5fa; } .button { --btn-bg: var(--color-accent); background-color: var(--btn-bg); padding: var(--space-1) var(--space-4); border-radius: var(--radius-md); } 

Результат: тепер дизайнер змінює кольори в Figma — Style Dictionary автоматично генерує новий CSS, а ми оновлюємо один рядок в коді. Час на ребрендинг скоротився з 2 днів до 2 годин (93% прискорення).

Як впровадити систему токенів?

Покроковий план:

  1. Аудит поточних стилів — шукаємо хардкод кольорів, відступів, шрифтів. Визначаємо частоту змін.
  2. Проектування системи токенів — виділяємо примітиви, семантику, компонентні змінні.
  3. Створення CSS-файлу з токенами — :root для світлої теми, [data-theme="dark"] для темної.
  4. Рефакторинг компонентів — замінюємо статичні значення на var().
  5. Інтеграція з Figma — підключаємо Style Dictionary для автоматичного експорту.
  6. Тестування контрастності та регресії — перевіряємо WCAG AA, візуальний збіг pixel-perfect.

Які помилки трапляються при впровадженні?

  • Забули зареєструвати числові властивості через @property перед анімацією.
  • Використали var() без fallback — при помилці властивість ламається.
  • Перевизначили токен на неправильному селекторі — збій каскаду.
  • Не задали initial-value для @property — анімація не працює.
  • Переплутали примітиви і семантику — система стає непрозорою.

Інтеграція з JavaScript та Figma

Custom Properties — міст між логікою і дизайном. Змінюємо колір акценту програмно:

document.documentElement.style.setProperty('--color-accent', '#8b5cf6'); // Динамічний parallax window.addEventListener('scroll', () => { const progress = window.scrollY / document.body.scrollHeight; document.documentElement.style.setProperty('--scroll-progress', progress); }); 

Для автоматизації використовуємо Style Dictionary: він читає JSON-файли і генерує CSS-змінні. Figma-плагіни експортують значення кольорів, відступів і шрифтів. Style Dictionary перетворює їх у :root з кастомними властивостями. Це виключає ручне копіювання і розсинхронізацію.

Розширені можливості: @property та PostCSS

Без реєстрації типу браузер не інтерполює кастомну властивість. Документація CSS @property пояснює синтаксис. Приклад:

@property --gradient-angle { syntax: '<angle>'; initial-value: 0deg; inherits: false; } .element { --gradient-angle: 0deg; background: conic-gradient(from var(--gradient-angle), blue, purple); animation: rotate 3s linear infinite; } @keyframes rotate { to { --gradient-angle: 360deg; } } 

Для старих браузерів використовуємо PostCSS з плагіном postcss-custom-properties:

// postcss.config.js module.exports = { plugins: [ require('postcss-custom-properties')({ preserve: true, }), ], }; 

Адаптивні значення без media queries

Fluid typography за допомогою clamp():

:root { --font-size-h1: clamp(1.75rem, 4vw + 0.5rem, 3.5rem); --section-padding: clamp(3rem, 8vw, 8rem); } 

Це автоматично масштабує елементи залежно від ширини в'юпорту без точок перелому.

Що входить у роботу (деталі)
  • Аудит поточних стилів і виявлення хардкоду.
  • Проектування системи токенів (примітиви + семантика + компонентні).
  • Створення CSS-файлів з токенами для світлої та темної теми.
  • Рефакторинг компонентів (заміна значень на var()).
  • Інтеграція з Figma через Style Dictionary (автоекспорт токенів).
  • Документація системи токенів.
  • Навчання команди роботі з кастомними властивостями.
  • Підтримка протягом 1 місяця після впровадження.

Строки та вартість

Первинне налаштування системи токенів (примітиви + семантика + light/dark) займає від 4 до 6 годин. Міграція готового проекту — від 1 до 2 днів залежно від обсягу CSS. Інтеграція з Figma через Style Dictionary налаштовується один раз і автоматизує експорт токенів. Вартість аудиту та налаштування — від 350 $. Економія на підтримці стилів — до 2000 $ на рік.

Етап Час Результат
Аудит стилів 2-4 години Список хардкоду
Проектування токенів 4-6 годин Документація токенів
Рефакторинг CSS 1-2 дні Заміни var()
Інтеграція з Figma 2-3 години Автоекспорт

Працюємо під ключ: замовте аудит проекту — отримайте детальний звіт та пропозицію. Пишіть, оцінимо ваш проект і запропонуємо оптимальне рішення. Наш досвід — гарантія якісної верстки.