React项目使用 antd 并改变主题色
antd 样式主题自定义
-
安装
antd
组件库npm i antd --save
-
在
index.tsx
中引入样式的less
文件(引入less,为了自定义主题色)import 'antd/dist/antd.less'
-
使用
craco
:Create React App Configuration Override 用来覆盖配置yarn add @craco/craco
-
pageage.json
中的scripts
中的react-script
全部替换成craco
(eject 不需要换)"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" },
替换成
"scripts": { "start": "craco start", "build": "craco build", "test": "craco test", "eject": "react-scripts eject" },
-
安装依赖
craco-less
yarn add craco-less
-
在项目根目录新建一个文件
craco.config.js
const CracoLessPlugin = require('craco-less'); module.exports = { plugins: [ { plugin: CracoLessPlugin, options: { lessLoaderOptions: { lessOptions: { modifyVars: { '@primary-color': '#1DA57A' }, javascriptEnabled: true, }, }, }, }, ], };
-
在
craco.config.js
中修改modifyVars
中的值,就可以进行修改主题变量常用的主题变量有:
@primary-color: #1890ff; // 全局主色 @link-color: #1890ff; // 链接色 @success-color: #52c41a; // 成功色 @warning-color: #faad14; // 警告色 @error-color: #f5222d; // 错误色 @font-size-base: 14px; // 主字号 @heading-color: rgba(0, 0, 0, 0.85); // 标题色 @text-color: rgba(0, 0, 0, 0.65); // 主文本色 @text-color-secondary: rgba(0, 0, 0, 0.45); // 次文本色 @disabled-color: rgba(0, 0, 0, 0.25); // 失效色 @border-radius-base: 2px; // 组件/浮层圆角 @border-color-base: #d9d9d9; // 边框色 @box-shadow-base: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05); // 浮层阴影