排版
文本的基本格式。
何时使用
- 当需要展示标题、段落、列表内容时使用,如文章/博客/日志的文本样式。
- 当需要一列基于文本的基础操作时,如拷贝/省略/可编辑。
代码演示
-
基本 ·
basic -
标题组件 ·
title -
文本与超链接组件 ·
text -
可编辑 ·
editable -
可复制 ·
copyable -
省略号 ·
ellipsis -
受控省略展开/收起 ·
ellipsis-controlled -
省略中间 ·
ellipsis-middle -
后缀 ·
suffix -
表格 ·
table
API
通用属性参考:通用属性
Typography.Text
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| actions | 配置操作栏 | actions | - | 6.4.0 | × |
| classNames | 用于自定义组件内部各语义化结构的 class,支持对象或函数 | Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string> | - | 6.4.0 | 6.4.0 |
| code | 添加代码样式 | boolean | false | × | |
| copyable | 是否可拷贝,为对象时可进行各种自定义 | boolean | copyable | false | × | |
| delete | 添加删除线样式 | boolean | false | × | |
| disabled | 禁用文本 | boolean | false | × | |
| editable | 是否可编辑,为对象时可对编辑进行控制 | boolean | editable | false | × | |
| ellipsis | 自动溢出省略,为对象时不能设置省略行数、是否可展开、onExpand 展开事件。不同于 Typography.Paragraph,Text 组件自身不带 100% 宽度样式,因而默认情况下初次缩略后宽度便不再变化。如果需要自适应宽度,请手动配置宽度样式 | boolean | Omit<ellipsis, 'expandable' | 'rows' | 'onExpand'> | false | × | |
| italic | 是否斜体 | boolean | false | 4.16.0 | × |
| keyboard | 添加键盘样式 | boolean | false | 4.3.0 | × |
| mark | 添加标记样式 | boolean | false | × | |
| strong | 是否加粗 | boolean | false | × | |
| styles | 用于自定义组件内部各语义化结构的行内 style,支持对象或函数 | Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties> | - | 6.4.0 | 6.4.0 |
| type | 文本类型 | secondary | success | warning | danger | - | success: 4.6.0 | × |
| underline | 添加下划线样式 | boolean | false | × | |
| onClick | 点击 Text 时的回调 | (event) => void | - | × |
Typography.Title
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| actions | 配置操作栏 | actions | - | 6.4.0 | × |
| classNames | 用于自定义组件内部各语义化结构的 class,支持对象或函数 | Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string> | - | 6.4.0 | 6.4.0 |
| code | 添加代码样式 | boolean | false | × | |
| copyable | 是否可拷贝,为对象时可进行各种自定义 | boolean | copyable | false | × | |
| delete | 添加删除线样式 | boolean | false | × | |
| disabled | 禁用文本 | boolean | false | × | |
| editable | 是否可编辑,为对象时可对编辑进行控制 | boolean | editable | false | × | |
| ellipsis | 自动溢出省略,为对象时可设置省略行数、是否可展开、添加后缀等 | boolean | ellipsis | false | × | |
| italic | 是否斜体 | boolean | false | 4.16.0 | × |
| level | 重要程度,相当于 h1、h2、h3、h4、h5 | number: 1, 2, 3, 4, 5 | 1 | 5: 4.6.0 | × |
| mark | 添加标记样式 | boolean | false | × | |
| styles | 用于自定义组件内部各语义化结构的行内 style,支持对象或函数 | Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties> | - | 6.4.0 | 6.4.0 |
| type | 文本类型 | secondary | success | warning | danger | - | success: 4.6.0 | × |
| underline | 添加下划线样式 | boolean | false | × | |
| onClick | 点击 Title 时的回调 | (event) => void | - | × |
Typography.Paragraph
| 参数 | 说明 | 类型 | 默认值 | 版本 | 全局配置 |
|---|---|---|---|---|---|
| actions | 配置操作栏 | actions | - | 6.4.0 | × |
| classNames | 用于自定义组件内部各语义化结构的 class,支持对象或函数 | Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string> | - | 6.4.0 | 6.4.0 |
| code | 添加代码样式 | boolean | false | × | |
| copyable | 是否可拷贝,为对象时可进行各种自定义 | boolean | copyable | false | × | |
| delete | 添加删除线样式 | boolean | false | × | |
| disabled | 禁用文本 | boolean | false | × | |
| editable | 是否可编辑,为对象时可对编辑进行控制 | boolean | editable | false | × | |
| ellipsis | 自动溢出省略,为对象时可设置省略行数、是否可展开、添加后缀等 | boolean | ellipsis | false | × | |
| italic | 是否斜体 | boolean | false | 4.16.0 | × |
| mark | 添加标记样式 | boolean | false | × | |
| strong | 是否加粗 | boolean | false | × | |
| styles | 用于自定义组件内部各语义化结构的行内 style,支持对象或函数 | Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties> | - | 6.4.0 | 6.4.0 |
| type | 文本类型 | secondary | success | warning | danger | - | success: 4.6.0 | × |
| underline | 添加下划线样式 | boolean | false | × | |
| onClick | 点击 Paragraph 时的回调 | (event) => void | - | × |
actions
{
placement: 'start' | 'end',
}
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| placement | 设置操作栏相对于文本的位置 | start | end | end | 6.4.0 |
copyable
{
text: string | (() => string | Promise<string>),
onCopy: function(event),
icon: ReactNode,
tooltips: false | [ReactNode, ReactNode],
format: 'text/plain' | 'text/html',
tabIndex: number,
}
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| format | 剪切板数据的 Mime Type | 'text/plain' | 'text/html' | - | 4.21.0 |
| icon | 自定义拷贝图标:[默认图标, 拷贝后的图标] | [ReactNode, ReactNode] | - | 4.6.0 |
| tabIndex | 自定义复制按钮的 tabIndex | number | 0 | 5.17.0 |
| text | 拷贝到剪切板里的文本 | string | - | |
| tooltips | 自定义提示文案,为 false 时隐藏文案 | [ReactNode, ReactNode] | [复制, 复制成功] | 4.4.0 |
| onCopy | 拷贝成功的回调函数 | function | - |
editable
{
icon: ReactNode,
tooltip: ReactNode,
editing: boolean,
maxLength: number,
autoSize: boolean | { minRows: number, maxRows: number },
text: string,
onChange: function(string),
onCancel: function,
onStart: function,
onEnd: function,
triggerType: ('icon' | 'text')[],
enterIcon: ReactNode,
tabIndex: number,
}
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| autoSize | 自动 resize 文本域 | boolean | { minRows: number, maxRows: number } | - | 4.4.0 |
| editing | 控制是否是编辑中状态 | boolean | false | |
| enterIcon | 在编辑段中自定义"enter"图标(传递"null"将删除图标) | ReactNode | <EnterOutlined /> | 4.17.0 |
| icon | 自定义编辑图标 | ReactNode | <EditOutlined /> | 4.6.0 |
| maxLength | 编辑中文本域最大长度 | number | - | 4.4.0 |
| tabIndex | 自定义编辑按钮的 tabIndex | number | 0 | 5.17.0 |
| text | 显式地指定编辑文案,为空时将隐式地使用 children | string | - | 4.24.0 |
| tooltip | 自定义提示文本,为 false 时关闭 | ReactNode | 编辑 | 4.6.0 |
| triggerType | 编辑模式触发器类型,图标、文本或者两者都设置(不设置图标作为触发器时它会隐藏) | Array<icon|text> | [icon] | |
| onCancel | 按 ESC 退出编辑状态时触发 | function | - | |
| onChange | 文本域编辑完成时触发 | function(value: string) | - | |
| onEnd | 按 ENTER 结束编辑状态时触发 | function | - | 4.14.0 |
| onStart | 进入编辑中状态时触发 | function | - |
ellipsis
interface EllipsisConfig {
rows: number;
/** `5.16.0` 新增 `collapsible` */
expandable: boolean | 'collapsible';
suffix: string;
/** `5.16.0` 新增渲染函数 */
symbol: ReactNode | ((expanded: boolean) => ReactNode);
tooltip: ReactNode | TooltipProps;
/** `5.16.0` 新增 */
defaultExpanded: boolean;
/** `5.16.0` 新增 */
expanded: boolean;
/** `5.16.0` 新增 `info` */
onExpand: (event: MouseEvent, info: { expanded: boolean }) => void;
onEllipsis: (ellipsis: boolean) => void;
}
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| defaultExpanded | 默认展开或收起 | boolean | 5.16.0 | |
| expandable | 是否可展开 | boolean | 'collapsible' | - | collapsible: 5.16.0 |
| expanded | 展开或收起 | boolean | 5.16.0 | |
| rows | 最多显示的行数 | number | - | |
| suffix | 自定义省略内容后缀 | string | - | |
| symbol | 自定义展开描述文案 | ReactNode | ((expanded: boolean) => ReactNode) | 展开 收起 | |
| tooltip | 省略时,展示提示信息 | ReactNode | TooltipProps | - | 4.11.0 |
| onEllipsis | 触发省略时的回调 | function(ellipsis) | - | 4.2.0 |
| onExpand | 点击展开或收起时的回调 | function(event, { expanded: boolean }) | - | info: 5.16.0 |
Semantic DOM
| 语义节点 | 原生说明 | 版本 |
|---|---|---|
root | 根元素,包含排版基础样式、布局和定位 | 6.4.0 |
actions | 操作区域元素,包含复制、编辑、展开/收起等操作按钮的布局和间距样式 | 6.4.0 |
action | 单个操作按钮元素,包括复制、编辑、展开、收起按钮的样式,如内边距、圆角、颜色等 | 6.4.0 |
textarea | 可编辑模式下的 TextArea 元素样式,用于自定义编辑输入框的类名和内联样式 | 6.4.0 |
语义说明来源: vendor/components/typography/demo/_semantic.tsx
主题变量(Design Token)
类型、继承关系和原生令牌声明保持固定源码原文;默认值由原生主题计算,并可能受 ConfigProvider 覆盖。本表不伪造静态默认值。
| 令牌 | 类型 | 原生说明 |
|---|---|---|
titleMarginTop | number | string | 标题上间距 |
titleMarginBottom | number | string | 标题下间距 |
声明来源: vendor/components/typography/style/index.ts
import type { CSSObject } from '@ant-design/cssinjs';
import { operationUnit } from '../../style';
import type { FullToken, GenerateStyle, GetDefaultToken } from '../../theme/internal';
import { genStyleHooks } from '../../theme/internal';
import {
getCopyableStyles,
getEditableStyles,
getEllipsisStyles,
getLinkStyles,
getResetStyles,
getTitleStyles,
} from './mixins';
/** Component only token. Which will handle additional calculation of alias token */
export interface ComponentToken {
/**
* @desc 标题上间距
* @descEN Margin top of title
*/
titleMarginTop: number | string;
/**
* @desc 标题下间距
* @descEN Margin bottom of title
*/
titleMarginBottom: number | string;
}
export type TypographyToken = FullToken<'Typography'>;
原生通用属性
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/typography/Base/CopyBtn.tsxvendor/components/typography/Base/Ellipsis.tsxvendor/components/typography/Base/EllipsisTooltip.tsxvendor/components/typography/Base/index.tsxvendor/components/typography/Editable.tsxvendor/components/typography/Link.tsxvendor/components/typography/Paragraph.tsxvendor/components/typography/Text.tsxvendor/components/typography/Title.tsxvendor/components/typography/Typography.tsxvendor/components/typography/index.tsxvendor/components/typography/style/index.ts
来源与许可
https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd
保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。