Вёрстка сайта с использованием 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
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Вёрстка сайта с использованием CSS Custom Properties (переменные)

Представьте: интернет-магазин с 50 000 товаров, цвета бренда меняются каждый сезон. Раньше нужно было переписывать 2000 строк SCSS, пересобирать стили и ждать деплоя. С CSS Custom Properties мы сократили это до изменения одной строки в JavaScript — и цвета обновились на всех страницах за миллисекунды. Экономия времени на каждом обновлении — 8 часов. Мы занимаемся вёрсткой с CSS Custom Properties более 5 лет, внедрили токены в 30+ проектах. Средняя экономия на поддержке стилей — 150 человеко-часов в год. Получите консультацию по вашему проекту — оценим возможность внедрения бесплатно.

Почему CSS Custom Properties лучше препроцессорных переменных?

Переменные SCSS/Sass компилируются в статические значения — их нельзя изменить в рантайме. Custom Properties живут в DOM: каскадируются, наследуются, доступны из JavaScript. Это единственный способ сделать полноценную темизацию без пересборки CSS. Согласно MDN, кастомные свойства наследуются по дереву элементов, что позволяет переопределять их в медиа-запросах и контекстах.

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

Какие проблемы решают CSS Custom Properties на практике?

Проблема 1: Управление цветовой схемой. Хардкод цветов в каждом компоненте превращает обновление палитры в ад. С токенами меняем --color-accent в одном месте — и вся сетка, кнопки, иконки обновляются мгновенно. Обычно мы наблюдаем сокращение CSS на 30%.

Проблема 2: Адаптивные размеры без медиа-запросов. Раньше под каждый брейкпоинт нужно было писать отдельные правила. Используем clamp() с кастомными свойствами — получается fluid typography, которая подстраивается под любую ширину экрана. Количество медиа-запросов уменьшается на 50%.

Проблема 3: Анимация свойств, которые раньше были неанимируемыми. Например, вращение градиента или числовой прогресс. @property регистрирует тип, и браузер начинает интерполировать значение. Это открывает новые возможности для UI-эффектов.

Как мы строим систему токенов: кейс из практики

Один из проектов — интернет-магазин электроники. Изначально использовались 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 автоматически генерирует new CSS, а мы обновляем одну строку в коде. Время на ребрендинг сократилось с 2 дней до 2 часов (93% ускорение). Закажите аудит ваших стилей — узнайте, сколько можно сэкономить.

Пошаговый план внедрения CSS Custom Properties

  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?

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); }); 

Для плавного изменения значения используют requestAnimationFrame или CSS-переходы.

Как автоматизировать экспорт токенов из Figma?

Используем Style Dictionary: он читает JSON-файлы и генерирует CSS-переменные. Figma-плагины экспортируют значения цветов, отступов и шрифтов. Style Dictionary преобразует их в :root с кастомными свойствами. Это исключает ручное копирование и рассинхронизацию.

Что такое @property и как он расширяет возможности CSS?

Без регистрации типа браузер не интерполирует кастомное свойство. Документация 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. Style Dictionary экспортирует токены из Figma:

// postcss.config.js module.exports = { plugins: [ require('postcss-custom-properties')({ preserve: true, }), ], }; // style-dictionary.config.mjs export default { source: ['tokens/**/*.json'], platforms: { css: { transformGroup: 'css', files: [{ destination: 'src/styles/tokens.css', format: 'css/variables', options: { selector: ':root' }, }], }, }, }; 

Как сделать адаптивные значения без media queries?

Fluid typography с помощью clamp():

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

Это автоматически масштабирует элементы в зависимости от ширины вьюпорта без точек перелома.

Сроки и что вы получаете

Первичная настройка системы токенов (примитивы + семантика + light/dark) занимает от 4 до 6 часов. Миграция готового проекта — от 1 до 2 дней в зависимости от объёма CSS. Интеграция с Figma через Style Dictionary настраивается один раз и автоматизирует экспорт токенов.

Этап Время Результат
Аудит стилей 2-4 часа Список хардкода
Проектирование токенов 4-6 часов Документация токенов
Рефакторинг CSS 1-2 дня Замены var()
Интеграция с Figma 2-3 часа Автоэкспорт

Мы гарантируем, что каждый токен проверен на контрастность (AA) и единообразие. Свяжитесь с нами — оценим ваш проект и предложим оптимальное решение. Получите консультацию по внедрению — оценим ваш проект бесплатно.