跳到主要内容

Typography tokens 对齐 Figma DS(WEB-562)

版本: 0.2.0 · 类型: 🐛 缺陷修复

LinearWEB-846

问题

DES-67(2026-06-03)误将 design-site 文档表当作规范来源,token 更新方向与 Figma text styles 相反,导致全局 UI 字号/行高与 DS 不匹配。

改动文件

  • packages/design-tokens/src/source/Plaud Web 4.0 Design System-variables.css — token 源(:root + Desktop)
  • packages/design-tokens/src/source/figma-variables.json — 脚本再生
  • packages/design-tokens/src/generated/css/variables-light.css — 运行时 light 值
  • packages/design-tokens/src/generated/css/variables-dark.css — 运行时 dark 值
  • packages/design-site/docs/text-style.mdx — EN Text Styles 页
  • packages/design-site/i18n/zh-CN/.../text-style.mdx — zh-CN 镜像
  • packages/design-site/docs/components/patterns/menu.mdx — EN Menu 页字号基线
  • packages/design-site/docs/components/patterns/dropdown-menu.mdx — EN DropdownMenu 页字号基线
  • packages/design-site/i18n/zh-CN/.../menu.mdxdropdown-menu.mdx — zh-CN 镜像
  • packages/design/src/components/Select/styles.ts — 下拉最大高度与 Body 行高对齐
  • packages/design/src/components/Tooltip/styles.ts — 改用 Body token
  • apps/web4/.../AllRecordingsHeading.tsx — Title-2 (22/28) 硬编码防静默回归
  • apps/web4 中 5 个文件 — --Font-Size-Body-Small 改为 Footnote token

改动内容

Token 变更(Desktop / :root):

Token旧值新值
--Font-Size-Display36px32px
--Font-Size-H128px24px
--Font-Size-H222px20px
--Font-Size-H320px18px
--Font-Size-Body15px14px
--Line-Height-H136px32px
--Line-Height-H326px24px
--Line-Height-Body22px20px

未变--Font-Size-Footnote(13px)、--Line-Height-Display(44px)、--Line-Height-H2(28px)、--Line-Height-Footnote(18px)。

删除(无消费方):--Font-Size-H4/H5/H6--Line-Height-H4/H5/H6

行为变化

超出 DES-67 回滚的额外对齐——以下行高变更属于 Figma 对齐,非 DES-67 单纯回滚:

  • H1 行高:36px → 32px
  • H3 行高:26px → 24px
  • Body 行高:22px → 20px

备注

已知偏差(follow-up):

  1. web4 残留 15px 硬编码:AutoSpeakerIntroModal.tsxContentRating.tsxFailState.tsx
  2. web3 fallback 值(如 H2 LH 30px)与新 token 不一致——仅 fallback,运行时无影响
  3. design-site 其他组件 mdx 与 *DesignSpec.md 中散落的「14px/22px」描述需后续批量修正

设计核对请求:请设计端核对 Figma variables(Platform collection)与 text styles 行高一致性;实现期间 Figma variables API 返回 403,未能程序化交叉验证。