字体选择
- 1-2 种字体
- 匹配品牌调性
- 区分衬线/无衬线
typeset 是优化排版设计的技能。它的核心是:让文字从”能看”变成”好看”,从”默认”变成”精心设计”。
作为设计师/开发者,你可能遇到过:
typeset 就是解决这些的。
界面中 80% 的内容是文字
好的排版:- 提升阅读体验- 传达品牌个性- 引导用户注意力
差的排版:- 阅读疲劳- 信息难以获取- 显得廉价用户会通过排版判断产品质量:
好的排版 = 专业、可信差的排版 = 业余、不可信排版不是随意调整:- 有层级系统- 有尺度系统- 有节奏系统
好的排版让界面看起来"精心设计"字体分类:
衬线体(Serif):Times New Roman, Georgia- 传统、正式、优雅- 适合长文本阅读
无衬线体(Sans-serif):Inter, Roboto, Helvetica- 现代、简洁、干净- 适合界面设计
等宽体(Monospace):Fira Code, JetBrains Mono- 适合代码、数字- 适合技术产品字体选择原则:
✅ 正确:- 选择 1-2 种字体家族- 衬线体用于正文,无衬线体用于标题- 字体匹配品牌调性
❌ 错误:- 使用超过 3 种字体- 使用系统默认字体(太普通)- 混用风格冲突的字体推荐字体组合:
现代简约风:- 标题:Inter- 正文:Inter
科技风:- 标题:SF Pro Display- 正文:SF Pro Text- 代码:JetBrains Mono
中文现代风:- 标题:思源黑体 Heavy- 正文:思源黑体 Regular- 英文:Inter定义:通过字号、粗细、颜色区分信息重要性
层级示例:
H1:36px / Bold / #000000 (页面标题)H2:28px / SemiBold / #333333 (章节标题)H3:22px / Medium / #555555 (小节标题)正文:16px / Regular / #666666 (正文内容)辅助:14px / Regular / #999999 (说明文字)字号尺度(推荐):
12, 14, 16, 18, 20, 24, 30, 36, 48, 64
避免:- 13, 15, 17, 19(不规律的字号)- 14.5, 15.8(奇怪的字号)粗细层级:
Bold (700):标题Medium (500):强调Regular (400):正文Light (300):辅助行高(Line Height):
中文:1.5 - 2.0英文:1.4 - 1.8
正文行高:1.5 - 1.8标题行高:1.2 - 1.4长文本行高:1.8+字间距(Letter Spacing):
中文一般不需要额外字间距英文标题可适当增加
标题:0.5px - 1px正文:0最佳行长度:
45-75 字符 = 最佳阅读体验
太长:阅读疲劳太短:阅读节奏被打断计算方式:
中文:字数 ≈ 30-45 字/行英文:字符 ≈ 45-75 字符/行移动端:
每行 20-35 个字不需要考虑 45-75 规则WCAG 标准:
正常文本:- AA 级:4.5:1 对比度- AAA 级:7:1 对比度
大文本(18px+ 或 14px bold):- AA 级:3:1 对比度- AAA 级:4.5:1 对比度推荐对比度:
主文字:#333333(不纯黑,柔和)次要文字:#666666辅助文字:#999999禁用文字:#CCCCCC问题:
优化后:
标题:36px / Bold / #1a1a1a副标题:24px / SemiBold / #333333正文:18px / Regular / #444444 / 1.8 行高段落间距:1.5em引用:18px / Italic / #666666 / 左边框代码:16px / JetBrains Mono / 背景 #f5f5f5问题:
优化后:
指标数字:48px / Bold / #1a1a1a指标标签:14px / Medium / #666666卡片标题:16px / SemiBold / #333333时间戳:12px / Regular / #999999问题:
优化后:
标签:14px / Medium / #333333 / 上方显示输入框:16px / #333333占位符:16px / #999999帮助文字:14px / #666666 / 字段下方错误文字:14px / #DC3545 / 帮助文字上方:root { /* 字体 */ --font-primary: 'Inter', sans-serif; --font-mono: 'JetBrains Mono', monospace;
/* 字号 */ --text-xs: 12px; --text-sm: 14px; --text-base: 16px; --text-lg: 18px; --text-xl: 20px; --text-2xl: 24px; --text-3xl: 30px; --text-4xl: 36px;
/* 行高 */ --leading-tight: 1.25; --leading-normal: 1.5; --leading-relaxed: 1.75;
/* 字重 */ --font-light: 300; --font-regular: 400; --font-medium: 500; --font-semibold: 600; --font-bold: 700;
/* 颜色 */ --text-primary: #1a1a1a; --text-secondary: #666666; --text-tertiary: #999999;}h1 { font-size: var(--text-4xl); font-weight: var(--font-bold); line-height: var(--leading-tight); color: var(--text-primary);}
h2 { font-size: var(--text-2xl); font-weight: var(--font-semibold); line-height: var(--leading-tight);}
p { font-size: var(--text-base); font-weight: var(--font-regular); line-height: var(--leading-relaxed); color: var(--text-secondary);}字体选择
层级系统
可读性
检查
查看源文件: GitHub原始文件