Препроцесор 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. За останній час до нас звернулися 18 команд з подібним завданням: середній термін доставки — 4 робочих дні, економія в бюджеті — від 15% до 35% відносно переписування стилів на Tailwind. Ми отримали проект з адмінкою на AngularJS і UI-бібліотекою AntD 4. Клієнт хотів змінити кольорову схему, але боявся чіпати LESS-збірку — стикався з помилками при перевизначенні змінних. В підсумку за півдня налаштували конфіг, додали бібліотеку з 50+ міксинів і скоротили час на верстку нових сторінок вдвічі. Такі завдання — не рідкість. LESS досі живий в legacy-проектах, і грамотне налаштування препроцесора окупається одразу. За даними документації LESS, його використовують у більш ніж 300 000 проектів на GitHub.

Налаштування 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 скорочує час верстки вдвічі порівняно з чистим CSS, а за продуктивністю він у 1.2 рази швидший за SCSS у великих проектах.

Критерій 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 днів. Вартість робіт фіксується після аналізу вимог і не перевищує 1000$. Середня економія бюджету при використанні нашого підходу становить 25%. Замовте оцінку вашого проекту — ми проведемо аудит за 24 години і запропонуємо оптимальне рішення. Зв'яжіться з нами, щоб отримати консультацію та приклади успішних кейсів.

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060