WWDC 2025 Liquid Glass

309 阅读5分钟

最近新开一个WWDC2025系列,把2025新特性整理出来,后续再填充使用实操。这篇写液态玻璃,作为苹果新一代UI设计,其设计了一种新型视觉材质,这种材质通过光学透镜效应来表现层级分离和元素边界。

Meet Liquid Glass

WWDC 2025《Meet Liquid Glass》内容总结

1. 引入与背景

  • Liquid Glass 定义:Apple 新一代数字“元材料(meta-material)”,不是单纯模拟物理玻璃,而是通过动态折射、弯曲和塑形光线来呈现流体化、轻盈的界面体验。
  • 设计演进脉络:从 Mac OS X 的 Aqua → iOS 7 的实时模糊 → iPhone X 的流体交互 → Dynamic Island 的柔性形态 → visionOS 的沉浸式界面 → 最终形成 Liquid Glass。

2. 视觉与动态特性

Lensing 光学透镜效应

  • 通过光线的弯折与聚焦,而不是模糊和散射,来表现层级分离。
  • 内容能透过材质清晰显示,同时界面元素具备清晰边界和视觉重量感。
  • 元素的显隐不再依赖渐隐,而是通过动态调节光折射来实现“流动”过渡。

流体与交互性

  • Liquid Glass 具备液态般的柔韧性:点击、滑动时,界面立即产生光效反馈,像“液体受触摸激活”。
  • 交互时 UI 元素可短暂“浮起”,保持静止时则安静不打扰。
  • 动画与光效结合,增强了界面“活着”的感觉。

3. 自适应与环境感知

动态环境适配

  • 玻璃层实时根据背景动态调整阴影、色调和透明度,确保内容与控件始终清晰可读。
  • 可自动在浅色与深色之间切换。
  • 元素在扩展(如菜单、侧边栏)时,光效变得更厚重:更深的阴影、更明显的折射。

多平台统一

  • 在 iPhone、iPad、Mac 等平台上保持一致的“悬浮层”语言。
  • 侧边栏和标签栏通过 Liquid Glass 形成统一的导航体验。
  • 支持滚动边缘效果(scroll edge effects),当内容滚动时自动淡出或变暗,保证分层感和可读性。

4. 结构与分层设计

  • 分层系统:高光层、阴影层、环境光反射层等多层共同工作。
  • 环境响应:设备运动、周围内容颜色会影响光效与材质表现。
  • 自动行为:例如窗口失焦时,Liquid Glass 会“退后”以引导用户注意焦点区域。

5. 使用原则与变体

设计规范

  • Liquid Glass 应主要用于 导航层和悬浮控件,避免滥用。
  • 禁止“玻璃叠玻璃”,避免层级混乱。
  • 上层元素可使用透明或活力填充(vibrancy),而不是再次套用 Liquid Glass。

两种变体

  • Regular:具备完整自适应与光效,通用型,推荐大多数场景。
  • Clear:透明度更高,不具备自适应;适合媒体内容丰富的背景,需要额外调暗层以保证可读性。

6. 色彩与可读性

  • Liquid Glass 提供内置的 Tinting(着色)机制:根据背景自动调节色彩亮度与饱和度,保持物理真实感和对比度。
  • Tinting 应用于关键元素(如主按钮),而不是全部控件。
  • 文本与图标会随背景自动切换浅色/深色。

7. 可访问性支持

  • Reduced Transparency:更磨砂化,遮挡更多背景。
  • Increased Contrast:采用高对比黑白加描边。
  • Reduced Motion:降低动态效果,禁用弹性特性。
  • 所有无障碍功能系统级别生效时,Liquid Glass 自动适配。

8. 总结

Liquid Glass 不仅是视觉更新,而是 Apple 跨平台统一设计语言 的新基石:

  • 视觉上:轻盈、流体、光学真实。
  • 交互上:即时响应、动态反馈。
  • 设计上:层级清晰、跨平台统一、适配环境。
  • 目标:让软件体验更沉浸、更有机,更贴近用户直觉。

Liquid Glass 开发者实操总结

1. 开发者需要理解的核心定位

  • Liquid Glass ≠ 单纯视觉效果
    它是 Apple 提供的一种 系统级材质(Material) ,和 UIBlurEffectMaterial.regular 一样,但更动态和智能。
  • 跨平台统一 API:iOS 26、iPadOS 26、macOS 26、visionOS 2 都内置支持,开发者无需额外实现复杂的光学效果。

2. SwiftUI 中的用法

基础应用

在 SwiftUI 里,Liquid Glass 会作为新的 Material 类型 提供:

import SwiftUI

struct ContentView: View {
    var body: some View {
        ZStack {
            // 背景内容
            Image("background")
                .resizable()
                .scaledToFill()
                .ignoresSafeArea()

            // 使用 Liquid Glass 包裹的控件
            VStack {
                Text("Hello, Liquid Glass!")
                    .font(.title)
                    .padding()
                    .background(.liquidGlassRegular) // 新增材质类型
                    .clipShape(RoundedRectangle(cornerRadius: 16))
            }
        }
    }
}

变体选择

  • .liquidGlassRegular → 自适应型,推荐大多数情况
  • .liquidGlassClear → 更透明,适合媒体背景,但需注意文字可读性

3. UIKit 中的用法

UIKit 会在 UIBlurEffect.StyleUIMaterial API 基础上新增 Liquid Glass:

import UIKit

let glassView = UIVisualEffectView(effect: UIBlurEffect(style: .liquidGlassRegular))
glassView.frame = CGRect(x: 20, y: 50, width: 200, height: 100)

let label = UILabel(frame: glassView.bounds)
label.text = "Liquid Glass"
label.textAlignment = .center

glassView.contentView.addSubview(label)
view.addSubview(glassView)

⚠️ Apple 强调 避免“玻璃叠玻璃” (即在 Liquid Glass 上再叠一层 Liquid Glass),否则会造成视觉混乱。


4. 最佳实践(根据 Apple HIG)

  • 适用场景:导航栏、Tab 栏、侧边栏、浮动按钮、菜单等 悬浮在内容之上的层
  • 避免场景:内容层(如 TableView/List),否则会干扰层级关系。
  • 色彩使用:通过内置 tint 而不是 background(Color),这样可以保持动态的光学真实感。
  • 无障碍兼容:自动支持系统的“减少透明度”、“增加对比度”、“减少动态效果”。

5. UI/UX 设计要点

  • 自然过渡:出现/消失不再是淡入淡出,而是通过调节光折射来实现,开发者不需要自己实现过渡动画。
  • 触控反馈:点击时会触发光效“能量波”,建议在交互关键点(按钮、菜单)使用 Liquid Glass。
  • 跨平台一致性:iPhone、iPad、Mac 都有相同的材质语言,开发时保持一致体验。

6. 未来展望

Liquid Glass 将成为 Apple 新一代界面基石,类似 iOS 7 引入毛玻璃。对于开发者来说:

  • 短期:更新现有导航栏、菜单、悬浮控件时,可以直接替换为 Liquid Glass。
  • 中期:为多平台 App 构建统一 UI,减少分别适配的工作量。
  • 长期:结合 SwiftUI 与 RealityKit,Liquid Glass 可能成为 visionOS 沉浸式 UI 的核心材质