JGuang

排版

Typography · Ant Design

交互预览
npm install antd@6.6.5 @ant-design/icons@6.3.4 dayjs@1.11.23

排版

文本的基本格式。

何时使用

  • 当需要展示标题、段落、列表内容时使用,如文章/博客/日志的文本样式。
  • 当需要一列基于文本的基础操作时,如拷贝/省略/可编辑。

代码演示

  • 基本 · 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.06.4.0
code添加代码样式booleanfalse×
copyable是否可拷贝,为对象时可进行各种自定义boolean | copyablefalse×
delete添加删除线样式booleanfalse×
disabled禁用文本booleanfalse×
editable是否可编辑,为对象时可对编辑进行控制boolean | editablefalse×
ellipsis自动溢出省略,为对象时不能设置省略行数、是否可展开、onExpand 展开事件。不同于 Typography.Paragraph,Text 组件自身不带 100% 宽度样式,因而默认情况下初次缩略后宽度便不再变化。如果需要自适应宽度,请手动配置宽度样式boolean | Omit<ellipsis, 'expandable' | 'rows' | 'onExpand'>false×
italic是否斜体booleanfalse4.16.0×
keyboard添加键盘样式booleanfalse4.3.0×
mark添加标记样式booleanfalse×
strong是否加粗booleanfalse×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.4.06.4.0
type文本类型secondary | success | warning | danger-success: 4.6.0×
underline添加下划线样式booleanfalse×
onClick点击 Text 时的回调(event) => void-×

Typography.Title

参数说明类型默认值版本全局配置
actions配置操作栏actions-6.4.0×
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-6.4.06.4.0
code添加代码样式booleanfalse×
copyable是否可拷贝,为对象时可进行各种自定义boolean | copyablefalse×
delete添加删除线样式booleanfalse×
disabled禁用文本booleanfalse×
editable是否可编辑,为对象时可对编辑进行控制boolean | editablefalse×
ellipsis自动溢出省略,为对象时可设置省略行数、是否可展开、添加后缀等boolean | ellipsisfalse×
italic是否斜体booleanfalse4.16.0×
level重要程度,相当于 h1、h2、h3、h4、h5number: 1, 2, 3, 4, 515: 4.6.0×
mark添加标记样式booleanfalse×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.4.06.4.0
type文本类型secondary | success | warning | danger-success: 4.6.0×
underline添加下划线样式booleanfalse×
onClick点击 Title 时的回调(event) => void-×

Typography.Paragraph

参数说明类型默认值版本全局配置
actions配置操作栏actions-6.4.0×
classNames用于自定义组件内部各语义化结构的 class,支持对象或函数Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-6.4.06.4.0
code添加代码样式booleanfalse×
copyable是否可拷贝,为对象时可进行各种自定义boolean | copyablefalse×
delete添加删除线样式booleanfalse×
disabled禁用文本booleanfalse×
editable是否可编辑,为对象时可对编辑进行控制boolean | editablefalse×
ellipsis自动溢出省略,为对象时可设置省略行数、是否可展开、添加后缀等boolean | ellipsisfalse×
italic是否斜体booleanfalse4.16.0×
mark添加标记样式booleanfalse×
strong是否加粗booleanfalse×
styles用于自定义组件内部各语义化结构的行内 style,支持对象或函数Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-6.4.06.4.0
type文本类型secondary | success | warning | danger-success: 4.6.0×
underline添加下划线样式booleanfalse×
onClick点击 Paragraph 时的回调(event) => void-×

actions

{
  placement: 'start' | 'end',
}
参数说明类型默认值版本
placement设置操作栏相对于文本的位置start | endend6.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自定义复制按钮的 tabIndexnumber05.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控制是否是编辑中状态booleanfalse
enterIcon在编辑段中自定义"enter"图标(传递"null"将删除图标)ReactNode<EnterOutlined />4.17.0
icon自定义编辑图标ReactNode<EditOutlined />4.6.0
maxLength编辑中文本域最大长度number-4.4.0
tabIndex自定义编辑按钮的 tabIndexnumber05.17.0
text显式地指定编辑文案,为空时将隐式地使用 childrenstring-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默认展开或收起boolean5.16.0
expandable是否可展开boolean | 'collapsible'-collapsible: 5.16.0
expanded展开或收起boolean5.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 覆盖。本表不伪造静态默认值。

令牌类型原生说明
titleMarginTopnumber | string标题上间距
titleMarginBottomnumber | 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添加在组件最外层的 classNamestring-
autoFocus自动获取焦点,仅对表单类、链接、交互容器等可聚焦元素生效booleanfalse

安装并复现示例

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.tsx
  • vendor/components/typography/Base/Ellipsis.tsx
  • vendor/components/typography/Base/EllipsisTooltip.tsx
  • vendor/components/typography/Base/index.tsx
  • vendor/components/typography/Editable.tsx
  • vendor/components/typography/Link.tsx
  • vendor/components/typography/Paragraph.tsx
  • vendor/components/typography/Text.tsx
  • vendor/components/typography/Title.tsx
  • vendor/components/typography/Typography.tsx
  • vendor/components/typography/index.tsx
  • vendor/components/typography/style/index.ts

来源与许可

https://github.com/ant-design/ant-design/tree/4a39f54842eade4e565ab336ef6097cd7e723cdd

保留原生中英文正文与可执行示例;官网专用的嵌入章节和令牌表格在本地展开。Ant Design 使用 MIT 许可,另列依赖的许可证也需保留。上传预览禁止向外发起请求,不提供后端服务。