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

Работаете с legacy-проектом, где стили на LESS, и кастомизация Ant Design превращается в проблему? Наша команда настраивает препроцессор LESS, миксины и переменные так, чтобы вёрстка стала гибкой и предсказуемой. Мы реализуем проект под ключ — от конфигурации до поддержки, с учётом вашей архитектуры и без срыва сроков.

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

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

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

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

Препроцессор 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 часа и предложим оптимальное решение. Свяжитесь с нами, чтобы получить консультацию и примеры успешных кейсов.

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060