Как в Ant Design кастомизировать цвета: полное руководство

Ant Design (antd) — это мощная библиотека компонентов для React, предоставляющая множество готовых решений для создания интерфейсов. Визуальный стиль antd включает в себя базовую палитру, которую можно настроить под требования проекта. Эта статья расскажет, как кастомизировать цвета в antd, включая изменение основной темы, настройку цветовых переменных и использование CSS-in-JS подхода для создания уникального дизайна приложения.
Основные способы кастомизации цветов в Ant Design
Ant Design предлагает несколько способов настройки цветовой палитры. Вот основные методы:
- Изменение темы с помощью less: Ant Design построен на
less
, и изменение цветовых переменных черезless
позволяет гибко настраивать тему. - Использование библиотеки antd с
craco
:craco
упрощает настройку проектаcreate-react-app
для поддержки кастомизации less. - Прямая настройка стилей через CSS-in-JS: Использование styled-components или встроенных стилей для применения индивидуальных цветов к компонентам.
Настройка темы с использованием less
Ant Design предоставляет множество переменных для настройки цветов через less
. Для использования этого подхода нужно настроить поддержку less
в проекте React. Если проект создан с использованием create-react-app
, рекомендуется использовать craco
.
Настройка проекта с помощью craco
Для начала установим необходимые зависимости:
npm install @craco/craco craco-less less less-loader
Затем создадим файл craco.config.js
в корневой директории проекта:
const CracoLessPlugin = require('craco-less');
module.exports = {
plugins: [
{
plugin: CracoLessPlugin,
options: {
lessLoaderOptions: {
lessOptions: {
modifyVars: { '@primary-color': '#1DA57A' },
javascriptEnabled: true,
},
},
},
},
],
};
В этом примере мы изменяем переменную @primary-color
на #1DA57A
, что обновляет основной цвет темы Ant Design на зелёный. Теперь в package.json
нужно заменить команду react-scripts start
на craco start
:
"scripts": {
"start": "craco start",
"build": "craco build",
"test": "craco test"
}
После этого при запуске приложения будут применены изменения в теме, и новый цвет станет основным для всех компонентов Ant Design.
Настройка цветов с использованием CSS-in-JS
Если вам нужно изменить цвет только для отдельных компонентов, без изменения всей темы, можно использовать CSS-in-JS, такие как styled-components или встроенные стили. Это позволит вам применять кастомные стили без необходимости изменять конфигурацию темы.
Пример использования styled-components:
import React from 'react';
import styled from 'styled-components';
import { Button } from 'antd';
const CustomButton = styled(Button)`
background-color: #1DA57A;
border-color: #1DA57A;
&:hover {
background-color: #1890ff;
border-color: #1890ff;
}
`;
function App() {
return <CustomButton>Кастомная кнопка</CustomButton>;
}
export default App;
Здесь мы изменили цвет фона и границы кнопки, используя styled-components
, что даёт больше гибкости для стилизации отдельных компонентов.
Использование переменных темы в less
Ant Design поддерживает более 100 переменных, которые можно изменить для настройки стиля, включая цвета, отступы, размеры шрифтов и многое другое. Вот несколько часто используемых переменных:
@primary-color
: Основной цвет темы, влияет на кнопки, ссылки и многие другие элементы.@link-color
: Цвет ссылок.@success-color
: Цвет для успешных сообщений.@warning-color
: Цвет для предупреждений.@error-color
: Цвет для ошибок.
Полный список переменных можно найти в документации Ant Design. Изменяя их, можно полностью преобразить внешний вид приложения под нужды бизнеса или брендовые цвета.
Заключение
Кастомизация цветов в Ant Design позволяет создать уникальный дизайн приложения, который будет соответствовать требованиям проекта. Используя less и craco
, можно гибко изменять тему, а CSS-in-JS даёт возможность настроить отдельные компоненты.