Implement and review iOS 26+ SwiftUI Liquid Glass UI. Use when adopting Liquid Glass or checking its correctness, performance, and design fit.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill to build or review SwiftUI features that fully align with the iOS 26+ Liquid Glass API. Prioritize native APIs (glassEffect, GlassEffectContainer, glass button styles) and Apple design guidance. Keep usage consistent, interactive where needed, and performance aware.
Choose the path that matches the request:
GlassEffectContainer where multiple glass elements appear.GlassEffectContainer when multiple glass elements coexist..glassEffect(...) after layout and visual modifiers..interactive() for elements that respond to touch/pointer.#available(iOS 26, *) and provide a non-glass fallback.#available(iOS 26, *) present with fallback UI.GlassEffectContainer.glassEffect applied after layout/appearance modifiers.interactive() only where user interaction exists.glassEffectID used with @Namespace for morphing.GlassEffectContainer and tune spacing..glassEffect(.regular.tint(...).interactive(), in: .rect(cornerRadius: ...)) as needed..buttonStyle(.glass) / .buttonStyle(.glassProminent) for actions.glassEffectID when hierarchy changes.Use these patterns directly and tailor shapes/tints/spacing.
if #available(iOS 26, *) {
Text("Hello")
.padding()
.glassEffect(.regular.interactive(), in: .rect(cornerRadius: 16))
} else {
Text("Hello")
.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("Confirm") { }
.buttonStyle(.glassProminent)references/liquid-glass.md11c74d6
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.