WWDC Quick Look 💓 By SwiftGGTeam
What's new in SF Symbols

What's new in SF Symbols

观看原视频

Highlight

SF Symbols 3 新增近 600 个图标(总数超 3000)、扩展本地化语言支持、引入 Hierarchical 和 Palette 两种渲染模式,并通过图层注释实现精细的颜色控制。

核心内容

符号是用户界面最基础的沟通元素

你点开一个 App 的设置页面,那个齿轮图标就是符号。符号是用户与产品之间最简洁的沟通形式,它们独立于语言,帮助用户快速导航、触发动作。

SF Symbols 把这些符号整合成一套与 San Francisco 字体无缝配合的图标库。每个符号有九种字重、三种尺寸,自动与文本标签对齐,还支持动态字型和粗体文字等辅助功能。

00:48

符号变体:outlined、filled、slash

同一符号可以有多种形式。默认是 outlined(线框版),因为它和文字的笔画风格一致。当你需要更突出的效果时,filled(填充版)能提供更大面积来承载颜色。

还有 slash(斜杠)变体,用于表示移除或禁用某个功能。enclosed 变体把符号放在圆形、方形等容器中。

03:05

本地化扩展:支持阿拉伯文、希伯来文等

今年我们扩展了 SF Symbols 的文字系统覆盖,新增阿拉伯文、希伯来文、天城文的设计,以及中文、日文、韩文、泰文的变体。

这些本地化符号会根据用户的设备语言自动适配,包括从右到左的书写系统。如果符号在镜像时失去预期效果,需要为特定文字系统设计专门版本。

06:25

详细内容

符号的解剖结构:封闭路径和点兼容

每个符号从矢量点开始,由直线段和贝塞尔曲线组成路径。符号的设计源必须是完全封闭的形状,这样才能在不同字重和尺寸间插值时保持一致形状。

关键设计规则:

  • 使用封闭路径,不能有开放端点
  • 笔画必须转换为轮廓
  • 所有变体必须点兼容(相同数量的矢量点)

这样设计的好处是,系统可以在不同字重间平滑插值,实现九种字重的变化。

08:35

图层注释:定义主次关系

符号可以组合多个对象,比如分享符号是箭头和方形的组合。通过图层注释,我们可以把这些对象分组:

  • Primary(主层)
  • Secondary(次层)
  • Tertiary(第三层)

这为颜色控制奠定了基础。比如圆形容器内的屏幕通常标注为 tertiary,而前景元素标注为 primary。

四种渲染模式

1. Monochrome(单色模式)

这是最接近排版本质的模式,所有符号使用单一颜色,强调一致性而非差异性。当你需要符号混排且不突出任何一个时使用。

Image(systemName: "heart.fill")
    .symbolRenderingMode(.monochrome)
    .foregroundStyle(.red)

关键点:

  • 所有部分统一使用相同颜色
  • 透明度应用于整个符号,忽略图层注释
  • 适合工具栏、导航栏等需要统一外观的场景

2. Hierarchical(层次模式)

使用单一颜色,但通过不同透明度创建视觉层次。主层 100% 不透明,次层和第三层透明度递减。

Image(systemName: "cloud.sun.rain.fill")
    .symbolRenderingMode(.hierarchical)
    .foregroundStyle(.blue)

关键点:

  • 主层完全饱和,次层半透明,第三层更淡
  • 自动根据图层注释分配透明度
  • 适合需要强调结构但保持单一色调的场景

11:30

3. Palette(调色板模式)

允许使用两种或更多对比颜色,每种颜色可独立控制。基于同样的图层注释,但可以为每层分配不同颜色。

Image(systemName: "person.2.fill")
    .symbolRenderingMode(.palette)
    .foregroundStyle(
        .blue,
        .orange,
        .red
    )

关键点:

  • 最多支持三层独立颜色
  • tertiary 存在时需要三个颜色参数,否则 secondary 颜色会应用到 tertiary
  • 适合需要明确区分符号内不同元素的场景

4. Multicolor(多色模式)

表现符号的固有颜色,反映物理世界的对象外观,或约定俗成的颜色语义(比如添加是绿色,删除是红色)。

Image(systemName: "globe.americas.fill")
    .symbolRenderingMode(.multicolor)

关键点:

  • 使用符号预定义的颜色方案
  • 可以是全彩色、部分彩色(部分用强调色)
  • 没有多色信息的符号会降级为单色模式

15:53

颜色库更新

SF Symbols 3 更新了颜色库:

  • Brown(棕色)现在在所有平台可用,之前仅限 macOS
  • Teal(青色)重新定义为更偏绿的色调
  • Cyan(青色)是新增颜色名,使用旧的 Teal 色值
  • Indigo 和 Purple 在所有平台上有更一致的色相定义

所有颜色在浅色、深色和高对比度外观下会自动适配。

核心启发

1. 用 Hierarchical 模式改善列表项的可读性

  • 做什么:在复杂列表中,为每个列表项的图标使用 Hierarchical 模式
  • 为什么值得做:单色模式下所有图标视觉权重相同,Hierarchical 模式通过透明度区分主次元素,让图标结构更清晰
  • 怎么开始:找到列表中使用的符号,将渲染模式改为 .hierarchical,观察主次元素是否更易辨认

2. 用 Palette 模式为功能按钮创建视觉分组

  • 做什么:为一组相关功能按钮使用相同的 Palette 配色方案
  • 为什么值得做:用户可以通过颜色快速识别功能类别,减少认知负担
  • 怎么开始:定义三到四种配色方案(如编辑用橙色、删除用红色、分享用蓝色),应用到相应功能组的图标

3. 自定义符号时遵循封闭路径原则

  • 做什么:在 Figma 或 Illustrator 中设计自定义符号时,确保所有路径封闭且笔画转为轮廓
  • 为什么值得做:只有封闭路径才能在 SF Symbols 的多种字重间正确插值,确保符号在不同尺寸下保持一致
  • 怎么开始:使用 SF Symbols 3 应用导出符号模板,在模板上绘制,导出前检查是否有开放路径

4. 为你的 App 设计一套符号配色系统

  • 做什么:基于 App 的品牌色和功能分类,定义一套 Palette 模式的配色规则
  • 为什么值得做:统一的配色让用户建立颜色语义记忆,提升界面的专业性和一致性
  • 怎么开始:列出 App 中所有使用符号的场景,按功能分组,为每组定义 2-3 种配色方案并文档化

5. 利用 Multicolor 模式强化品牌识别

  • 做什么:对于品牌标志性元素(如 App logo 图标),使用 Multicolor 模式保持其固有颜色
  • 为什么值得做:Multicolor 模式下的符号保留设计的原色,能强化品牌识别和情感连接
  • 怎么开始:选择有强色彩语义的符号(如天气图标、品牌图标),设置渲染模式为 .multicolor

关联 Session

评论

GitHub Issues · utterances