logoReady Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
1.0.26
  • Ant Design of React
  • 快速上手
  • 项目实战
  • 在 create-react-app 中使用
  • 在 TypeScript 中使用
  • 样式兼容
  • 定制主题
  • 使用自定义日期库
  • 从 v4 到 v5
  • 社区精选组件
  • 国际化
  • FAQ
  • 贡献指南
  • 更新日志
在 ConfigProvider 中配置主题
修改主题变量
使用预设算法
修改组件变量 (Component Token)
动态主题的其他使用方式
动态切换
局部主题
使用 Design Token
静态消费(如 less)
进阶使用
演变过程
基础变量(Seed Token)
梯度变量(Map Token)
别名变量(Alias Token)
基本算法(algorithm)
服务端渲染
兼容旧版浏览器
Shadow DOM 场景
API
Theme
OverrideToken
SeedToken
MapToken
AliasToken
StyleProvider
调试主题
主题展示
FAQ
为什么 theme 从 undefined 变为对象或者变为 undefined 时组件重新 mount 了?
样式兼容使用自定义日期库

相关资源

Ant Design Charts
Ant Design Pro
Ant Design Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Landing-首页模板集
Scaffolds-脚手架市场
Umi-React 应用开发框架
dumi-组件/文档研发工具
qiankun-微前端框架
ahooks-React Hooks 库
Ant Motion-设计动效
国内镜像站点 🇨🇳

社区

Awesome Ant Design
Medium
Twitter
yuqueAnt Design 语雀专栏
Ant Design 知乎专栏
体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会
加入我们

帮助

GitHub
更新日志
常见问题
报告 Bug
议题
讨论区
StackOverflow
SegmentFault

Ant XTech更多产品

yuque语雀-构建你的数字花园
AntVAntV-数据可视化解决方案
EggEgg-企业级 Node.js 框架
kitchenKitchen-Sketch 工具集
xtech蚂蚁体验科技
主题编辑器
Made with ❤ by
蚂蚁集团和 Ant Design 开源社区

Ant Design 设计规范和技术上支持灵活的样式定制,以满足业务和品牌上多样化的视觉需求,包括但不限于全局样式(主色、圆角、边框)和指定组件的视觉定制。

在 5.0 版本的 Ant Design 中,我们提供了一套全新的定制主题方案。不同于 4.x 版本的 less 和 CSS 变量,有了 CSS-in-JS 的加持后,动态主题的能力也得到了加强,包括但不限于:

  1. 支持动态切换主题;
  2. 支持同时存在多个主题;
  3. 支持针对某个/某些组件修改主题变量;
  4. ...

在 ConfigProvider 中配置主题

在 5.0 版本中我们把影响主题的最小元素称为 Design Token。通过修改 Design Token,我们可以呈现出各种各样的主题或者组件。

修改主题变量

通过在 ConfigProvider 中传入 theme,可以配置主题。在升级 v5 后,将默认使用 v5 的主题,以下是将配置主题示例:

import { Button, ConfigProvider } from 'antd';
import React from 'react';
const App: React.FC = () => (
<ConfigProvider
theme={{
token: {
colorPrimary: '#00b96b',
},
}}
>
<Button />
</ConfigProvider>
);
export default App;

这将会得到一个以 #00b96b 为主色的主题,以 Button 组件为例可以看到相应的变化:

themed button

使用预设算法

通过修改算法可以快速生成风格迥异的主题,5.0 版本中默认提供三套预设算法,分别是默认算法 theme.defaultAlgorithm、暗色算法 theme.darkAlgorithm 和紧凑算法 theme.compactAlgorithm。你可以通过修改 ConfigProvider 中 theme 属性的 algorithm 属性来切换算法。

import { Button, ConfigProvider, theme } from 'antd';
import React from 'react';
const App: React.FC = () => (
<ConfigProvider
theme={{
algorithm: theme.darkAlgorithm,
}}
>
<Button />
</ConfigProvider>
);
export default App;

修改组件变量 (Component Token)

除了整体的 Design Token,各个组件也会开放自己的 Component Token 来实现针对组件的样式定制能力,不同的组件之间不会相互影响。同样地,也可以通过这种方式来覆盖组件的其他 Design Token。

import { Checkbox, ConfigProvider, Radio } from 'antd';
import React from 'react';
const App: React.FC = () => (
<ConfigProvider
theme={{
components: {
Radio: {
colorPrimary: '#00b96b',
},
},
}}
>
<Radio>Radio</Radio>
<Checkbox>Checkbox</Checkbox>
</ConfigProvider>
);
export default App;

通过这种方式,我们可以仅将 Radio 组件的主色改为 #00b96b 而不会影响其他组件。

component token

注意:ConfigProvider 对 message.xxx、Modal.xxx、notification.xxx 等静态方法不会生效,原因是在这些方法中,antd 会通过 ReactDOM.render 动态创建新的 React 实体。其 context 与当前代码所在 context 并不相同,因而无法获取 context 信息。当你需要 context 信息(例如 ConfigProvider 配置的内容)时,可以通过 Modal.useModal 方法会返回 modal 实体以及 contextHolder 节点。将其插入到你需要获取 context 位置即可,也可通过 App 包裹组件 简化 useModal 等方法需要手动植入 contextHolder 的问题。

动态主题的其他使用方式

动态切换

在 v5 中,动态切换主题对用户来说是非常简单的,你可以在任何时候通过 ConfigProvider 的 theme 属性来动态切换主题,而不需要任何额外配置。

局部主题

可以嵌套使用 ConfigProvider 来实现局部主题的更换。在子主题中未被改变的 Design Token 将会继承父主题。

import { Button, ConfigProvider } from 'antd';
import React from 'react';
const App: React.FC = () => (
<ConfigProvider
theme={{
token: {
colorPrimary: '#1677ff',
},
}}
>
<Button />
<ConfigProvider
theme={{
token: {
colorPrimary: '#1890ff',
},
}}
>
<Button />
</ConfigProvider>
</ConfigProvider>
);
export default App;

使用 Design Token

如果你希望使用当前主题下的 Design Token,我们提供了 useToken 这个 hook 来获取 Design Token。

import { Button, theme } from 'antd';
import React from 'react';
const { useToken } = theme;
const App: React.FC = () => {
const { token } = useToken();
return <Button style={{ backgroundColor: token.colorPrimary }}>Button</Button>;
};
export default App;

静态消费(如 less)

当你需要非 React 生命周期消费 Token 变量时,可以通过静态方法将其导出:

import { theme } from 'antd';
const { defaultAlgorithm, defaultSeed } = theme;
const mapToken = defaultAlgorithm(defaultSeed);

如果需要将其应用到静态样式编译框架,如 less 可以通过 less-loader 注入:

{
loader: "less-loader",
options: {
lessOptions: {
modifyVars: mapToken,
},
},
}

兼容包提供了变量转换方法用于转成 v4 的 less 变量,如需使用点击此处查看详情。

进阶使用

在 Design Token 中我们提供了一套更加贴合设计的三层结构,将 Design Token 拆解为 Seed Token、Map Token 和 Alias Token 三部分。这三组 Token 并不是简单的分组,而是一个三层的派生关系,由 Seed Token 派生 Map Token,再由 Map Token 派生 Alias Token。在大部分情况下,使用 Seed Token 就可以满足定制主题的需要。但如果您需要更高程度的主题定制,您需要了解 antd 中 Design Token 的生命周期。

演变过程

token

基础变量(Seed Token)

Seed Token 意味着所有设计意图的起源。比如我们可以通过改变 colorPrimary 来改变主题色,antd 内部的算法会自动的根据 Seed Token 计算出对应的一系列颜色并应用:

const theme = {
token: {
colorPrimary: '#1890ff',
},
};

梯度变量(Map Token)

Map Token 是基于 Seed 派生的梯度变量。定制 Map Token 推荐通过 theme.algorithm 来实现,这样可以保证 Map Token 之间的梯度关系。也可以通过 theme.token 覆盖,用于单独修改一些 map token 的值。

const theme = {
token: {
colorPrimaryBg: '#e6f7ff',
},
};

别名变量(Alias Token)

Alias Token 用于批量控制某些共性组件的样式,基本上是 Map Token 别名,或者特殊处理过的 Map Token。

const theme = {
token: {
colorLink: '#1890ff',
},
};

基本算法(algorithm)

基本算法用于将 Seed Token 展开为 Map Token,比如由一个基本色算出一个梯度色板,或者由一个基本的圆角算出各种大小的圆角。算法可以单独使用,也可以任意地组合使用,比如可以将暗色算法和紧凑算法组合使用,得到一个暗色和紧凑相结合的主题。

import { theme } from 'antd';
const { darkAlgorithm, compactAlgorithm } = theme;
const theme = {
algorithm: [darkAlgorithm, compactAlgorithm],
};

服务端渲染

使用 @ant-design/cssinjs 将所需样式抽离:

import { createCache, extractStyle, StyleProvider } from '@ant-design/cssinjs';
import { renderToString } from 'react-dom/server';
export default () => {
// SSR Render
const cache = createCache();
const html = renderToString(
<StyleProvider cache={cache}>
<MyApp />
</StyleProvider>,
);
// Grab style from cache
const styleText = extractStyle(cache);
// Mix with style
return `
<!DOCTYPE html>
<html>
<head>
${styleText}
</head>
<body>
<div id="root">${html}</div>
</body>
</html>
`;
};

兼容旧版浏览器

请参考文档 样式兼容。

Shadow DOM 场景

在 Shadow DOM 场景中,由于其添加 <style /> 标签的方式与普通 DOM 不同,所以需要使用 @ant-design/cssinjs 的 StyleProvider 配置 container 属性用于设置插入位置:

import { StyleProvider } from '@ant-design/cssinjs';
import { createRoot } from 'react-dom/client';
const shadowRoot = someEle.attachShadow({ mode: 'open' });
const container = document.createElement('div');
shadowRoot.appendChild(container);
const root = createRoot(container);
root.render(
<StyleProvider container={shadowRoot}>
<MyApp />
</StyleProvider>,
);

API

Theme

属性说明类型默认值
token用于修改 Design TokenAliasToken-
inherit继承上层 ConfigProvider 中配置的主题。booleantrue
algorithm用于修改 Seed Token 到 Map Token 的算法(token: SeedToken) => MapToken | ((token: SeedToken) => MapToken)[]defaultAlgorithm
components用于修改各个组件的 Component Token 以及覆盖该组件消费的 Alias TokenOverrideToken-

OverrideToken

属性说明类型默认值
Component (可以是任意 antd 组件名,如 Button)用于修改 Component Token 以及覆盖该组件消费的 Alias TokenComponentToken & AliasToken-

SeedToken

Token 名称描述类型默认值
borderRadius基础组件的圆角大小,例如按钮、输入框、卡片等number8
colorBgBase用于派生背景色梯度的基础变量,v5 中我们添加了一层背景色的派生算法可以产出梯度明确的背景色的梯度变量。但 **请不要在代码中直接使用该 Seed Token** !string#fff
colorBgReadystring#EAF7F7
colorError用于表示操作失败的 Token 序列,如失败按钮、错误状态提示(Result)组件等。string#ff4d4f
colorInfo用于表示操作信息的 Token 序列,如 Alert 、Tag、 Progress 等组件都有用到该组梯度变量。string#1677ff
colorLightGreystring#EAECF2
colorPrimary品牌色是体现产品特性和传播理念最直观的视觉元素之一。在你完成品牌主色的选取之后,我们会自动帮你生成一套完整的色板,并赋予它们有效的设计语义string#2db1aa
colorSuccess用于表示操作成功的 Token 序列,如 Result、Progress 等组件会使用该组梯度变量。string#52c41a
colorTextBase用于派生文本色梯度的基础变量,v5 中我们添加了一层文本色的派生算法可以产出梯度明确的文本色的梯度变量。但**请不要在代码中直接使用该 Seed Token**!string#000
colorWarning用于表示操作警告的 Token 序列,如 Notification、 Alert等警告类组件或 Input 输入类等组件会使用该组梯度变量。string#faad14
controlHeightAnt Design 中按钮和输入框等基础控件的高度number32
cyanstring#13C2C2
fontFamilyAnt Design 的字体家族中优先使用系统默认的界面字体,同时提供了一套利于屏显的备用字体库,来维护在不同平台以及浏览器的显示下,字体始终保持良好的易读性和可读性,体现了友好、稳定和专业的特性。string-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'
fontSize设计系统中使用最广泛的字体大小,文本梯度也将基于该字号进行派生。number14
geekbluestring#2F54EB
goldstring#FAAD14
limestring#A0D911
lineType用于控制组件边框、分割线等的样式,默认是实线stringsolid
lineWidth用于控制组件边框、分割线等的宽度number1
magentastring#EB2F96
motionBasenumber0
motionEaseInBackstringcubic-bezier(0.71, -0.46, 0.88, 0.6)
motionEaseInOutstringcubic-bezier(0.645, 0.045, 0.355, 1)
motionEaseInOutCircstringcubic-bezier(0.78, 0.14, 0.15, 0.86)
motionEaseInQuintstringcubic-bezier(0.755, 0.05, 0.855, 0.06)
motionEaseOutstringcubic-bezier(0.215, 0.61, 0.355, 1)
motionEaseOutBackstringcubic-bezier(0.12, 0.4, 0.29, 1.46)
motionEaseOutCircstringcubic-bezier(0.08, 0.82, 0.17, 1)
motionEaseOutQuintstringcubic-bezier(0.23, 1, 0.32, 1)
motionUnit用于控制动画时长的变化单位number0.1
opacityImagenumber1
orangestring#FA8C16
pinkstring#eb2f96
purplestring#722ED1
sizePopupArrownumber16
sizeStep用于控制组件尺寸的基础步长,尺寸步长结合尺寸变化单位,就可以派生各种尺寸梯度。通过调整步长即可得到不同的布局模式,例如 V5 紧凑模式下的尺寸步长为 2number4
sizeUnit用于控制组件尺寸的变化单位,在 Ant Design 中我们的基础单位为 4 ,便于更加细致地控制尺寸梯度number4
volcanostring#FA541C
wireframe用于将组件的视觉效果变为线框化,如果需要使用 V4 的效果,需要开启配置项booleanfalse
yellowstring#FADB14
zIndexBase所有组件的基础 Z 轴值,用于一些悬浮类的组件的可以基于该值 Z 轴控制层级,例如 BackTop、 Affix 等number0
zIndexPopupBase浮层类组件的基础 Z 轴值,用于一些悬浮类的组件的可以基于该值 Z 轴控制层级,例如 FloatButton、 Affix、Modal 等number1000

MapToken

继承所有 SeedToken 的属性

Token 名称描述类型默认值
blue-100string#ECF1FD
blue-200string#B5C8F8
blue-300string#90ADF4
blue-400string#6B91F1
blue-500string#4676ED
blue-600string
blue-700string
blue-800string
bluePurple-100string
bluePurple-200string#DDE3FD
bluePurple-300string#CBD4FC
bluePurple-400string#BAC6FB
bluePurple-500string#A9B8FA
bluePurple-600string#8793C8
bluePurple-700string#656E96
bluePurple-800string#444A64
borderRadiusLGLG号圆角,用于组件中的一些大圆角,如 Card、Modal 等一些组件样式。number10
borderRadiusOuternumber6
borderRadiusSMSM号圆角,用于组件小尺寸下的圆角,如 Button、Input、Select 等输入类控件在 small size 下的圆角number6
borderRadiusXSXS号圆角,用于组件中的一些小圆角,如 Segmented 、Arrow 等一些内部圆角的组件样式中。number2
colorBgContainerThe background color of the container of the component, for example: default button, input box, etc. Be sure not to confuse this with colorBgElevated.string#ffffff
colorBgElevatedThe background color of the floating layer container. In dark mode, the token's color value will be brighter than `colorBgContainer`. For example: modal box, pop-up box, menu, etc.string#ffffff
colorBgInteractiveFor background of grey buttonstring#f4f4f4
colorBgLayoutThis color is used for the background color of the overall layout of the page. This token will only be used when it needs to be at the B1 visual level in the page. Other usages are wrongstring#f4f4f4
colorBgMask浮层的背景蒙层颜色,用于遮罩浮层下面的内容,Modal、Drawer 等组件的蒙层使用的是该 tokenstringrgba(0, 0, 0, 0.45)
colorBgSpotlightThis color is used to draw the user's strong attention to the background color, currently only used on the background color of Tooltip.stringrgba(0, 0, 0, 0.85)
colorBorder默认使用的边框颜色, 用于分割不同的元素,例如:表单的分割线、卡片的分割线等。string#ebebeb
colorBorderBold00string#d9d9d9
colorBorderSecondary比默认使用的边框色要浅一级,此颜色和 colorSplit 的颜色一致。使用的是实色。string#f0f0f0
colorBorderSubtle00string#ebebeb
colorErrorActivestring#d9363e
colorErrorBgstring#fff2f0
colorErrorBgHoverstring#fff1f0
colorErrorBorderstring#ffccc7
colorErrorBorderHoverstring#ffa39e
colorErrorHoverstring#ff7875
colorErrorTextstring#ff4d4f
colorErrorTextActivestring#d9363e
colorErrorTextHoverstring#ff7875
colorFill最深的填充色,用于拉开与二、三级填充色的区分度,目前只用在 Slider 的 hover 效果。stringrgba(0, 0, 0, 0.15)
colorFillQuaternary最弱一级的填充色,适用于不易引起注意的色块,例如斑马纹、区分边界的色块等。stringrgba(0, 0, 0, 0.02)
colorFillSecondary二级填充色可以较为明显地勾勒出元素形体,如 Rate、Skeleton 等。也可以作为三级填充色的 Hover 状态,如 Table 等。stringrgba(0, 0, 0, 0.06)
colorFillTertiary三级填充色用于勾勒出元素形体的场景,如 Slider、Segmented 等。如无强调需求的情况下,建议使用三级填色作为默认填色。stringrgba(0, 0, 0, 0.04)
colorInfoActivestring#0958d9
colorInfoBg信息色的浅色背景颜色string#e6f4ff
colorInfoBgHover信息色的浅色背景色悬浮态string#bae0ff
colorInfoBorderstring#91caff
colorInfoBorderHoverstring#69b1ff
colorInfoHoverstring#69b1ff
colorInfoTextstring#1677ff
colorInfoTextActivestring#0958d9
colorInfoTextHoverstring#4096ff
colorPrimary-1stringlinear-gradient(0deg, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0.6)), #2db1aa
colorPrimary-10string
colorPrimary-2stringlinear-gradient(0deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.4)), #2db1aa
colorPrimary-3stringlinear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), #2db1aa
colorPrimary-4string#2db1aa
colorPrimary-5stringlinear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), #2db1aa
colorPrimary-6stringlinear-gradient(0deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), #2db1aa
colorPrimary-7stringlinear-gradient(0deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), #2db1aa
colorPrimary-8string
colorPrimary-9string
colorPrimaryActive主色梯度下的深色激活态string#1c8a88
colorPrimaryBg主色浅色背景颜色,一般用于视觉层级较弱的选中状态。string#e1f0ed
colorPrimaryBgHover与主色浅色背景颜色相对应的悬浮态颜色。string#cae3de
colorPrimaryBorder主色梯度下的描边用色,用在 Slider 组件的描边上string#9cd6ce
colorPrimaryBorderHover主色梯度下的描边用色的悬浮态,Slider 、Button 等组件的描边 Hover 时会使用string#73c9bf
colorPrimaryHover主色梯度下的悬浮态,使用频率很高string#4dbdb3
colorPrimaryText主色梯度下的文本颜色string#2db1aa
colorPrimaryTextActive主色梯度下的文本激活态string#1c8a88
colorPrimaryTextHover主色梯度下的文本悬浮态string#4dbdb3
colorSuccessActive成功色的深色激活态string#389e0d
colorSuccessBg成功色的浅色背景颜色,用于 Tag 和 Alert 的成功态背景色string#f6ffed
colorSuccessBgHover成功色浅色背景颜色,一般用于视觉层级较弱的选中状态,不过 antd 目前没有使用到该 tokenstring#d9f7be
colorSuccessBorder成功色的描边色,用于 Tag 和 Alert 的成功态描边色string#b7eb8f
colorSuccessBorderHover成功色的描边色悬浮态string#95de64
colorSuccessHover成功色的深色悬浮态string#95de64
colorSuccessText成功色的文本默认态string#52c41a
colorSuccessTextActive成功色的文本激活态string#389e0d
colorSuccessTextHover成功色的文本悬浮态string#73d13d
colorText最深的文本色。为了符合W3C标准,默认的文本颜色使用了该色,同时这个颜色也是最深的中性色。stringrgba(0, 0, 0, 0.88)
colorTextQuaternary第四级文本色是最浅的文本色,例如表单的输入提示文本、禁用色文本等。stringrgba(0, 0, 0, 0.25)
colorTextSecondary作为第二梯度的文本色,一般用在不那么需要强化文本颜色的场景,例如 Label 文本、Menu 的文本选中态等场景。stringrgba(0, 0, 0, 0.65)
colorTextTertiary第三级文本色一般用于描述性文本,例如表单的中的补充说明文本、列表的描述性文本等场景。stringrgba(0, 0, 0, 0.45)
colorWarningActive警戒色的深色激活态string#d48806
colorWarningBgstring#fffbe6
colorWarningBgHover警戒色的浅色背景色悬浮态string#fff1b8
colorWarningBorder警戒色的描边色string#ffe58f
colorWarningBorderHover警戒色的描边色悬浮态string#ffd666
colorWarningHover警戒色的深色悬浮态string#ffd666
colorWarningText警戒色的文本默认态string#faad14
colorWarningTextActive警戒色的文本激活态string#d48806
colorWarningTextHover警戒色的文本悬浮态string#ffc53d
colorWhite不随主题变化的纯白色string#fff
controlHeightLGnumber40
controlHeightSMnumber24
controlHeightXSnumber16
cyan-1string#e6fffb
cyan-10string#002329
cyan-2string#b5f5ec
cyan-3string#87e8de
cyan-4string#5cdbd3
cyan-5string#36cfc9
cyan-6string#13c2c2
cyan-7string#08979c
cyan-8string#006d75
cyan-9string#00474f
darkgray-100string
darkgray-200string#A9AAAC
darkgray-300string#7F7F83
darkgray-400string#545559
darkgray-500string#292A30
darkgray-600string#212226
darkgray-700string#19191D
darkgray-800string#101113
fontSizeHeading1H1 标签所使用的字号number38
fontSizeHeading2h2 标签所使用的字号number30
fontSizeHeading3h3 标签使用的字号number24
fontSizeHeading4h4 标签使用的字号number20
fontSizeHeading5h5 标签使用的字号number16
fontSizeLGnumber16
fontSizeSMnumber12
fontSizeXLnumber20
geekblue-1string#f0f5ff
geekblue-10string#030852
geekblue-2string#d6e4ff
geekblue-3string#adc6ff
geekblue-4string#85a5ff
geekblue-5string#597ef7
geekblue-6string#2f54eb
geekblue-7string#1d39c4
geekblue-8string#10239e
geekblue-9string#061178
gold-1string#fffbe6
gold-10string#613400
gold-2string#fff1b8
gold-3string#ffe58f
gold-4string#ffd666
gold-5string#ffc53d
gold-6string#faad14
gold-7string#d48806
gold-8string#ad6800
gold-9string#874d00
green-100string#F7FDF7
green-200string#ECFAE8
green-300string#B3EAA5
green-400string#79DA61
green-500string#63CE54
green-600string
green-700string
green-800string
ink-100string#F4F4F4
ink-200string#EBEBEB
ink-300string#C4C4C4
ink-400string#9C9C9C
ink-500string#292A30
ink-600string
ink-700string
ink-800string
lemonYellow-100string
lemonYellow-200string#FDFFE3
lemonYellow-300string#FCFFD6
lemonYellow-400string#FBFFC8
lemonYellow-500string#FAFFBA
lemonYellow-600string#C8CC95
lemonYellow-700string#969970
lemonYellow-800string#64664A
lightIndogo-100string
lightIndogo-200string#C8C4FB
lightIndogo-300string#ACA7FA
lightIndogo-400string#9189F8
lightIndogo-500string#756CF6
lightIndogo-600string#5E56C5
lightIndogo-700string#464194
lightIndogo-800string#2F2B62
lime-1string#fcffe6
lime-10string#254000
lime-2string#f4ffb8
lime-3string#eaff8f
lime-4string#d3f261
lime-5string#bae637
lime-6string#a0d911
lime-7string#7cb305
lime-8string#5b8c00
lime-9string#3f6600
lineHeightnumber1.5714285714285714
lineHeightHeading1number1.2105263157894737
lineHeightHeading2number1.2666666666666666
lineHeightHeading3number1.3333333333333333
lineHeightHeading4number1.4
lineHeightHeading5number1.5
lineHeightLGnumber1.5
lineHeightSMnumber1.6666666666666667
lineWidthBold描边类组件的默认线宽,如 Button、Input、Select 等输入类控件。number2
magenta-1string#fff0f6
magenta-10string#520339
magenta-2string#ffd6e7
magenta-3string#ffadd2
magenta-4string#ff85c0
magenta-5string#f759ab
magenta-6string#eb2f96
magenta-7string#c41d7f
magenta-8string#9e1068
magenta-9string#780650
mint-100string
mint-200string#ABE0DD
mint-300string#81D0CC
mint-400string#57C1BB
mint-500string#2DB1AA
mint-600string#248E88
mint-700string#1B6A66
mint-800string#124744
motionDurationFaststring0.1s
motionDurationMidstring0.2s
motionDurationSlowstring0.3s
orange-1string#fff7e6
orange-10string#612500
orange-2string#ffe7ba
orange-3string#ffd591
orange-4string#ffc069
orange-5string#ffa940
orange-6string#fa8c16
orange-7string#d46b08
orange-8string#ad4e00
orange-9string#873800
pink-1string#fff0f6
pink-10string#520339
pink-2string#ffd6e7
pink-3string#ffadd2
pink-4string#ff85c0
pink-5string#f759ab
pink-6string#eb2f96
pink-7string#c41d7f
pink-8string#9e1068
pink-9string#780650
purple-1string#f9f0ff
purple-10string#120338
purple-2string#efdbff
purple-3string#d3adf7
purple-4string#b37feb
purple-5string#9254de
purple-6string#722ed1
purple-7string#531dab
purple-8string#391085
purple-9string#22075e
red-100string#FEF4F4
red-200string#FDE9E9
red-300string#F7A9A9
red-400string#F16969
red-500string#EB2828
red-600string
red-700string
red-800string
size默认尺寸number16
sizeLGnumber24
sizeMDnumber20
sizeMSnumber16
sizeSMnumber12
sizeXLnumber32
sizeXSnumber8
sizeXXLnumber48
sizeXXSnumber4
volcano-1string#fff2e8
volcano-10string#610b00
volcano-2string#ffd8bf
volcano-3string#ffbb96
volcano-4string#ff9c6e
volcano-5string#ff7a45
volcano-6string#fa541c
volcano-7string#d4380d
volcano-8string#ad2102
volcano-9string#871400
yellow-1string#feffe6
yellow-10string#614700
yellow-2string#ffffb8
yellow-3string#fffb8f
yellow-4string#fff566
yellow-5string#ffec3d
yellow-6string#fadb14
yellow-7string#d4b106
yellow-8string#ad8b00
yellow-9string#876800
yellowishGreen-100string
yellowishGreen-200string#F2F5CA
yellowishGreen-300string#ECF0B0
yellowishGreen-400string#E5EB95
yellowishGreen-500string#DFE67B
yellowishGreen-600string#B2B862
yellowishGreen-700string#868A4A
yellowishGreen-800string#595C31

AliasToken

继承所有 SeedToken 和 MapToken 的属性

Token 名称描述类型默认值
boxShadowstring 0 1px 2px 0 rgba(0, 0, 0, 0.03), 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02)
boxShadowSecondarystring 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05)
colorBgContainerDisabledstringrgba(0, 0, 0, 0.04)
colorBgTextActivestringrgba(0, 0, 0, 0.15)
colorBgTextHoverstringrgba(0, 0, 0, 0.06)
colorBorderBgstring#ffffff
colorErrorOutlinestringrgba(255, 38, 5, 0.06)
colorFillAlterstringrgba(0, 0, 0, 0.02)
colorFillContentstringrgba(0, 0, 0, 0.06)
colorFillContentHoverstringrgba(0, 0, 0, 0.15)
colorHighlightstring#ff4d4f
colorIconstringrgba(0, 0, 0, 0.45)
colorIconHoverstringrgba(0, 0, 0, 0.88)
colorLinkstring#1677ff
colorLinkActivestring#0958d9
colorLinkHoverstring#69b1ff
colorSplit用于作为分割线的颜色,此颜色和 colorBorderSecondary 的颜色一致,但是用的是透明色。stringrgba(5, 5, 5, 0.06)
colorTextDescriptionstringrgba(0, 0, 0, 0.45)
colorTextDisabledstringrgba(0, 0, 0, 0.25)
colorTextHeadingstringrgba(0, 0, 0, 0.88)
colorTextLabelstringrgba(0, 0, 0, 0.65)
colorTextLightSolidstring#fff
colorTextPlaceholderstringrgba(0, 0, 0, 0.25)
colorWarningOutlinestringrgba(255, 215, 5, 0.1)
controlInteractiveSizenumber16
controlItemBgActivestring#e1f0ed
controlItemBgActiveDisabledstringrgba(0, 0, 0, 0.15)
controlItemBgActiveHoverstring#cae3de
controlItemBgHoverstringrgba(0, 0, 0, 0.04)
controlOutlinestringrgba(5, 130, 105, 0.12)
controlOutlineWidthnumber2
controlPaddingHorizontalnumber12
controlPaddingHorizontalSMnumber8
controlTmpOutlinestringrgba(0, 0, 0, 0.02)
fontSizeIconnumber12
fontWeightStrongnumber600
linkDecorationundefined | TextDecoration<string | number>none
linkFocusDecorationundefined | TextDecoration<string | number>none
linkHoverDecorationundefined | TextDecoration<string | number>none
marginnumber16
marginLGnumber24
marginMDnumber20
marginSMnumber12
marginXLnumber32
marginXSnumber8
marginXXLnumber48
marginXXSnumber4
opacityLoadingnumber0.65
paddingnumber16
paddingContentHorizontalnumber16
paddingContentHorizontalLGnumber24
paddingContentHorizontalSMnumber16
paddingContentVerticalnumber12
paddingContentVerticalLGnumber16
paddingContentVerticalSMnumber8
paddingLGnumber24
paddingMDnumber20
paddingSMnumber12
paddingXLnumber32
paddingXSnumber8
paddingXXSnumber4
screenLGnumber992
screenLGMaxnumber1199
screenLGMinnumber992
screenMDnumber768
screenMDMaxnumber991
screenMDMinnumber768
screenSMnumber576
screenSMMaxnumber767
screenSMMinnumber576
screenXLnumber1200
screenXLMaxnumber1599
screenXLMinnumber1200
screenXSnumber480
screenXSMaxnumber575
screenXSMinnumber480
screenXXLnumber1600
screenXXLMinnumber1600

StyleProvider

请参考 @ant-design/cssinjs。

调试主题

我们提供了帮助用户调试主题的工具:主题编辑器

你可以使用此工具自由地修改 Design Token,以达到您对主题的期望。

主题展示

  • Ant Design 4.x 主题

FAQ

为什么 theme 从 undefined 变为对象或者变为 undefined 时组件重新 mount 了?

在 ConfigProvider 中我们通过 DesignTokenContext 传递 context,theme 为 undefined 时不会套一层 Provider,所以从无到有或者从有到无时 React 的 VirtualDOM 结构变化,导致组件重新 mount。解决方法:将 undefined 替换为空对象 {} 即可。

- 在 Umi 4 中定制主题 - 与 V4 定制主题的区别 - less 变量与 Design Token 对照表