Timeline 时间线Timeline
按时间先后排列的一串事件:订单跟踪、操作记录、发布历史。表示“流程走到哪一步”请用 Steps。
基本用法
每个条目有标题、可选的时间和说明。节点之间用一条细线连起来。
- 已签收本人签收,感谢使用。
- 派送中快递员周师傅正在派送。
- 到达上海转运中心
- 已发货
颜色与图标
tone 给节点上色,icon 把圆点换成图标。颜色之外,标题文字本身要说清发生了什么。
- 部署成功v2.4.0 已上线,耗时 3 分 12 秒。
- 构建告警包体积比上一版大了 12%。
- 测试失败2 个用例未通过,已自动重试。
- 周屿 推送了 3 个提交
- 创建了发布分支
- 计划发布
接口
Timeline
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
items* | TimelineEntry[] | — | 事件列表,按显示顺序。 |
...rest | HTMLAttributes<HTMLOListElement> | — | 其余原生属性透传到 ol,建议给 aria-label。 |
TimelineEntry
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
title* | ReactNode | — | 事件标题。 |
description | ReactNode | — | 标题下的说明。 |
time | ReactNode | — | 时间文字。 |
dateTime | string | — | 机器可读的时间,写进 time 元素的 dateTime。 |
tone | 'neutral' | 'accent' | 'success' | 'warning' | 'danger' | 'info' | 'neutral' | 节点颜色。 |
icon | ReactNode | — | 替换圆点的图标。 |
key | string | — | 列表会增删时给一个稳定的 key。 |
无障碍
- 渲染成有序列表
ol,读屏会报出“列表,共 N 项”和每项的序号。 - 时间用
time元素;写的是“今天”“昨天”这类相对时间时,请同时给dateTime。 - 节点(圆点、图标、连线)都是装饰,对读屏隐藏;所以标题不能省略状态(写“测试失败”而不是只靠红色)。
- 不可聚焦,没有键盘操作;说明里的链接、按钮按文档顺序 Tab 到。