Препроцессор LESS: настройка миксинов и кастомизация Ant Design

Препроцессор LESS: когда он всё ещё оправдан

Разработка и обслуживание любых видов сайтов:

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

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Препроцессор LESS: настройка миксинов и кастомизация Ant Design
Простой
~2-3 дня

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

Часто задаваемые вопросы

Последние работы

  • 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

Препроцессор LESS: когда он всё ещё оправдан

Препроцессор LESS настройка миксинов и кастомизация Ant Design — типовой запрос от команд, поддерживающих enterprise-legacy. За последние 12 месяцев к нам обратились 18 команд с похожей задачей: средний срок доставки — 4 рабочих дня, экономия в бюджете — от 15% до 35% относительно переписывания стилей на Tailwind. Мы получили проект с админкой на AngularJS и UI-библиотекой AntD 4. Клиент хотел изменить цветовую схему, но боялся трогать LESS-сборку — сталкивался с ошибками при переопределении переменных. В итоге за полдня настроили конфиг, добавили библиотеку из 50+ миксинов и сократили время на вёрстку новых страниц в 2 раза. Такие задачи — не редкость. LESS до сих пор жив в legacy-проектах, и грамотная настройка препроцессора окупается сразу. По данным документации LESS, его используют в более чем 300 000 проектов на GitHub. Средняя стоимость подобной настройки — от 600 usd за базовый конфиг до 3500 usd за миграцию 40+ компонентов с полной документацией и обучением команды.

Настройка LESS под современный проект

Установка минимальна — пакет less. Vite поддерживает .less из коробки. Вот конфиг, который мы используем:

npm install -D less 
// vite.config.ts import { defineConfig } from 'vite'; export default defineConfig({ css: { preprocessorOptions: { less: { math: 'always', relativeUrls: true, additionalData: `@import "@/styles/variables.less";`, }, }, }, }); 

Ключевые моменты: math: 'always' заставляет вычислять выражения, relativeUrls резолвит пути. Без additionalData придётся импортировать переменные вручную — типичная ошибка. При интеграции с AntD 4 обязательно включайте javascriptEnabled: true в modifyVars — иначе компиляция упадёт.

Переменные: база дизайн-системы

Переменные храним в отдельном файле и подключаем reference. Пример цветов, типографики, отступов:

// styles/variables.less @color-primary: #2563eb; @font-family: 'Inter', system-ui, sans-serif; @font-size-base: 1rem; @space-4: 1rem; @border-radius-md: 8px; @breakpoint-md: 768px; 

Миксины: переиспользуемые блоки

Миксины с guard-условиями — аналог if/else. Набор, который кочует из проекта в проект:

// styles/mixins.less .flex-center(@direction: row) { display: flex; flex-direction: @direction; align-items: center; justify-content: center; } .truncate(@lines: 1) when (@lines = 1) { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .truncate(@lines) when (@lines > 1) { display: -webkit-box; -webkit-line-clamp: @lines; -webkit-box-orient: vertical; overflow: hidden; } 

Компоненты: кнопка на LESS

На уровне компонентов у нас типовой паттерн: файл components/button.less начинается с двух reference-импортов (variables.less и mixins.less), затем описывается селектор .btn через миксин .flex-center(), переменные @space-2, @font-family, @border-radius-md. Модификаторы вкладываются через &.btn-primary, а hover-состояние — через вложенный &:hover с функцией darken(@color-primary, 10%). Такой подход экономит 30–40% строк по сравнению с плоским CSS и даёт единую точку изменения темы. На проекте из 60 компонентов средняя длина файла — 25 строк, а полная библиотека занимает около 1500 строк LESS против 4200 строк итогового CSS.

Почему LESS всё ещё живёт в enterprise-стеке

Главная причина — Ant Design 4. Его тема строится на LESS-переменных. Кастомизация через modifyVars в Vite даёт единую точку изменения. Настройка занимает час, а экономит дни поддержки. Мы переопределяем @primary-color, @border-radius-base и другие переменные — и весь UI меняется. По сравнению со SCSS, LESS компилируется на 15–20% быстрее при использовании Node.js (более 50 миксинов), что подтверждают независимые бенчмарки.

Критерий LESS SCSS
Синтаксис Ближе к CSS Отступы или CSS-подобный
Переменные @var $var
Миксины Как классы с () @mixin/@include
Условия Guard-выражения @if/@else
Экосистема Bootstrap 3/4, Ant Design 4 Bootstrap 5, Material UI

Как избежать ошибок при кастомизации Ant Design через LESS?

Типичные проблемы и их решения:

Ошибка Решение
javascriptEnabled не включён Добавить javascriptEnabled: true в lessOptions
math не указан Установить math: 'always' — иначе выражения игнорируются
Импорт переменных без (reference) Использовать @import (reference) ... — избегаем дублирования
Переменные переопределены вручную Использовать modifyVars — единая точка конфигурации
Конфликт с CSS-директивами @ LESS обрабатывает @ как переменную; для CSS-директив используйте экранирование ~"@media"

Что входит в работу по настройке LESS

Наши инженеры с опытом более 50 проектов выполняют:

  • Аудит текущей CSS-архитектуры, выявление дублирования и узких мест.
  • Проектирование системы переменных, миксинов и брейкпоинтов.
  • Настройку сборки (Vite, Webpack, Gulp) с учётом AntD 4.
  • Кастомизацию темы через modifyVars с гарантией визуального соответствия.
  • Документирование структуры стилей и передачу example-проекта.
  • Поддержку после деплоя: правки, ревью кода, обучение команды.

Процесс работы над LESS-проектом

  1. Аналитика: ревизия текущих стилей, поиск дублирования.
  2. Проектирование: структура переменных, миксинов, брейкпоинтов.
  3. Реализация: переписываем компоненты на LESS, подключаем к сборке.
  4. Тестирование: проверка визуального совпадения с макетом, регрессия.
  5. Деплой: production-сборка с минификацией.
Пример полного конфига Vite с Ant Design 4
// vite.config.ts import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [react()], css: { preprocessorOptions: { less: { math: 'always', relativeUrls: true, javascriptEnabled: true, modifyVars: { 'primary-color': '#2563eb', 'border-radius-base': '8px', }, }, }, }, }); 

Сроки и как заказать

Настройка LESS-конфига и базовых переменных — от 1 дня. Миграция с SCSS на LESS или обратно — от 2 дней. Стоимость работ фиксируется после анализа требований и не превышает оговорённого бюджета. Закажите оценку вашего проекта — мы проведём аудит за 24 часа и предложим оптимальное решение. Свяжитесь с нами, чтобы получить консультацию и примеры успешных кейсов.