梧桐设计语言v0.4.1

字体Typography


字体家族

sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif
mono: ui-monospace, "SF Mono", Menlo, Consolas, "PingFang SC", monospace

不加载任何 web font。 这是硬规定,理由在品牌书里。各平台落到的字:macOS / iOS → 苹方,Windows → 微软雅黑,Android → 厂商中文字(多为思源黑体系),小程序同宿主。四端字形不同但字号、字重、行高相同,观感一致。

字阶:桌面端

样式 字号 / 行高 字重 字距 颜色 用途
title 26 / 32 700 −0.01em foreground 页面主标题,一页一个
heading 19 / 26 700 foreground 区块标题、弹窗标题
body 14 / 22 400 foreground 正文
input 15 / 22 500 foreground 输入框里的值
label 13 / 18 500 foreground 表单标签、表格主字段、按钮文字
meta 12 / 16 400 muted-foreground 时间、责任人、分组小标题、指标后缀
chip 12.5 / 16 700 状态色 状态芯片
th 11 / 16 600 +0.06em subtle 表头
metric 28 / 32 600 −0.02em foreground 指标大数字
code 13 / 20 400 foreground 工单号、编号、代码(mono)

字阶:现场端

样式 字号 / 行高 字重 用途
f-title 28 / 35 700 页面主标题
f-heading 21 / 30 700 区块标题
f-body 17 / 27 400 正文。下限,不要再小
f-body-large 20 / 32 400 大字模式正文(应用内一键切换)
f-input 17 / 24 500 输入值
f-label 15 / 20 500 表单标签
f-meta 13.5 / 20 400 辅助信息
f-chip 12.5 / 16 700 状态芯片(与桌面同尺寸,必须带图标)

大字模式:正文 17 → 20,标签 15 → 17,行高同步。做成应用内设置而不是依赖系统缩放——系统缩放会把布局撑坏,应用内切换只换字号 token。iOS 上仍要响应 Dynamic Type,但把 f-body 绑到 .body 基准,放大时随之放大,不截断。

规则

  • 层级靠字号和字重,不靠颜色。 颜色只表示「必读 / 辅助 / 不必读」三级。
  • 数字一律等宽:CSS font-variant-numeric: tabular-nums,SwiftUI .monospacedDigit(),Compose fontFeatureSettings = "tnum"。台账列里不等宽的数字对不齐,扫一眼就乱。
  • 中英文混排:中英文之间、中文与数字之间空一格(「3 号机组」「共 156 条」「Qwen3.5 模型」);全角标点;单位紧跟数字不空格(「1.4天」写成「1.4 天」——这条例外:中文单位前空格,% 不空)。
  • 行长:正文一行不超过 40 个汉字(约 560px),说明文字、错误块、AI 回答都受此约束;表格不受限。
  • 字重只用 400 / 500 / 600 / 700,不用 300 以下(中文字体细体在低分屏上发虚)。
  • 不用斜体(中文没有斜体,浏览器会做假倾斜);强调用 500 字重或 foreground 对比 muted-foreground
  • 标题不加省略号截断;过长换行。表格单元格可截断,但整行可 hover 显示 tooltip。