什么是字号阶梯?
字号阶梯是设计系统允许使用的一组有序字号,通常由一个基准字号乘以固定比例生成。把文字限制在这些档位上,正是多人协作的界面能保持排版一致的原因。
一套字号阶梯是怎么来的
先定一个基准字号,通常是 16px,因为它是浏览器默认值,也是正文一般应有的大小。再定一个比例,向上和向下相乘。
以 16px 为基准、取 1.25(大三度)的比例,大致得到:
12px ← 16 / 1.25 / 1.067
14px
16px ← 基准
20px
25px
31px
39px
然后把这些值圆整成好用的数。常用比例从 1.125(克制,适合信息密集的界面)到 1.5(戏剧化,比起应用更适合营销页面)。
为什么要限制字号
没有阶梯,字号就会被一个一个单独挑出来,一个应用里会攒下 13px、14px 和 15px 的文字,而没有人本意要让它们不同。读起来会觉得整体差着一口气,却又指不出具体哪里错了。
阶梯也让垂直节奏变得可控。当字号之间以一个已知比例相关联,行高和间距就能以可预期的方式挂靠上去,而不必逐个组件去调。
光有字号还不够
字号只是排版决定的一部分。一套完整的 Token 会给每一档配上:
- 行高:标题紧一些,正文松一些。展示级字号 1.2 左右、正文 1.5 左右是合理的默认。
- 字重:哪些字号上可以用哪些字重
- 字距:大号展示字通常需要稍微收紧,小字往往需要稍微放开
只把字号 Token 化的体系,把其余三项留给每个组件重新决定一遍,而不一致正是从那里回来的。
语义命名
按角色而不是按尺寸给档位命名,理由和颜色那边是一样的:
--font-size-body: 16px;
--font-size-heading-2: 25px;
--text-lg 描述的是一个尺寸。--font-size-heading-2 描述的是一个决定,改变它的指向不需要把每个标题都找出来。
怎么选字体
常见的搭配是标题用一款有性格的展示字体,正文用一款可读性很强的实用字体。会出问题的做法是选两款相似但不相同的字体,那读起来像是失误而不是决定。要么形成对比,要么就用同一款;不要停在"差不多一样"。
这与 Flash DSM 的关系
生成的体系包含一组字体搭配和一整套阶梯,每一档都带有字号、字重、行高和字距的 Token,并且是按提示词里描述的产品来选的。