字体排版
正文衬线,界面无衬线,代码等宽。中文优先的行长与留白。
四个字族
显示体 —— Lora + 思源宋体
正文字体 —— EB Garamond + 思源宋体。长文阅读的默认字体;衬线让长段落里的字形更易分辨。
界面字体 —— system-ui + 苹方 / 微软雅黑。用于标签、按钮、表单和元数据。
等宽字体 —— JetBrains Mono。用于代码和数字。
拉丁字体自托管并带 unicode-range 子集;中文回退到系统字体,
不通过 CDN 加载——一个中文字体家族动辄数 MB,长期访问与离线复现的成本都太高。
字号阶梯
4.5rem · text-5xl
2.25rem · text-3xl
1.5rem · text-xl
1rem · text-base —— 正文
0.833rem · text-sm —— 界面
0.694rem · text-xs —— 元数据下限
行长与行高
拉丁文 60–75 字符,中文 30–40 字。.wx-measure 直接封装了这条规则,
并按 :lang(zh) 切换到 36em。
这段文字被限制在最佳阅读行长内。行长过长时眼睛在换行处容易丢失位置, 过短则频繁换行打断节奏。中文因为字符密度高,合适的行长比拉丁文短得多。
行高 token:--leading-tight 1.25 · snug 1.45 ·
normal 1.6 · relaxed 1.85(长文正文)· loose 2.0。
内容排版组件
眉题 Eyebrow
标题
导语 lede —— 比正文大一档,承担摘要功能。
首字下沉用于长文开篇。这是一段示例正文,用来展示下沉字与后续文字的关系; 窄画布下会自动取消下沉,因为三行高的首字会吃掉本就有限的行长。
分组不靠方框,靠邻近。
组件通用原则
引言 pullquote 用于强调,语义与 quote 不同
中文排版细节
- 字间距
--tracking-chinese: 0.1em——中文标题需要比拉丁文更松的字距 - 标点——使用全角标点,不在行首出现闭合标点
- 中西文混排——数字与拉丁词两侧留出空隙;本包不自动插字距,内容编辑手动处理,或先在目标浏览器与内容中验证
text-spacing后再启用 - 禁止大段正文居中对齐——伤害可读性