用途
typeset 用于评估并改进那些显得通用、不一致或结构糟糕的排版,把默认样式的文字变成有意图、精心设计的字体排印。当用户提到字体、排版、文字层级、可读性等问题时使用。
强制准备
必须先调用 /impeccable —— 它包含设计原则、反模式以及上下文收集协议(Context Gathering Protocol)。在继续之前遵循该协议;如果尚不存在设计上下文,必须先运行 /impeccable teach。
评估当前排版
分析当前字体排印中薄弱或通用的部分:
字体选择:
- 是否在使用隐形默认字体?(Inter、Roboto、Arial、Open Sans、系统默认)
- 字体是否匹配品牌个性?(活泼的品牌不应使用企业化字体)
- 字体家族是否过多?(超过 2-3 个几乎总是混乱)
层级:
- 能否一眼区分标题、正文和说明文字?
- 字号是否过于接近?(14px、15px、16px = 层级模糊)
- 字重对比是否足够强?(Medium 与 Regular 几乎看不出差别)
字号与比例:
- 是否存在一致的字号比例,还是字号随意设定?
- 正文是否达到最低可读性?(16px+)
- 字号策略是否适合上下文?(应用 UI 用固定 rem 比例;营销/内容页标题用 fluid clamp())
可读性:
- 行长是否舒适?(理想为 45-75 个字符)
- 行高是否适合该字体和上下文?
- 文字与背景对比是否足够?
一致性:
- 相同元素是否在全站样式一致?
- 字重使用是否一致?(同一角色不要一处 bold、另一处 semibold)
- 字距是有意设定还是处处默认?
关键:目标不是让文字“更花哨”,而是让它更清晰、更易读、更有意图。好的排版是隐形的;糟糕的排版则令人分心。
规划排版改进
参考 impeccable 技能中的排版参考,获取关于比例、搭配和加载策略的详细指导。
制定系统化计划:
- 字体选择:字体是否需要替换?什么适合品牌/上下文?
- 字号比例:建立模块化比例(例如 1.25 比率)并形成清晰层级
- 字重策略:哪些字重服务哪些角色?(正文用 Regular,标签用 Semibold,标题用 Bold——或任何合适的组合)
- 间距:行高、字距以及排版元素之间的外边距
系统性地改进排版
字体选择: 如果字体需要替换:
- 选择能反映品牌个性的字体
- 搭配出真正的对比(衬线 + 无衬线、几何 + 人文)——或使用单一字体家族的多个字重
- 确保 Web 字体加载不会导致布局偏移(font-display: swap、度量匹配的回退字体)
建立层级: 构建清晰的字号比例:
- 5 个字号覆盖大多数需求:说明、次要、正文、小标题、标题
- 层级之间使用一致比率(1.25、1.333 或 1.5)
- 组合多个维度:字号 + 字重 + 颜色 + 空间,形成强层级——不要只依赖字号
- 应用 UI:使用固定的基于 rem 的字号比例,可选在 1-2 个断点调整。流体字号会破坏密集、基于容器的布局所需的空间可预测性
- 营销/内容页:标题和展示文字使用 clamp(min, preferred, max) 流体字号。正文保持固定
修复可读性:
- 使用 ch 单位设置文本容器最大宽度(max-width: 65ch)
- 按上下文调整行高:标题更紧(1.1-1.2),正文更松(1.5-1.7)
- 深色背景上的浅色文字适当增大行高
- 确保正文至少 16px / 1rem
打磨细节:
- 数据表格和需要对齐的数字使用 tabular-nums
- 应用恰当的字距:小型大写和全大写略微放开,大型展示文字用默认或收紧
- 使用语义化 token 名称(--text-body、--text-heading),而非数值名称(--font-16)
- 设置 font-kerning: normal,并在合适处考虑 OpenType 特性
字重一致性:
- 为每个字重定义清晰角色并坚持使用
- 不要使用超过 3-4 个字重(Regular、Medium、Semibold、Bold 已足够)
- 只加载实际使用的字重(每个字重都会增加页面加载)
绝对不要
- 使用超过 2-3 个字体家族
- 随意选择字号——要遵循比例
- 正文小于 16px
- 正文使用装饰性/展示字体
- 禁用浏览器缩放(user-scalable=no)
- 字号使用 px——使用 rem 以尊重用户设置
- 在个性重要时默认使用 Inter/Roboto/Open Sans
- 搭配相似但不相同的字体(两个几何无衬线体)
验证排版改进
- 层级:能否立即识别标题、正文和说明文字?
- 可读性:长段落正文阅读是否舒适?
- 一致性:相同角色的元素是否全站样式一致?
- 个性:排版是否反映品牌?
- 性能:Web 字体是否高效加载且无布局偏移?
- 无障碍:文字是否满足 WCAG 对比度?是否可缩放到 200%?
记住:排版是界面设计的基础——它承载了大部分信息。把它做好是你能做出的最高杠杆的改进。