界面Swift
LiquidGlassKit
面向 SwiftUI 的 Liquid Glass 表面和控件:在 OS 26 上使用原生 glass,向下兼容到 iOS 17 时回退到 Material。
17星标数最新版本: v2.1.0更新时间: 2026年10月15日
支持平台:iOS 17macOS 14tvOS 17watchOS 10visionOS 1
许可证: MIT
一个面向既想使用 Liquid Glass、又要支持不具备该特性的系统的应用的 SwiftUI package。在 iOS、macOS、tvOS 和 watchOS 26 上,它用 SwiftUI 原生的 glassEffect 绘制;在更早版本和 visionOS 上,则绘制带有着色、边缘高光和阴影的 Material 模糊效果。所有组件都建立在同一个 modifier——glassSurface 之上,因此主题、渲染路径和 Reduce Transparency 都在同一处统一处理。没有第三方依赖。
功能特性
- 一个 modifier,两条路径:glassSurface 在运行时自动选择原生 glass 或 Material 回退方案,glassRenderingMode(.fallback) 则强制在所有地方使用同一种外观
- 现成的控件:按钮、一种 switch 样式、滑块、卡片、文本输入框、搜索栏、带操作按钮和徽标的浮动 tab bar、navigation bar 和底部 sheet
- 渐变着色玻璃,以及两条渲染路径上都支持的 shimmer、pulse、breathe 动画高光
- 面向整个 view 层级的 GlassTheme,GlassPreset 中的 14 种预设主题,以及把调好的主题重新转换为 Swift 代码的 GlassCodeExporter
- 无障碍支持:回退路径在 Reduce Transparency 下绘制不透明背景,在 Increase Contrast 下使用更强的边缘;Reduce Motion 下不显示高光;switch 和滑块使用 SwiftUI 自身的 VoiceOver 行为
- 不会与 SwiftUI 的 glassEffect、GlassEffectContainer 或 GlassButtonStyle 命名冲突,因此两个模块可以在同一个文件中一起 import
- 带有离屏像素检测的 Swift Testing suite,在 CI 中于 macOS、iOS 26 模拟器和 iOS 18.6 模拟器上运行
快速开始
swift
1import LiquidGlassKit2import SwiftUI3 4struct ContentView: View {5 var body: some View {6 ZStack {7 LinearGradient(colors: [.indigo, .pink], startPoint: .top, endPoint: .bottom)8 .ignoresSafeArea()9 VStack(spacing: 16) {10 GlassCard {11 Label("Hello, glass", systemImage: "sparkles")12 }13 GlassButton("Tap me", systemImage: "hand.tap") {}14 }15 }16 }17}安装
Swift Package Manager (Xcode)
text
1https://github.com/muhittincamdali/LiquidGlassKit.gitSwift Package Manager (Package.swift)
swift
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/LiquidGlassKit.git", from: "2.1.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "LiquidGlassKit", package: "LiquidGlassKit")7 ])8]截图







时间线
仓库开放;v1.0.0 标签指向无法构建的第一个 commit
简化:大部分源码被移除并替换为占位代码;测试无法编译,CI 用 continue-on-error 把这个问题隐藏了起来
为 Swift 6 重建为 2.0.0(PR #5):带原生和 Material 两条路径的 glassSurface、Swift Testing、DocC 和一个 demo 应用
2.1.0(PR #7):控件、效果、预设和代码导出器由已归档的 LiquidGlass-Playground 和 GlassmorphismUI 重写而来