Text 文本
xy-text 用于承载正文级文本、状态说明和卡片摘要。它不是富文本组件,而是给普通文本补上语义色、尺寸节奏、截断、复制和展开能力。
基础用法
type 用来表达文本语义等级,更适合正文中的“强调”和“状态提示”,而不是按钮那种强交互色块。
基础用法语义颜色
Text 组件用于统一文本颜色样式,支持多种语义类型。
默认文本主要文本成功文本信息文本警告文本危险文本
尺寸
xy-text 跟随全局尺寸,也可以局部覆盖为 sm / md / lg。适合同一页面里区分正文、辅助说明和强调标题。
Small 辅助说明文本Default 正文文本Large 强调文本
单行截断
开启 truncated 后会走单行省略逻辑,实际发生溢出时会自动补 title。
这是一段很长的单行文本,用于演示 truncated 开启之后会通过省略号截断,并在溢出时自动补 title。
多行截断
line-clamp 适合摘要块、列表描述和说明文案,多行溢出时也会自动补 title。
这是一段多行文本示例,适合卡片摘要、表格扩展描述和二级说明。开启 line-clamp 后,组件会按指定行数截断,并在真正溢出时自动回填 title,避免用户在密集布局里丢失完整上下文。
自定义标签
tag 可以让 Text 保持原本的排版语义,例如 p / strong / del,而不是强行只渲染成 span。
自定义 tag 适合在不打断排版语义的前提下接入 Text 的颜色、尺寸和截断能力。
复制与语义样式
copyable 适合承载编号、链接和命令片段,strong / underline / delete 用于轻量语义强调。
pnpm build:docs复制发布命令旧域名已下线
可展开文本
expandable 适合搭配 line-clamp 承载较长说明,默认先收起,点击后展开完整内容。
何时使用
- 需要在正文里对某一段说明做轻量语义强调。
- 需要在卡片、列表或摘要区控制文本截断,而不想每次都手写样式。
- 需要保留
p / strong / del这类标签语义,同时接入统一的主题色和字号。
何时不使用
- 需要富文本编辑时,Text 不提供编辑能力,应使用
xy-editor。 - 需要可点击跳转的文本时,优先使用
xy-link。 - 需要大段标题时,应使用原生
<h1>-<h6>或自定义标题组件。 - 需要状态标记时,优先使用
xy-tag。
最佳实践
截断策略选择
| 场景 | 推荐方式 |
|---|---|
| 单行溢出省略 | truncated |
| 多行摘要截断 | line-clamp |
| 溢出时显示完整内容 | ellipsis-tooltip |
| 长文本展开收起 | expandable + line-clamp |
语义色使用
vue
<xy-text type="success">审核通过</xy-text>
<xy-text type="danger">已拒绝</xy-text>
<xy-text type="warning">待处理</xy-text>
<xy-text type="info">草稿</xy-text>状态文本建议配合 xy-tag 使用——Tag 更适合独立的状态标记,Text 更适合嵌入段落中的状态强调。
Text API
Text Attributes
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
type | 文本语义色 | TextType | 'default' |
size | 文本尺寸 | TextProps["size"] | 跟随全局配置 |
truncated | 是否启用单行省略 | boolean | false |
line-clamp | 多行省略的最大行数 | number | string | — |
tag | 渲染的根标签 | string | 'span' |
copyable | 是否显示复制按钮 | boolean | false |
ellipsis-tooltip | 溢出时是否补充 tooltip | boolean | false |
expandable | 是否支持展开收起 | boolean | false |
strong | 是否加粗显示 | boolean | false |
underline | 是否添加下划线 | boolean | false |
delete | 是否添加删除线 | boolean | false |
Text Slots
| 插槽 | 说明 |
|---|---|
default | 文本内容 |
行为约定
truncated只处理单行省略,line-clamp处理多行省略,两者不建议同时使用。- 没有显式传
title时,组件会在内容真实溢出后自动补title。 expandable只在文本真实溢出时展示展开按钮。tag只改变语义标签,不改变颜色、字号和截断策略。