/liquid-glass-design
iOS 26 灵动玻璃(Liquid Glass)设计系统 — 适用于 SwiftUI、UIKit 和 WidgetKit 的具有模糊、反射和交互式变形效果的动态玻璃材质。
$ npx -y skills add xu-xiang/everything-claude-code-zh --skill liquid-glass-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/liquid-glass-design
Context preview
The summary Claude sees to decide when to auto-load this skill.
iOS 26 灵动玻璃(Liquid Glass)设计系统 — 适用于 SwiftUI、UIKit 和 WidgetKit 的具有模糊、反射和交互式变形效果的动态玻璃材质。
SKILL.md
liquid-glass-design.SKILL.mdname: liquid-glass-design
description: iOS 26 灵动玻璃(Liquid Glass)设计系统 — 适用于 SwiftUI、UIKit 和 WidgetKit 的具有模糊、反射和交互式变形效果的动态玻璃材质。
灵动玻璃(Liquid Glass)设计系统 (iOS 26)
实现 Apple 灵动玻璃(Liquid Glass)的设计模式 — 这是一种动态材质,可以模糊背后的内容,反射周围内容的颜色和光影,并对触摸和指针交互做出反应。涵盖了 SwiftUI、UIKit 和 WidgetKit 的集成。
何时激活
- 为 iOS 26+ 构建或更新采用新设计语言的应用
- 实现玻璃风格的按钮、卡片、工具栏或容器
- 在玻璃元素之间创建变形(Morphing)过渡
- 为小组件(Widgets)应用灵动玻璃效果
- 将现有的模糊/材质效果迁移到新的灵动玻璃 API
核心模式 — SwiftUI
基础玻璃效果
为任何视图添加灵动玻璃效果的最简单方法:
Text("Hello, World!")
.font(.title)
.padding()
.glassEffect() // 默认:常规变体,胶囊形状自定义形状和色调(Tint)
Text("Hello, World!")
.font(.title)
.padding()
.glassEffect(.regular.tint(.orange).interactive(), in: .rect(cornerRadius: 16.0))关键自定义选项:
- `.regular` — 标准玻璃效果
- `.tint(Color)` — 添加颜色提亮以突出显示
- `.interactive()` — 响应触摸和指针交互
- 形状:`.capsule`(默认)、`.rect(cornerRadius:)`、`.circle`
玻璃按钮样式
Button("Click Me") { /* 操作 */ }
.buttonStyle(.glass)
Button("Important") { /* 操作 */ }
.buttonStyle(.glassProminent)适用于多元素的 GlassEffectContainer
始终将多个玻璃视图包裹在容器中,以优化性能和实现变形效果:
GlassEffectContainer(spacing: 40.0) {
HStack(spacing: 40.0) {
Image(systemName: "scribble.variable")
.frame(width: 80.0, height: 80.0)
.font(.system(size: 36))
.glassEffect()
Image(systemName: "eraser.fill")
.frame(width: 80.0, height: 80.0)
.font(.system(size: 36))
.glassEffect()
}
}`spacing` 参数控制合并距离 — 越近的元素其玻璃形状会融合在一起。
联合玻璃效果
使用 `glassEffectUnion` 将多个视图合并为一个玻璃形状:
@Namespace private var namespace
GlassEffectContainer(spacing: 20.0) {
HStack(spacing: 20.0) {
ForEach(symbolSet.indices, id: \.self) { item in
Image(systemName: symbolSet[item])
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectUnion(id: item < 2 ? "group1" : "group2", namespace: namespace)
}
}
}变形(Morphing)过渡
在玻璃元素出现/消失时创建平滑的变形:
@State private var isExpanded = false
@Namespace private var namespace
GlassEffectContainer(spacing: 40.0) {
HStack(spacing: 40.0) {
Image(systemName: "scribble.variable")
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectID("pencil", in: namespace)
if isExpanded {
Image(systemName: "eraser.fill")
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectID("eraser", in: namespace)
}
}
}
Button("Toggle") {
withAnimation { isExpanded.toggle() }
}
.buttonStyle(.glass)在侧边栏下方延伸水平滚动
要允许水平滚动内容延伸到侧边栏或检查器(Inspector)下方,请确保 `ScrollView` 内容触及容器的领先/尾随(leading/trailing)边缘。当布局延伸到边缘时,系统会自动处理侧边栏下方的滚动行为 — 无需额外的修饰符。
核心模式 — UIKit
基础 UIGlassEffect
let glassEffect = UIGlassEffect()
glassEffect.tintColor = UIColor.systemBlue.withAlphaComponent(0.3)
glassEffect.isInteractive = true
let visualEffectView = UIVisualEffectView(effect: glassEffect)
visualEffectView.translatesAutoresizingMaskIntoConstraints = false
visualEffectView.layer.cornerRadius = 20
visualEffectView.clipsToBounds = true
view.addSubview(visualEffectView)
NSLayoutConstraint.activate([
visualEffectView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
visualEffectView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
visualEffectView.widthAnchor.constraint(equalToConstant: 200),
visualEffectView.heightAnchor.constraint(equalToConstant: 120)
])
// 向 contentView 添加内容
let label = UILabel()
label.text = "Liquid Glass"
label.translatesAutoresizingMaskIntoConstraints = false
visualEffectView.contentView.addSubview(label)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: visualEffectView.contentView.centerXAnchor),
label.centerYAnchor.constraint(equalTo: visualEffectView.contentView.centerYAnchor)
])适用于多元素的 UIGlassContainerEffect
let containerEffect = UIGlassContainerEffect()
containerEffect.spacing = 40.0
let containerView = UIVisualEffectView(effect: containerEffect)
let firstGlass = UIVisualEffectView(effect: UIGlassEffect())
let secondGlass = UIVisualEffectView(effect: UIGlassEffect())
containerView.contentView.addSubview(firstGlass)
containerView.contentView.addSubview(secondGlass)
滚动边缘效果(Scroll Edge Effects)
scrollView.topEdgeEffect.style = .automatic
scrollView.bottomEdgeEffect.style = .hard
scrollView.leftEdgeEffect.isHidden = true
工具栏玻璃集成
let favoriteButton = UIBarButtonItem(image: UIImage(systemName: "heart"), style: .plain, target: self, action: #selector(favoriteAction))
favoriteButton.hidesSharedBackground = true // 选择不使用共享玻璃背景
核心模式 — WidgetKit
渲染模式检测
struct MyWidgetView: View {
@Environment(\.widgetRenderingMode) var renderingMode
var body: some View {
if renderingMode == .accented {
// 强调色模式:白色色调、主题化的玻璃背景
} else {
// 全色模式:标准外观
}
}
}用于视觉层级的强调组(Accent Groups)
HStack {
VStack(alignment: .leading) {
Text("Title")
.widgetAccentable() // 强调组
Text("Subtitle")
// 主要组(默认)
}
Image(systemName: "star.fill")
.widgetAccentable() // 强调组
}强调色模式下的图像渲染
Image("myImage")
.widgetAccentedRenderingMode(.monochrome)容器背景
VStack { /* 内容 */ }
.containerBackground(for: .widget) {
Color.blue.opacity(0.2)
}关键设计决策
| 决策 | 理由 | |----------|-----------| | 使用 GlassEffectContainer 包裹 | 性能优化,支持玻璃元素之间的变形过渡 | | `spacing` 参数 | 控制合并距离 — 微调元素融合所需的接近程度 | | `@Namespace` + `glassEffectID` | 支持在视图层级变化时实现平滑的变形过渡 | | `interactive()` 修饰符 | 显式开启触摸/指针反应 — 并非所有玻璃都应有响应 | | UIKit 中的 UIGlassContainerEffect | 与 SwiftUI 保持一致的容器模式 | | 小组件中的强调渲染模式 | 当用户选择强调色主屏幕时,系统会应用色调玻璃 |
最佳实践
- **始终使用 GlassEffectContainer**:当对多个兄弟视图应用玻璃效果时,它可以启用变形效果并提高渲染性
Read more
name: liquid-glass-design description: iOS 26 灵动玻璃(Liquid Glass)设计系统 — 适用于 SwiftUI、UIKit 和 WidgetKit 的具有模糊、反射和交互式变形效果的动态玻璃材质。
灵动玻璃(Liquid Glass)设计系统 (iOS 26)
实现 Apple 灵动玻璃(Liquid Glass)的设计模式 — 这是一种动态材质,可以模糊背后的内容,反射周围内容的颜色和光影,并对触摸和指针交互做出反应。涵盖了 SwiftUI、UIKit 和 WidgetKit 的集成。
何时激活
- 为 iOS 26+ 构建或更新采用新设计语言的应用
- 实现玻璃风格的按钮、卡片、工具栏或容器
- 在玻璃元素之间创建变形(Morphing)过渡
- 为小组件(Widgets)应用灵动玻璃效果
- 将现有的模糊/材质效果迁移到新的灵动玻璃 API
核心模式 — SwiftUI
基础玻璃效果
为任何视图添加灵动玻璃效果的最简单方法:
Text("Hello, World!")
.font(.title)
.padding()
.glassEffect() // 默认:常规变体,胶囊形状自定义形状和色调(Tint)
Text("Hello, World!")
.font(.title)
.padding()
.glassEffect(.regular.tint(.orange).interactive(), in: .rect(cornerRadius: 16.0))关键自定义选项:
- `.regular` — 标准玻璃效果
- `.tint(Color)` — 添加颜色提亮以突出显示
- `.interactive()` — 响应触摸和指针交互
- 形状:`.capsule`(默认)、`.rect(cornerRadius:)`、`.circle`
玻璃按钮样式
Button("Click Me") { /* 操作 */ }
.buttonStyle(.glass)
Button("Important") { /* 操作 */ }
.buttonStyle(.glassProminent)适用于多元素的 GlassEffectContainer
始终将多个玻璃视图包裹在容器中,以优化性能和实现变形效果:
GlassEffectContainer(spacing: 40.0) {
HStack(spacing: 40.0) {
Image(systemName: "scribble.variable")
.frame(width: 80.0, height: 80.0)
.font(.system(size: 36))
.glassEffect()
Image(systemName: "eraser.fill")
.frame(width: 80.0, height: 80.0)
.font(.system(size: 36))
.glassEffect()
}
}`spacing` 参数控制合并距离 — 越近的元素其玻璃形状会融合在一起。
联合玻璃效果
使用 `glassEffectUnion` 将多个视图合并为一个玻璃形状:
@Namespace private var namespace
GlassEffectContainer(spacing: 20.0) {
HStack(spacing: 20.0) {
ForEach(symbolSet.indices, id: \.self) { item in
Image(systemName: symbolSet[item])
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectUnion(id: item < 2 ? "group1" : "group2", namespace: namespace)
}
}
}变形(Morphing)过渡
在玻璃元素出现/消失时创建平滑的变形:
@State private var isExpanded = false
@Namespace private var namespace
GlassEffectContainer(spacing: 40.0) {
HStack(spacing: 40.0) {
Image(systemName: "scribble.variable")
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectID("pencil", in: namespace)
if isExpanded {
Image(systemName: "eraser.fill")
.frame(width: 80.0, height: 80.0)
.glassEffect()
.glassEffectID("eraser", in: namespace)
}
}
}
Button("Toggle") {
withAnimation { isExpanded.toggle() }
}
.buttonStyle(.glass)在侧边栏下方延伸水平滚动
要允许水平滚动内容延伸到侧边栏或检查器(Inspector)下方,请确保 `ScrollView` 内容触及容器的领先/尾随(leading/trailing)边缘。当布局延伸到边缘时,系统会自动处理侧边栏下方的滚动行为 — 无需额外的修饰符。
核心模式 — UIKit
基础 UIGlassEffect
let glassEffect = UIGlassEffect()
glassEffect.tintColor = UIColor.systemBlue.withAlphaComponent(0.3)
glassEffect.isInteractive = true
let visualEffectView = UIVisualEffectView(effect: glassEffect)
visualEffectView.translatesAutoresizingMaskIntoConstraints = false
visualEffectView.layer.cornerRadius = 20
visualEffectView.clipsToBounds = true
view.addSubview(visualEffectView)
NSLayoutConstraint.activate([
visualEffectView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
visualEffectView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
visualEffectView.widthAnchor.constraint(equalToConstant: 200),
visualEffectView.heightAnchor.constraint(equalToConstant: 120)
])
// 向 contentView 添加内容
let label = UILabel()
label.text = "Liquid Glass"
label.translatesAutoresizingMaskIntoConstraints = false
visualEffectView.contentView.addSubview(label)
NSLayoutConstraint.activate([
label.centerXAnchor.constraint(equalTo: visualEffectView.contentView.centerXAnchor),
label.centerYAnchor.constraint(equalTo: visualEffectView.contentView.centerYAnchor)
])适用于多元素的 UIGlassContainerEffect
let containerEffect = UIGlassContainerEffect() containerEffect.spacing = 40.0 let containerView = UIVisualEffectView(effect: containerEffect) let firstGlass = UIVisualEffectView(effect: UIGlassEffect()) let secondGlass = UIVisualEffectView(effect: UIGlassEffect()) containerView.contentView.addSubview(firstGlass) containerView.contentView.addSubview(secondGlass)
滚动边缘效果(Scroll Edge Effects)
scrollView.topEdgeEffect.style = .automatic scrollView.bottomEdgeEffect.style = .hard scrollView.leftEdgeEffect.isHidden = true
工具栏玻璃集成
let favoriteButton = UIBarButtonItem(image: UIImage(systemName: "heart"), style: .plain, target: self, action: #selector(favoriteAction)) favoriteButton.hidesSharedBackground = true // 选择不使用共享玻璃背景
核心模式 — WidgetKit
渲染模式检测
struct MyWidgetView: View {
@Environment(\.widgetRenderingMode) var renderingMode
var body: some View {
if renderingMode == .accented {
// 强调色模式:白色色调、主题化的玻璃背景
} else {
// 全色模式:标准外观
}
}
}用于视觉层级的强调组(Accent Groups)
HStack {
VStack(alignment: .leading) {
Text("Title")
.widgetAccentable() // 强调组
Text("Subtitle")
// 主要组(默认)
}
Image(systemName: "star.fill")
.widgetAccentable() // 强调组
}强调色模式下的图像渲染
Image("myImage")
.widgetAccentedRenderingMode(.monochrome)容器背景
VStack { /* 内容 */ }
.containerBackground(for: .widget) {
Color.blue.opacity(0.2)
}关键设计决策
| 决策 | 理由 | |----------|-----------| | 使用 GlassEffectContainer 包裹 | 性能优化,支持玻璃元素之间的变形过渡 | | `spacing` 参数 | 控制合并距离 — 微调元素融合所需的接近程度 | | `@Namespace` + `glassEffectID` | 支持在视图层级变化时实现平滑的变形过渡 | | `interactive()` 修饰符 | 显式开启触摸/指针反应 — 并非所有玻璃都应有响应 | | UIKit 中的 UIGlassContainerEffect | 与 SwiftUI 保持一致的容器模式 | | 小组件中的强调渲染模式 | 当用户选择强调色主屏幕时,系统会应用色调玻璃 |
最佳实践
- **始终使用 GlassEffectContainer**:当对多个兄弟视图应用玻璃效果时,它可以启用变形效果并提高渲染性
🌐 Language / 语言 / 語言 为 AI 智能体(Agent)框架打造的性能优化系统。源自 Anthropic 黑客松获胜作品。 这不仅仅是配置文件。它是一个完整的系统:包含技能(Skills)、本能(Instincts)、内存优化、持续学习、安全扫描以及研究优先的开发模式。这些生产级的智能体(Agents)、钩子(Hooks)、命令(Commands)、规则(Rules)以及 MCP 配置,是在构建真实产品的 10 个多月高强度日常使用中演化而来的。 适用于 Claude Code, Codex,
Repo: xu-xiang/everything-claude-code-zh
Other skills on everything-claude-code.
- /oneskill
发现技能(Skill),迭代查询,并在任何环境中自动安装技能。
Open skill - /api-design
生产级 API 的 REST API 设计模式,包括资源命名、状态码、分页、过滤、错误响应、版本控制和速率限制。
Open skill - /article-writing
编写文章、指南、博客帖子、教程、新闻通讯(newsletter)以及其他长篇内容。这些内容具有从提供的示例或品牌指南中提取出的独特语气。当用户需要比段落更长的精美文案,且对语气一致性、结构和可信度有要求时,请使用此技能(Skill)。
Open skill - /autonomous-loops
自主运行 Claude Code 循环的模式与架构 —— 从简单的顺序流水线到 RFC 驱动的多智能体 DAG 系统。
Open skill - /backend-patterns
后端架构模式、API 设计、数据库优化以及针对 Node.js、Express 和 Next.js API 路由的服务端最佳实践。
Open skill - /clickhouse-io
ClickHouse 数据库模式、查询优化、分析以及高性能分析负载的数据工程最佳实践。
Open skill

