字体系统
三种字体,三种职责。Serif for soul · Sans for system · Mono for evidence。本规范把字阶、行高、行长、中英混排做到可测量、可验证的世界级深度。
Serif · Sans · Mono 各司其职
WCN 用三种字体制造"文献感":衬线给灵魂(引言、章首)、无衬线给系统(正文、UI)、等宽给证据(数据、ID、代码)。三者职责严格不越界——这是 WCN 区别于普通 SaaS(纯无衬线)的关键。正文按语境分流(defect TYP-1):网站(wcn.network)正文用 System Sans(Inter);"已出版文档"册——白皮书与所有 *_Spec(AG-*、L/C/N/K/B/O,共 19 份)——正文用 Editorial Serif(EB Garamond),以 C-01_Treasury_Spec.html 为基准模板。display 与 mono 两语境共用。
三字体角色
EB Garamond / Source Han Serif SC
引言 · 章首 · 封面 · 大标题 · 文档正文
Inter / Source Han Sans SC / PingFang SC
网站正文 · 标题 · UI · 表格 · 导航
JetBrains Mono
数据 · 节点 ID · telemetry · 代码
| 角色 | 英文 | 中文 | 回退栈 |
|---|---|---|---|
| Editorial Serif | EB Garamond | Source Han Serif SC | Georgia, serif |
| System Sans | Inter | PingFang SC / Source Han Sans SC | -apple-system, sans-serif |
| Code Mono | JetBrains Mono | (等宽 CJK 备用) | ui-monospace, monospace |
八级字阶
字阶比例(实测)
| 相邻级 | 比例 | 近似音阶 |
|---|---|---|
| Display 72 / Hero 44 | 1.64 | ≈ 增六度(强对比,封面专用) |
| Hero 44 / Pull Quote 30 | 1.47 | ≈ 增五度 |
| Pull Quote 30 / H2 26 | 1.15 | ≈ 小二度(紧邻,刻意接近) |
| Body 16 / Caption 12 | 1.33 | = 完全四度 |
WCN 字阶不是严格单一模块化音阶——它是"对比驱动"的:大标题用大跳(1.64)制造封面冲击,正文区用小跳(1.15–1.33)保持阅读平稳。这是有意的编辑型字阶,不是疏忽。规则:同一文档内每级只取区间中一个定值,不混用。
行高与行长
行高 Line-height
| 层级 | 行高 | 理由 |
|---|---|---|
| 正文 Body | 1.6–1.8 | CJK 需 ≥1.6 呼吸;WCN 取 1.7 |
| 标题 Hero/H2 | 1.12–1.2 | 大字收紧,视觉成块 |
| 引言 Pull Quote | 1.35 | 介于标题与正文 |
| Caption | 1.5 | 小字略松,易读 |
行长 Measure(关键修复)
max-width: 68ch(约 700px)→ 英文落入 60–75、中文落入 30–40 的理想行长。标题/表格可用全宽,正文段落必须受 measure 约束。
正文 <p> 的最大行长 = 68ch(EN)/ 36 字(CN)。这是世界级排版的硬指标——Stripe/Medium 都把正文锁在此区间。VS-02 据此要求所有长文正文容器加 measure 约束。
中英混排
| 规则 | 说明 |
|---|---|
| 混排空格 | 中英文之间留 1 个空格,由 build 脚本自动加(不靠手动) |
| 斜体 | 仅英文可斜体;中文永不斜体(中文强调用引言/加粗) |
| 标点 | 中文全角、英文半角;数字与单位之间不断行 |
| 字号补偿 | 中文视觉重于拉丁,正文中文可比英文小 0.5–1pt 求视觉等大 |
| 数字/ID | 一律用 Mono(等宽对齐):NODE-FNDR-0001 |
压力测试 H-6 的根因就是全局 em{italic} 误伤中文。VS-02 硬规则:斜体只通过 .i-en 类施于拉丁文,CSS 禁止全局 em 斜体。
字重与强调
| 字重 | 用途 |
|---|---|
| 400 Regular | 正文 · 引言 · Hero(衬线) |
| 700 Bold | H2 / H3 · 表头 · 关键强调 |
| 800 ExtraBold | Wordmark · Display 封面字 |
强调的优先级(从轻到重)
- 语义颜色(Muted 弱化)— 最轻,最常用
- 英文斜体 like this — 仅英文
- 加粗 — running prose 每页 ≤ 5 处(结构组件豁免)
- 引言块 — 中文强调的首选,替代斜体
加粗是有预算的:正文每页软上限 5 处。原则块标题、表头、H2/H3、封面不计入。滥用加粗 = 没有重点。
OpenType 细节(世界级标志)
| 特性 | 设置 | 用在哪 |
|---|---|---|
| 表格数字 tnum | font-variant-numeric: tabular-nums | 数据表 / KPI / 财务(对齐竖列) |
| 等高数字 lnum | lining-nums | 标题中的数字 |
| 连字 liga | 默认开 | 正文(关 dlig 花式连字) |
| 分数 frac | 按需 | 比例 / 占比 |
| 字距 tracking | Marginalia +1.5px · Display −1.5px | 小字加宽、大字收紧 |
跨载体降级
| 载体 | 字体落地 |
|---|---|
| Web | 三字体全启用 + OpenType + measure 约束 |
| A4 / PDF | 嵌入字体子集;正文 ≥10.5pt;脚注 Mono |
| Deck | Display/Hero 放大,正文最少;暗底用 Light 字重慎用(细字在暗底发虚) |
| Legal | 单一无衬线 + Mono ID;无衬线衬线混用最小化,求可读 |
| .md / Notion | 字体族不可控 → 豁免;保留结构(# 标题 / `code` / > 引言) |
| 邮件 | 系统字体栈兜底:-apple-system, "Segoe UI", sans-serif |
字体的机器可执行
| Token | 规则 | 可检查 |
|---|---|---|
| type.role | serif/sans/mono 不越界(数据必 mono) | ✓ 类匹配 |
| type.scale | 只用 8 级字阶定值,不出现表外字号 | ✓ 扫描 |
| type.measure | 正文容器 ≤ 68ch | ✓ CSS |
| type.cjk-italic | 中文无斜体;无全局 em italic | ✓ 正则 |
| type.cjk-space | 中英之间 1 空格 | ✓ 脚本 |
| type.bold-budget | 正文每页加粗 ≤ 5 处 | ◐ 计数(软) |
| type.tnum | 数据表用 tabular-nums | ✓ CSS |
发布前自检
- ☐ 三字体职责未越界(数据全 Mono)
- ☐ 字号全部来自 8 级字阶
- ☐ 正文行长落入 EN 60–75 / CN 30–40
- ☐ 行高:正文 1.6–1.8、标题 1.12–1.2
- ☐ 无中文斜体、无全局 em italic
- ☐ 数据表开 tabular-nums
- ☐ 加粗每页 ≤5 处
本规范使 VS-02 从 90% → 100%:哲学 + 三角色 + 八级字阶(含比例诚实分析)+ 行高行长(含 measure 修复)+ 中英混排 + 字重强调 + OpenType + 跨载体 + Lint 九项齐全。VS-02 ✓ 完成(2/12)。