logoAnt Design

⌘ K
  • 设计
  • 研发
  • 组件
  • 博客
  • 资源
  • 国内镜像
5.25.1
  • Ant Design of React
  • 更新日志
    v5.25.1
  • 如何使用
    • 快速上手
    • 在 Vite 中使用
    • 在 Next.js 中使用
      Updated
    • 在 Umi 中使用
    • 在 Rsbuild 中使用
    • 在 Farm 中使用
    • 使用 Refine
  • 进阶使用
    • 定制主题
    • 样式兼容
    • 服务端渲染
    • 使用 CSS 变量
      New
    • 使用自定义日期库
    • 国际化
    • 通用属性
    • React 19 兼容
      New
  • 迁移
    • 从 v4 到 v5
    • 从 Less 变量到 Design Token
  • 其他
    • 社区精选组件
    • 贡献指南
    • FAQ

定制主题

相关资源

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

社区

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

帮助

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

Ant XTech logo更多产品

yuque logo语雀-构建你的数字花园
AntV logoAntV-数据可视化解决方案
Egg logoEgg-企业级 Node.js 框架
Kitchen logoKitchen-Sketch 工具集
Galacean logoGalacean-互动图形解决方案
xtech logo蚂蚁体验科技
主题编辑器
Made with ❤ by
蚂蚁集团和 Ant Design 开源社区
loading

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

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

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

配置主题

在 5.0 版本中我们把影响主题的最小元素称为 Design Token。通过修改 Design Token,我们可以呈现出各种各样的主题或者组件。通过在 ConfigProvider 中传入 theme 属性,可以配置主题。在升级 v5 后,将默认使用 v5 的主题。

WARNING

ConfigProvider 对 message.xxx、Modal.xxx、notification.xxx 等静态方法不会生效,原因是在这些方法中,antd 会通过 ReactDOM.render 动态创建新的 React 实体。其 context 与当前代码所在 context 并不相同,因而无法获取 context 信息。

当你需要 context 信息(例如 ConfigProvider 配置的内容)时,可以通过 Modal.useModal 方法返回 modal 实体以及 contextHolder 节点,将其插入到你需要获取 context 位置即可。也可通过 App 包裹组件 简化 useModal 等方法需要手动植入 contextHolder 的问题。

修改主题变量

通过 theme 中的 token 属性,可以修改一些主题变量。部分主题变量会引起其他主题变量的变化,我们把这些主题变量称为 Seed Token。

import { Button, ConfigProvider, Space } from 'antd';
import React from 'react';

const App: React.FC = () => (
  <ConfigProvider
    theme={{
      token: {
        // Seed Token,影响范围大
        colorPrimary: '#00b96b',
        borderRadius: 2,

        // 派生变量,影响范围小
        colorBgContainer: '#f6ffed',
      },
    }}
  >
    <Space>
      <Button type="primary">Primary</Button>
      <Button>Default</Button>
    </Space>
  </ConfigProvider>
);

export default App;
Open on CodeSandboxOpen Sandbox

使用预设算法

通过修改算法可以快速生成风格迥异的主题,5.0 版本中默认提供三套预设算法,分别是:

  • 默认算法 theme.defaultAlgorithm
  • 暗色算法 theme.darkAlgorithm
  • 紧凑算法 theme.compactAlgorithm

你可以通过 theme 中的 algorithm 属性来切换算法,并且支持配置多种算法,将会依次生效。

import React from 'react';
import { Button, ConfigProvider, Input, Space, theme } from 'antd';

const App: React.FC = () => (
  <ConfigProvider
    theme={{
      // 1. 单独使用暗色算法
      algorithm: theme.darkAlgorithm,

      // 2. 组合使用暗色算法与紧凑算法
      // algorithm: [theme.darkAlgorithm, theme.compactAlgorithm],
    }}
  >
    <Space>
      <Input placeholder="Please Input" />
      <Button type="primary">Submit</Button>
    </Space>
  </ConfigProvider>
);

export default App;
Open on CodeSandboxOpen Sandbox

修改组件变量

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

组件级别的主题算法

默认情况下,所有组件变量都仅仅是覆盖,不会基于 Seed Token 计算派生变量。

在 >= 5.8.0 版本中,组件变量支持传入 algorithm 属性,可以开启派生计算或者传入其他算法。

import React from 'react';
import { ConfigProvider, Button, Space, Input, Divider } from 'antd';

const App: React.FC = () => (
  <>
    <ConfigProvider
      theme={{
        components: {
          Button: {
            colorPrimary: '#00b96b',
            algorithm: true, // 启用算法
          },
          Input: {
            colorPrimary: '#eb2f96',
            algorithm: true, // 启用算法
          }
        },
      }}
    >
      <Space>
        <div style={{ fontSize: 14 }}>开启算法:</div>
        <Input placeholder="Please Input" />
        <Button type="primary">Submit</Button>
      </Space>
    </ConfigProvider>
    <Divider />
    <ConfigProvider
      theme={{
        components: {
          Button: {
            colorPrimary: '#00b96b',
          },
          Input: {
            colorPrimary: '#eb2f96',
          }
        },
      }}
    >
      <Space>
        <div style={{ fontSize: 14 }}>禁用算法:</div>
        <Input placeholder="Please Input" />
        <Button type="primary">Submit</Button>
      </Space>
    </ConfigProvider>
  </>
);

export default App;
Open on CodeSandboxOpen Sandbox

禁用动画

antd 默认内置了一些组件交互动效让企业级页面更加富有细节,在一些极端场景可能会影响页面交互性能,如需关闭动画可以 token 中的 motion 修改为 false:

import React from 'react';
import { Checkbox, Col, ConfigProvider, Flex, Radio, Row, Switch } from 'antd';

const App: React.FC = () => {
  const [checked, setChecked] = React.useState<boolean>(false);
  const timerRef = React.useRef<ReturnType<typeof setInterval>>();
  React.useEffect(() => {
    timerRef.current = setInterval(() => {
      setChecked((prev) => !prev);
    }, 500);
    return () => {
      if (timerRef.current) {
        clearInterval(timerRef.current);
      }
    };
  }, []);

  const nodes = (
    <Flex gap="small">
      <Checkbox checked={checked}>Checkbox</Checkbox>
      <Radio checked={checked}>Radio</Radio>
      <Switch checked={checked} />
    </Flex>
  );

  return (
    <Row gutter={[24, 24]}>
      <Col span={24}>{nodes}</Col>
      <Col span={24}>
        <ConfigProvider theme={{ token: { motion: false } }}>{nodes}</ConfigProvider>
      </Col>
    </Row>
  );
};

export default App;
Open on CodeSandboxOpen Sandbox

进阶使用

动态切换

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

import { Button, ConfigProvider, Space, Input, ColorPicker, Divider } from 'antd';
import React from 'react';

const App: React.FC = () => {
  const [primary, setPrimary] = React.useState('#1677ff');

  return (
    <>
      <ColorPicker showText value={primary} onChange={(color) => setPrimary(color.toHexString())} />
      <Divider />
      <ConfigProvider
        theme={{
          token: {
            colorPrimary: primary,
          },
        }}
      >
        <Space>
          <Input placeholder="Please Input" />
          <Button type="primary">Submit</Button>
        </Space>
      </ConfigProvider>
    </>
  );
}

export default App;
Open on CodeSandboxOpen Sandbox

局部主题(嵌套主题)

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

import React from 'react';
import { Button, ConfigProvider, Space } from 'antd';

const App: React.FC = () => (
  <ConfigProvider
    theme={{
      token: {
        colorPrimary: '#1677ff',
      },
    }}
  >
    <Space>
      <Button type="primary">Theme 1</Button>
      <ConfigProvider
        theme={{
          token: {
            colorPrimary: '#00b96b',
          },
        }}
      >
        <Button type="primary">Theme 2</Button>
      </ConfigProvider>
    </Space>
  </ConfigProvider>
);

export default App;
Open on CodeSandboxOpen Sandbox

使用 Design Token

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

import React from 'react';
import { Button, theme } from 'antd';

const { useToken } = theme;

const App: React.FC = () => {
  const { token } = useToken();

  return (
    <div
      style={{
        backgroundColor: token.colorPrimaryBg,
        padding: token.padding,
        borderRadius: token.borderRadius,
        color: token.colorPrimaryText,
        fontSize: token.fontSize,
      }}
    >
      使用 Design Token
    </div>
  );
};

export default App;
Open on CodeSandboxOpen Sandbox

静态消费(如 less)

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

jsx
import { theme } from 'antd';
const { getDesignToken } = theme;
const globalToken = getDesignToken();

getDesignToken 和 ConfigProvider 一样,支持传入 theme 属性,用于获取指定主题的 Design Token。

tsx
import type { ThemeConfig } from 'antd';
import { theme } from 'antd';
import { createRoot } from 'react-dom/client';
const { getDesignToken, useToken } = theme;
const config: ThemeConfig = {
token: {
colorPrimary: '#1890ff',
},
};
// 通过静态方法获取
const globalToken = getDesignToken(config);
// 通过 hook 获取
const App = () => {
const { token } = useToken();
return null;
};
// 渲染示意
createRoot(document.getElementById('#app')).render(
<ConfigProvider theme={config}>
<App />
</ConfigProvider>,
);

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

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

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

调试主题

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

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

基本概念

在 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 计算出对应的一系列颜色并应用:

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

梯度变量(Map Token)

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

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

别名变量(Alias Token)

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

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

基本算法(algorithm)

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

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

API

Theme

属性说明类型默认值
token用于修改 Design TokenAliasToken-
inherit继承上层 ConfigProvider 中配置的主题。booleantrue
algorithm用于修改 Seed Token 到 Map Token 的算法(token: SeedToken) => MapToken | ((token: SeedToken) => MapToken)[]defaultAlgorithm
components用于修改各个组件的 Component Token 以及覆盖该组件消费的 Alias TokenComponentsConfig-
cssVar开启 CSS 变量,参考使用 CSS 变量boolean | { prefix?: string; key?: string }false
hashed组件 class Hash 值,参考使用 CSS 变量booleantrue

ComponentsConfig

属性说明类型默认值
Component (可以是任意 antd 组件名,如 Button)用于修改 Component Token 以及覆盖该组件消费的 Alias TokenComponentToken & AliasToken & { algorithm: boolean | (token: SeedToken) => MapToken | ((token: SeedToken) => MapToken)[]}-

组件级别的 algorithm 默认为 false,此时组件 Token 仅仅会覆盖该组件使用的 token,不会进行派生计算。设置为 true 时会继承当前全局算法;也可以和全局的 algorithm 一样传入一个或多个算法,这将会针对该组件覆盖全局的算法。

SeedToken

Token 名称描述类型默认值
borderRadius基础组件的圆角大小,例如按钮、输入框、卡片等number6
colorBgBase用于派生背景色梯度的基础变量,v5 中我们添加了一层背景色的派生算法可以产出梯度明确的背景色的梯度变量。但请不要在代码中直接使用该 Seed Token !string#fff
colorError用于表示操作失败的 Token 序列,如失败按钮、错误状态提示(Result)组件等。string#ff4d4f
colorInfo用于表示操作信息的 Token 序列,如 Alert 、Tag、 Progress 等组件都有用到该组梯度变量。string#1677ff
colorLink控制超链接的颜色。string#1677ff
colorPrimary品牌色是体现产品特性和传播理念最直观的视觉元素之一。在你完成品牌主色的选取之后,我们会自动帮你生成一套完整的色板,并赋予它们有效的设计语义string#1677ff
colorSuccess用于表示操作成功的 Token 序列,如 Result、Progress 等组件会使用该组梯度变量。string#52c41a
colorTextBase用于派生文本色梯度的基础变量,v5 中我们添加了一层文本色的派生算法可以产出梯度明确的文本色的梯度变量。但请不要在代码中直接使用该 Seed Token !string#000
colorWarning用于表示操作警告的 Token 序列,如 Notification、 Alert等警告类组件或 Input 输入类等组件会使用该组梯度变量。string#faad14
controlHeightAnt Design 中按钮和输入框等基础控件的高度number32
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'
fontFamilyCode代码字体,用于 Typography 内的 code、pre 和 kbd 类型的元素string'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace
fontSize设计系统中使用最广泛的字体大小,文本梯度也将基于该字号进行派生。number14
lineType用于控制组件边框、分割线等的样式,默认是实线stringsolid
lineWidth用于控制组件边框、分割线等的宽度number1
motion用于配置动画效果,为 `false` 时则关闭动画booleantrue
motionBasenumber0
motionEaseInBack预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.71, -0.46, 0.88, 0.6)External Link Icon
motionEaseInOut预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.645, 0.045, 0.355, 1)External Link Icon
motionEaseInOutCirc预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.78, 0.14, 0.15, 0.86)External Link Icon
motionEaseInQuint预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.755, 0.05, 0.855, 0.06)External Link Icon
motionEaseOut预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.215, 0.61, 0.355, 1)External Link Icon
motionEaseOutBack预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.12, 0.4, 0.29, 1.46)External Link Icon
motionEaseOutCirc预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.08, 0.82, 0.17, 1)External Link Icon
motionEaseOutQuint预设动效曲率string
Cubic Bezier Visualizer
cubic-bezier(0.23, 1, 0.32, 1)External Link Icon
motionUnit用于控制动画时长的变化单位number0.1
opacityImage控制图片不透明度number1
sizePopupArrow组件箭头的尺寸number16
sizeStep用于控制组件尺寸的基础步长,尺寸步长结合尺寸变化单位,就可以派生各种尺寸梯度。通过调整步长即可得到不同的布局模式,例如 V5 紧凑模式下的尺寸步长为 2number4
sizeUnit用于控制组件尺寸的变化单位,在 Ant Design 中我们的基础单位为 4 ,便于更加细致地控制尺寸梯度number4
wireframe用于将组件的视觉效果变为线框化,如果需要使用 V4 的效果,需要开启配置项booleanfalse
zIndexBase所有组件的基础 Z 轴值,用于一些悬浮类的组件的可以基于该值 Z 轴控制层级,例如 BackTop、 Affix 等number0
zIndexPopupBase浮层类组件的基础 Z 轴值,用于一些悬浮类的组件的可以基于该值 Z 轴控制层级,例如 FloatButton、 Affix、Modal 等number1000

MapToken

继承所有 SeedToken 的属性

Token 名称描述类型默认值
borderRadiusLGLG号圆角,用于组件中的一些大圆角,如 Card、Modal 等一些组件样式。number8
borderRadiusOuter外部圆角number4
borderRadiusSMSM号圆角,用于组件小尺寸下的圆角,如 Button、Input、Select 等输入类控件在 small size 下的圆角number4
borderRadiusXSXS号圆角,用于组件中的一些小圆角,如 Segmented 、Arrow 等一些内部圆角的组件样式中。number2
colorBgBlur控制毛玻璃容器的背景色,通常为透明色。stringtransparent
colorBgContainer组件的容器背景色,例如:默认按钮、输入框等。务必不要将其与 `colorBgElevated` 混淆。string#ffffff
colorBgElevated浮层容器背景色,在暗色模式下该 token 的色值会比 `colorBgContainer` 要亮一些。例如:模态框、弹出框、菜单等。string#ffffff
colorBgLayout该色用于页面整体布局的背景色,只有需要在页面中处于 B1 的视觉层级时才会使用该 token,其他用法都是错误的string#f5f5f5
colorBgMask浮层的背景蒙层颜色,用于遮罩浮层下面的内容,Modal、Drawer 等组件的蒙层使用的是该 tokenstringrgba(0,0,0,0.45)
colorBgSolid实心的背景颜色,目前只用在默认实心按钮背景色上。stringrgb(0,0,0)
colorBgSolidActive实心的背景颜色激活态,目前只用在默认实心按钮的 active 效果。stringrgba(0,0,0,0.95)
colorBgSolidHover实心的背景颜色悬浮态,目前只用在默认实心按钮的 hover 效果。stringrgba(0,0,0,0.75)
colorBgSpotlight该色用于引起用户强烈关注注意的背景色,目前只用在 Tooltip 的背景色上。stringrgba(0,0,0,0.85)
colorBorder默认使用的边框颜色, 用于分割不同的元素,例如:表单的分割线、卡片的分割线等。string#d9d9d9
colorBorderSecondary比默认使用的边框色要浅一级,此颜色和 colorSplit 的颜色一致。使用的是实色。string#f0f0f0
colorErrorActive错误色的深色激活态string#d9363e
colorErrorBg错误色的浅色背景颜色string#fff2f0
colorErrorBgActive错误色的浅色背景色激活态string#ffccc7
colorErrorBgFilledHover错误色的浅色填充背景色悬浮态,目前只用在危险填充按钮的 hover 效果。string#ffdfdc
colorErrorBgHover错误色的浅色背景色悬浮态string#fff1f0
colorErrorBorder错误色的描边色string#ffccc7
colorErrorBorderHover错误色的描边色悬浮态string#ffa39e
colorErrorHover错误色的深色悬浮态string#ff7875
colorErrorText错误色的文本默认态string#ff4d4f
colorErrorTextActive错误色的文本激活态string#d9363e
colorErrorTextHover错误色的文本悬浮态string#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)
colorInfoActive信息色的深色激活态。string#0958d9
colorInfoBg信息色的浅色背景颜色。string#e6f4ff
colorInfoBgHover信息色的浅色背景色悬浮态。string#bae0ff
colorInfoBorder信息色的描边色。string#91caff
colorInfoBorderHover信息色的描边色悬浮态。string#69b1ff
colorInfoHover信息色的深色悬浮态。string#69b1ff
colorInfoText信息色的文本默认态。string#1677ff
colorInfoTextActive信息色的文本激活态。string#0958d9
colorInfoTextHover信息色的文本悬浮态。string#4096ff
colorLinkActive控制超链接被点击时的颜色。string#0958d9
colorLinkHover控制超链接悬浮时的颜色。string#69b1ff
colorPrimaryActive主色梯度下的深色激活态。string#0958d9
colorPrimaryBg主色浅色背景颜色,一般用于视觉层级较弱的选中状态。string#e6f4ff
colorPrimaryBgHover与主色浅色背景颜色相对应的悬浮态颜色。string#bae0ff
colorPrimaryBorder主色梯度下的描边用色,用在 Slider 等组件的描边上。string#91caff
colorPrimaryBorderHover主色梯度下的描边用色的悬浮态,Slider 、Button 等组件的描边 Hover 时会使用。string#69b1ff
colorPrimaryHover主色梯度下的悬浮态。string#4096ff
colorPrimaryText主色梯度下的文本颜色。string#1677ff
colorPrimaryTextActive主色梯度下的文本激活态。string#0958d9
colorPrimaryTextHover主色梯度下的文本悬浮态。string#4096ff
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
colorWarningBg警戒色的浅色背景颜色string#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
controlHeightLG较高的组件高度number40
controlHeightSM较小的组件高度number24
controlHeightXS更小的组件高度number16
fontSizeHeading1H1 标签所使用的字号number38
fontSizeHeading2h2 标签所使用的字号number30
fontSizeHeading3h3 标签使用的字号number24
fontSizeHeading4h4 标签使用的字号number20
fontSizeHeading5h5 标签使用的字号number16
fontSizeLG大号字体大小number16
fontSizeSM小号字体大小number12
fontSizeXL超大号字体大小number20
lineHeight文本行高number1.5714285714285714
lineHeightHeading1H1 标签所使用的行高number1.2105263157894737
lineHeightHeading2h2 标签所使用的行高number1.2666666666666666
lineHeightHeading3h3 标签所使用的行高number1.3333333333333333
lineHeightHeading4h4 标签所使用的行高number1.4
lineHeightHeading5h5 标签所使用的行高number1.5
lineHeightLG大型文本行高number1.5
lineHeightSM小型文本行高number1.6666666666666667
lineWidthBold描边类组件的默认线宽,如 Button、Input、Select 等输入类控件。number2
motionDurationFast动效播放速度,快速。用于小型元素动画交互string0.1s
motionDurationMid动效播放速度,中速。用于中型元素动画交互string0.2s
motionDurationSlow动效播放速度,慢速。用于大型元素如面板动画交互string0.3s
size默认尺寸number16
sizeLGnumber24
sizeMDnumber20
sizeMSnumber16
sizeSMnumber12
sizeXLnumber32
sizeXSnumber8
sizeXXLnumber48
sizeXXSnumber4

AliasToken

继承所有 SeedToken 和 MapToken 的属性

Token 名称描述类型默认值
boxShadow控制元素阴影样式。string 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)
boxShadowSecondary控制元素二级阴影样式。string 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)
boxShadowTertiary控制元素三级盒子阴影样式。string 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)
colorBgContainerDisabled控制容器在禁用状态下的背景色。stringrgba(0,0,0,0.04)
colorBgTextActive控制文本在激活状态下的背景色。stringrgba(0,0,0,0.15)
colorBgTextHover控制文本在悬停状态下的背景色。stringrgba(0,0,0,0.06)
colorBorderBg控制元素背景边框的颜色。string#ffffff
colorErrorOutline控制输入组件错误状态下的外轮廓线颜色。stringrgba(255,38,5,0.06)
colorFillAlter控制元素替代背景色。stringrgba(0,0,0,0.02)
colorFillContent控制内容区域的背景色。stringrgba(0,0,0,0.06)
colorFillContentHover控制内容区域背景色在鼠标悬停时的样式。stringrgba(0,0,0,0.15)
colorHighlight控制页面元素高亮时的颜色。string#ff4d4f
colorIcon控制弱操作图标的颜色,例如 allowClear 或 Alert 关闭按钮。 *stringrgba(0,0,0,0.45)
colorIconHover控制弱操作图标在悬浮状态下的颜色,例如 allowClear 或 Alert 关闭按钮。stringrgba(0,0,0,0.88)
colorSplit用于作为分割线的颜色,此颜色和 colorBorderSecondary 的颜色一致,但是用的是透明色。stringrgba(5,5,5,0.06)
colorTextDescription控制文本描述字体颜色。stringrgba(0,0,0,0.45)
colorTextDisabled控制禁用状态下的字体颜色。stringrgba(0,0,0,0.25)
colorTextHeading控制标题字体颜色。stringrgba(0,0,0,0.88)
colorTextLabel控制文本标签字体颜色。stringrgba(0,0,0,0.65)
colorTextLightSolid控制带背景色的文本,例如 Primary Button 组件中的文本高亮颜色。string#fff
colorTextPlaceholder控制占位文本的颜色。stringrgba(0,0,0,0.25)
colorWarningOutline控制输入组件警告状态下的外轮廓线颜色。stringrgba(255,215,5,0.1)
controlInteractiveSize控制组件的交互大小。number16
controlItemBgActive控制组件项在激活状态下的背景颜色。string#e6f4ff
controlItemBgActiveDisabled控制组件项在禁用状态下的激活背景颜色。stringrgba(0,0,0,0.15)
controlItemBgActiveHover控制组件项在鼠标悬浮且激活状态下的背景颜色。string#bae0ff
controlItemBgHover控制组件项在鼠标悬浮时的背景颜色。stringrgba(0,0,0,0.04)
controlOutline控制输入组件的外轮廓线颜色。stringrgba(5,145,255,0.1)
controlOutlineWidth控制输入组件的外轮廓线宽度。number2
controlPaddingHorizontal控制元素水平内间距。number12
controlPaddingHorizontalSM控制元素中小尺寸水平内间距。number8
fontSizeIcon控制选择器、级联选择器等中的操作图标字体大小。正常情况下与 fontSizeSM 相同。number12
fontWeightStrong控制标题类组件(如 h1、h2、h3)或选中项的字体粗细。number600
lineWidthFocus控制线条的宽度,当组件处于聚焦态时。number3
linkDecoration控制链接文本的装饰样式。undefined | TextDecoration<string | number>none
linkFocusDecoration控制链接聚焦时文本的装饰样式。undefined | TextDecoration<string | number>none
linkHoverDecoration控制链接鼠标悬浮时文本的装饰样式。undefined | TextDecoration<string | number>none
margin控制元素外边距,中等尺寸。number16
marginLG控制元素外边距,大尺寸。number24
marginMD控制元素外边距,中大尺寸。number20
marginSM控制元素外边距,中小尺寸。number12
marginXL控制元素外边距,超大尺寸。number32
marginXS控制元素外边距,小尺寸。number8
marginXXL控制元素外边距,最大尺寸。number48
marginXXS控制元素外边距,最小尺寸。number4
opacityLoading控制加载状态的透明度。number0.65
padding控制元素的内间距。number16
paddingContentHorizontal控制内容元素水平内间距。number16
paddingContentHorizontalLG控制内容元素水平内间距,适用于大屏幕设备。number24
paddingContentHorizontalSM控制内容元素水平内间距,适用于小屏幕设备。number16
paddingContentVertical控制内容元素垂直内间距。number12
paddingContentVerticalLG控制内容元素垂直内间距,适用于大屏幕设备。number16
paddingContentVerticalSM控制内容元素垂直内间距,适用于小屏幕设备。number8
paddingLG控制元素的大内间距。number24
paddingMD控制元素的中等内间距。number20
paddingSM控制元素的小内间距。number12
paddingXL控制元素的特大内间距。number32
paddingXS控制元素的特小内间距。number8
paddingXXS控制元素的极小内间距。number4
screenLG控制大屏幕的屏幕宽度。number992
screenLGMax控制大屏幕的最大宽度。number1199
screenLGMin控制大屏幕的最小宽度。number992
screenMD控制中等屏幕的屏幕宽度。number768
screenMDMax控制中等屏幕的最大宽度。number991
screenMDMin控制中等屏幕的最小宽度。number768
screenSM控制小屏幕的屏幕宽度。number576
screenSMMax控制小屏幕的最大宽度。number767
screenSMMin控制小屏幕的最小宽度。number576
screenXL控制超大屏幕的屏幕宽度。number1200
screenXLMax控制超大屏幕的最大宽度。number1599
screenXLMin控制超大屏幕的最小宽度。number1200
screenXS控制超小屏幕的屏幕宽度。number480
screenXSMax控制超小屏幕的最大宽度。number575
screenXSMin控制超小屏幕的最小宽度。number480
screenXXL控制超超大屏幕的屏幕宽度。number1600
screenXXLMin控制超超大屏幕的最小宽度。number1600

FAQ

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

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