用途:为 Apple 平台(iOS/iPadOS/watchOS/macOS)界面选择字体、构建文字层级,并处理 Dynamic Type 与自定义品牌字体。
主要能力:
- 文字样式优先。预定义样式(Large Title 至 Caption 2)自带字重、字号、行距与 Dynamic Type 支持,不同样式缩放幅度不同。先用 2–3 个文字样式加强调变体建立层级,再考虑新字体。语义色配合文字样式可免费获得深色模式、对比度与 Dynamic Type。macOS 支持文字样式但不含 Dynamic Type,按 100% 设计。
- 光学尺寸与字距。SF 在 17–28pt 间连续混合 Text/Display 设计,系统字体 API 自动处理。字距用 tracking 而非 kerning;截断压力时用 allowsTightening,优先换行而非截断;行高仅通过 leading 特征调整(tight −2pt、loose +2pt,watchOS ±1pt),系统会为高书写系统自动加行距。
- Dynamic Type 阶梯:共 12 档(7 档默认 + AX1–AX5 无障碍)。.body 从默认 17pt 到 AX5 的 53pt,约 3 倍。按顺序升级:文字样式(lineLimit 0 使其换行)、@ScaledMetric 缩放图标与间距、在无障碍尺寸切换布局轴(dynamicTypeSize.isAccessibilitySize + AnyLayout;UIKit 翻转 stack 轴)、Large Content Viewer 仅作无法增大的栏位(如标签栏)的兜底。需在全部 12 档测试。
- San Francisco 家族按用途选:SF Pro 默认 UI 文字;SF Pro Rounded 更亲和的数字/标签,用于小组件、健康健身数据;SF Compact 用于 watchOS;SF Mono 用于代码与等宽对齐;New York 衬线用于阅读与编辑排版;SF Arabic 及 Rounded 用于阿拉伯文。宽度轴 Condensed/Regular/Compressed/Expanded:默认 Regular,非 Regular 是易读性决策;Condensed 容纳更多文字;Compressed 仅用于展示密度,不用于正文;Expanded 用于展示排版和小号次级标签。宽度是字重、字号、颜色之外的第四层级杠杆,各宽度垂直比例一致,混用不会错位。
- 自定义字体需自行承担:用 UIFontMetrics(forTextStyle:).scaledFont(for:) + adjusts-for-content-size 或 SwiftUI Font.custom(_:size:relativeTo:) 缩放,用 @ScaledMetric 缩放布局常量;在最大无障碍尺寸测试并换行而非截断;验证各语言书写覆盖并准备回退(web 用 system-ui、ui-rounded、ui-serif、ui-monospace);预留字距表、光学尺寸、字重回路的维护成本。
反模式:用户可见文字硬编码点值;用 kerning API 做字距;自定义字体未加 relativeTo:(尺寸冻结);Compressed 正文;可换行处截断。
输出格式:排版评审表——元素 | 当前(字体/字号/样式)| 问题(层级/缩放/易读性)| 修复;签署前检查 XXL 与 AX 尺寸下的 Dynamic Type。
参考:WWDC20 10175、WWDC22 110381、developer.apple.com/fonts、Human Interface Guidelines 排版。
限制:资料未提供具体收费、价格、平台版本要求或具体安装命令。