timeline · 时间轴

一串按时间排的事件:一个时点、一句标题、可选一段正文。 公告列表、大事记、版本记录都是它 —— 它们的共同点不是“有日期”, 而是顺序本身就是信息。

一个完整的时间轴

  1. 2026 年三季报披露

    营业总收入 1,294.06 亿元,同比 +12.40%;经营现金流净额本期未披露。

  2. 2026 年半年报披露

    营业总收入 842.31 亿元,同比 +9.87%。

  3. 2025 年度分红实施

    每 10 股派 12.80 元(含税),除权除息日 2026-05-19。

  4. 2025 年年度报告披露

第一项带 timeline__item--latest:圆点从 8px 变成 12px、标题加重到 600。 两条都是非颜色线索 —— 强制色模式会把所有作者色替换掉, 只靠“最新那条是蓝的”在那里等于没标。
连接线是伪元素画的,最后一条由 :not(:last-child) 收掉 —— 不是给最后一条设透明边框。透明边框在强制色里会显形, 本库为此吃过一次亏(0.22.1 的侧栏“当前项”,五条全都长出了竖线)。

紧凑档:侧栏、卡片、弹层里的事记

  1. 0.23.0 发布
  2. 0.22.1 修强制色当前项
  3. 0.21.0 发现层

timeline--compact 只做两件事:条目间距从 --sp-4 收到 --sp-2,时间挪回标题同一行。它不改字号 —— 在侧栏里把字缩小,等于承认这块内容不重要,而事实往往相反。

反例:拿字符画圆点

错:content: "●"

  1. 季报披露

这一条的字形多 1 个:那个 ● 是文字。 它会出现在 textContent 里、能被选中复制、 也会被算进链接名(读屏念“圆点 季报披露”)。

对:空内容 + 盒子

  1. 季报披露

content: "" + 8×8 的圆角盒子:视觉一样,字形 0 个。 装饰不该占用“读得出来的字符”这个稀缺资源。

两栏的字形数差 1 —— 那 1 个就是圆点。这不是洁癖: 伪元素里的字符会参与可访问名计算(实测:侧栏被读屏念成 “圆点 总览”)。要画形状就用盒子,不要用字。

什么时候不该用它

标记结构

<ol class="timeline">
  <li class="timeline__item
       timeline__item--latest">
    <time class="timeline__time"
          datetime="2026-10-29">
      2026-10-29
    </time>
    <h3 class="timeline__title">
      2026 年三季报披露
    </h3>
  </li>
</ol>

<ol> 不只是习惯:读屏会念“第 2 项,共 4 项”, 而 <div> 堆出来的时间轴在无障碍树里只是一串没有关系的段落。 <time datetime> 同理 —— 显示“10-29”时,机器仍拿到完整日期。