HarmonyOS 7 新特性(十七)|可变字体:连续字重与多语言排版

HarmonyOS 7 设计语言强调可变字体在多语言中的连续字重变化。本文讨论如何把它用于信息层级、响应式排版与无障碍,而不是把字重做成装饰动画。
传统字体通常只有 Regular、Medium、Bold 等离散档位。可变字体允许在连续轴上调整字重,HarmonyOS 文本属性支持在 100–900 范围内使用非整百值,并可随设备字体粗细级别更新。
一、字重首先表达信息层级
标题、正文、辅助信息和数字状态应使用稳定语义,而不是每个页面随意选择 537 或 683。设计系统可以定义 titleStrong、bodyDefault、captionMuted 等 Token,再映射到连续字重。

二、显式开启可变字重
Text('下载进度 68%')
.fontWeight(560)
.enableVariableFontWeight(true)
.enableDeviceFontWeightCategory(true)
属性名称与可用范围以当前 ArkUI 文档为准。若关闭可变字重,非整百值可能回到默认值;开发者必须在目标设备验证实际显示。
三、跟随系统设置但不破坏层级
设备字体粗细设置变化时,正文与标题都可以增强,但二者仍需保持可区分。不要让“跟随系统”把所有文本推到同一上限。建议先计算用户增量,再在每个语义 Token 的安全区间内裁剪。
四、多语言不能只看中文截图
HarmonyOS Sans 支持简繁中文及多种语言。中英混排、阿拉伯文字、数字公式和窄字形对字重变化的视觉感受不同。测试时覆盖长英文、CJK 标点、数字表格、RTL 和字体回退,避免基线跳动与截断。
五、动画只用于有意义的状态
字重可用于按压、选中或阅读焦点的轻微过渡,但不能持续呼吸或频繁跳变。开启“减少动态效果”时直接切换到终态。长列表中不要让每一行同时执行字重动画。
六、自定义字体先查询可变轴
ArkGraphics 2D 提供 FontVariationAxis 与 FontVariationInstance 信息。接入自定义字体前读取支持的轴、最小值、最大值和默认值;不支持所需轴时回退预设实例,不能假定所有字体都有 wght 连续轴。
七、验收清单
- 100、非整百值和 900 边界显示符合预期;
- 系统字体粗细变化后层级仍清晰;
- 字体放大、窄窗口和多语言不截断;
- 自定义字体缺少可变轴时正确回退;
- 动画可被减少动态效果关闭;
- 截图回归覆盖 Phone、Tablet 与 PC/2in1。

结语
可变字体的价值,是让排版在不同字号、设备和语言之间更细腻地保持层级。用语义 Token 管理连续字重,尊重系统设置并验证多语言,才能得到一致而可访问的文字体验。
官方参考
- 鸿蒙黑体:https://developer.huawei.com/consumer/cn/doc/doccenter-ux-design/font-0000001828772001
- 文本通用属性:https://developer.huawei.com/consumer/cn/doc/doccenter-capabilities/api/ts-text-common
- 文本模块:https://developer.huawei.com/consumer/cn/doc/doccenter-capabilities/api/js-apis-graphics-text
更多推荐



所有评论(0)