名称: swiftui-liquid-glass
描述: 使用 iOS 26+ Liquid Glass API 实现、审查或改进 SwiftUI 功能。适用于以下场景:被要求在新 SwiftUI 界面中采用 Liquid Glass、将现有功能重构为使用 Liquid Glass,或审查 Liquid Glass 的使用以确保其正确性、性能及设计一致性。
来源:复制自 @Dimillian 的 Dimillian/Skills (2025-12-31)。
本技能用于构建或审查完全遵循 iOS 26+ Liquid Glass API 的 SwiftUI 功能。优先使用原生 API(glassEffect、GlassEffectContainer、玻璃按钮样式)并遵循 Apple 设计指南。确保使用方式一致、在需要时具备交互性,并关注性能。
根据请求选择对应路径:
GlassEffectContainer。GlassEffectContainer。.glassEffect(...)。.interactive()。#available(iOS 26, *) 进行条件判断,并提供非玻璃效果的回退方案。#available(iOS 26, *) 及回退 UI。GlassEffectContainer 中。glassEffect 在布局/外观修饰符之后应用。interactive()。glassEffectID 配合 @Namespace 实现形变。GlassEffectContainer 中,并调整间距。.glassEffect(.regular.tint(...).interactive(), in: .rect(cornerRadius: ...))。.buttonStyle(.glass) / .buttonStyle(.glassProminent)。glassEffectID 添加形变过渡。直接使用这些模式,并根据需要调整形状、色调和间距。
if #available(iOS 26, *) {
Text("你好")
.padding()
.glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16))
} else {
Text("你好")
.padding()
.background(.ultraThinMaterial, in: RoundedRectangle(cornerRadius: 16))
}
GlassEffectContainer(spacing: 24) {
HStack(spacing: 24) {
Image(systemName: "scribble.variable")
.frame(width: 72, height: 72)
.font(.system(size: 32))
.glassEffect()
Image(systemName: "eraser.fill")
.frame(width: 72, height: 72)
.font(.system(size: 32))
.glassEffect()
}
}
Button("确认") { }
.buttonStyle(.glassProminent)
references/liquid-glass.md