Препроцесор 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
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    997

Препроцесор 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 години і запропонуємо оптимальне рішення. Зв'яжіться з нами, щоб отримати консультацію та приклади успішних кейсів.