徽标数
图标右上角的圆形徽标数字。
何时使用
一般出现在通知图标或头像的右上角,用于显示需要处理的消息条数,通过醒目视觉形式吸引用户处理。
代码演示
- 基本 ·
basic - 独立使用 ·
no-wrapper - 封顶数字 ·
overflow - 讨嫌的小红点 ·
dot - 动态 ·
change - 可点击 ·
link - 自定义位置偏移 ·
offset - 大小 ·
size - 状态点 ·
status - 多彩徽标 ·
colorful - 缎带 ·
ribbon - 自定义语义结构的样式和类 ·
style-class
API
通用属性参考:通用属性
Badge
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| color | 自定义小圆点的颜色 | string | - | × | |
| count | 展示的数字,大于 overflowCount 时显示为 ${overflowCount}+,为 0 时隐藏 | ReactNode | - | × | |
| classNames | 用于自定义组件内部各语义化结构的 class,支持对象或函数 | Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string> | - | 5.7.0 | |
| dot | 不展示数字,只有一个小红点 | boolean | false | × | |
| offset | 设置状态点的位置偏移 | [number, number] | - | × | |
| overflowCount | 展示封顶的数字值 | number | 99 | × | |
| showZero | 当数值为 0 时,是否展示 Badge | boolean | false | × | |
| size | 在设置了 count 的前提下有效,设置小圆点的大小 | medium | small | - | - | × |
| status | 设置 Badge 为状态点 | success | processing | default | error | warning | - | × | |
| styles | 用于自定义组件内部各语义化结构的行内 style,支持对象或函数 | Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties> | - | 5.7.0 | |
| text | 在设置了 status 的前提下有效,设置状态点的文本 | ReactNode | - | × | |
| title | 设置鼠标放在状态点上时显示的文字。设置为 null 或 false 时移除原生 tooltip | string | null | false | - | 6.5.0 | × |
Badge.Ribbon
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| classNames | 用于自定义组件内部各语义化结构的 class,支持对象或函数 | Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string> | - | 6.0.0 | |
| color | 自定义缎带的颜色 | string | - | × | |
| placement | 缎带的位置,start 和 end 随文字方向(RTL 或 LTR)变动 | start | end | end | × | |
| styles | 用于自定义组件内部各语义化结构的行内 style,支持对象或函数 | Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties> | - | 6.0.0 | |
| text | 缎带中填入的内容 | ReactNode | - | × |
Semantic DOM
Badge
| 语义节点 | 原生说明 | 版本 |
|---|---|---|
root | 根元素,包含相对定位、行内块布局、适应内容宽度等基础布局样式 | 5.7.0 |
indicator | 指示器元素,包含定位、层级、尺寸、颜色、字体、文本对齐、背景、圆角、阴影、过渡动画等完整的徽标样式 | 5.7.0 |
语义说明来源: vendor/components/badge/demo/_semantic.tsx
Badge.Ribbon
| 语义节点 | 原生说明 | 版本 |
|---|---|---|
root | 根元素,设置相对定位和包装容器样式 | 6.0.0 |
indicator | 指示器元素,设置绝对定位、内边距、背景色、圆角和缎带样式 | 6.0.0 |
content | 文本元素,设置文本颜色和缎带内容显示样式 | 6.0.0 |
语义说明来源: vendor/components/badge/demo/_semantic_ribbon.tsx
主题变量(Design Token)
类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。
| 令牌 | 类型 | 原生说明 |
|---|---|---|
indicatorZIndex | number | string | 徽标 z-index |
indicatorHeight | number | string | 徽标高度 |
indicatorHeightSM | number | string | 小号徽标高度 |
dotSize | number | 点状徽标尺寸 |
textFontSize | number | 徽标文本尺寸 |
textFontSizeSM | number | 小号徽标文本尺寸 |
textFontWeight | number | string | 徽标文本粗细 |
statusSize | number | 状态徽标尺寸 |
paddingInline | number | string | 多字符徽标水平内边距 |
声明来源: vendor/components/badge/style/index.ts
import type { CSSObject } from '@ant-design/cssinjs';
import { Keyframes, unit } from '@ant-design/cssinjs';
import { resetComponent } from '../../style';
import type { FullToken, GenerateStyle, GenStyleFn, GetDefaultToken } from '../../theme/internal';
import { genPresetColor, genStyleHooks, mergeToken } from '../../theme/internal';
/** Component only token. Which will handle additional calculation of alias token */
export interface ComponentToken {
// Component token here
/**
* @desc 徽标 z-index
* @descEN z-index of badge
*/
indicatorZIndex: number | string;
/**
* @desc 徽标高度
* @descEN Height of badge
*/
indicatorHeight: number | string;
/**
* @desc 小号徽标高度
* @descEN Height of small badge
*/
indicatorHeightSM: number | string;
/**
* @desc 点状徽标尺寸
* @descEN Size of dot badge
*/
dotSize: number;
/**
* @desc 徽标文本尺寸
* @descEN Font size of badge text
*/
textFontSize: number;
/**
* @desc 小号徽标文本尺寸
* @descEN Font size of small badge text
*/
textFontSizeSM: number;
/**
* @desc 徽标文本粗细
* @descEN Font weight of badge text
*/
textFontWeight: number | string;
/**
* @desc 状态徽标尺寸
* @descEN Size of status badge
*/
statusSize: number;
/**
* @desc 多字符徽标水平内边距
* @descEN Inline padding of multiple words badge
*/
paddingInline: number | string;
}
/**
* @desc Badge 组件的 Token
* @descEN Token for Badge component
*/
export interface BadgeToken extends FullToken<'Badge'> {
/**
* @desc 徽标字体高度
* @descEN Font height of badge
*/
badgeFontHeight: number;
/**
* @desc 徽标文本颜色
* @descEN Text color of badge
*/
badgeTextColor: string;
/**
* @desc 徽标颜色
* @descEN Color of badge
*/
badgeColor: string;
/**
* @desc 徽标悬停颜色
* @descEN Hover color of badge
*/
badgeColorHover: string;
/**
* @desc 徽标阴影尺寸
* @descEN Shadow size of badge
*/
badgeShadowSize: number;
/**
* @desc 徽标阴影颜色
* @descEN Shadow color of badge
*/
badgeShadowColor: string;
/**
* @desc 徽标处理持续时间
* @descEN Processing duration of badge
*/
badgeProcessingDuration: string;
/**
* @desc 徽标丝带偏移量
* @descEN Ribbon offset of badge
*/
badgeRibbonOffset: number;
/**
* @desc 徽标丝带角变换
* @descEN Ribbon corner transform of badge
*/
badgeRibbonCornerTransform: string;
/**
* @desc 徽标丝带角滤镜
* @descEN Ribbon corner filter of badge
*/
badgeRibbonCornerFilter: string;
}
原生通用属性
Tips: 以下通用属性适用于 antd 大部分组件,不支持的组件会单独说明。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| style | 自定义样式 | CSSProperties | - |
| className | 自定义类名 | string | - |
| rootClassName | 添加在组件最外层的 className | string | - |
| autoFocus | 自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效 | boolean | false |
安装并复现示例
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23
使用 ConfigProvider 和原生 App,并单独配置 dayjs 语言。每个示例在查看代码中列出完整源码文件和额外固定依赖。示例名称用于选择演示,不是组件通用属性。主题、语言与 SSR 初始化见资源安装指南。
原生类型参考
源码查看器包含未修改的原生实现和以下声明文件,继承类型仍位于原生包中。代码中的英文注释保留为源码参考。
vendor/components/badge/Badge.tsxvendor/components/badge/Ribbon.tsxvendor/components/badge/ScrollNumber.tsxvendor/components/badge/SingleNumber.tsxvendor/components/badge/index.tsxvendor/components/badge/style/index.ts
来源与许可
https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd
保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。