last update
Jun 24, 2026
license
MITv1.0.0
format
SKILL.md
- Install
// Downloads SKILL.md into ~/.claude/skills/swiftui-liquid-glass-design/
$ curl -fsSL --create-dirs -o ~/.claude/skills/swiftui-liquid-glass-design/SKILL.md https://claudeskil.com/skills/swiftui-liquid-glass-design/SKILL.md - Invoke
// Inside Claude Code, type the skill name as a slash command
> /swiftui-liquid-glass-design help me ship this - Or copy this from the README
// extracted swift block
$ @Namespace private var glassNS GlassEffectContainer(spacing: 16) { HStack(spacing: 16) { Image(systemName: "wand.and.stars") .frame(width: 56, height: 56)
- name:
- SwiftUI Liquid Glass
- slug:
- swiftui-liquid-glass-design
- version:
- v1.0.0
- license:
- MIT
- author:
- @chiragthummar16
- categories:
- tags:
- #swiftui#ios-26#liquid-glass#ui-design#glasseffect
- description:
Adopt iOS 26 Liquid Glass in SwiftUI — glassEffect, GlassEffectContainer, tinting, and fixing broken custom UIs.
// What you can do with it
- .glassEffect(:in:) with Glass.regular and Glass.clear, plus .tint(:) and .interactive() modifiers on the Glass value for colored, touch-reactive surfaces.
- GlassEffectContainer { … } to batch nearby glass shapes so they sample one another and render efficiently, with .glassEffectID(_:in:) and a @Namespace to drive morph transitions between states.
- .glassEffectUnion(id:namespace:) to fuse multiple shapes into a single contiguous glass blob.
- Control-level adoption: .buttonStyle(.glass) and .glassProminent, plus guidance on letting toolbar, TabView, and navigation bars adopt glass automatically rather than overriding them.
- Edge treatment with the scroll edge effect and .backgroundExtensionEffect() so content flows correctly under the new chrome.
README.md
SwiftUI Liquid Glass
Adopt iOS 26's Liquid Glass material in SwiftUI the right way — applying .glassEffect, grouping shapes in a GlassEffectContainer for morph transitions, tinting and interactivity, and repairing custom UIs that broke when the system controls re-rendered under the new design language. Built for iOS developers shipping apps on the iOS 26 / Xcode 26 SDK who want their hand-built surfaces to feel native rather than fighting the new toolbar and navigation chrome.
When to use it
- You bumped your deployment target to iOS 26 and your custom bottom bar, floating buttons, or HUD now look mismatched against the new glass toolbars.
- You want a custom panel, badge, or control cluster to read as Liquid Glass instead of an opaque
.regularMaterialcard. - Several glass elements sit near each other and you want them to blend, separate, and morph as they move or appear.
- Buttons, search fields, or tab bars lost their expected look after recompiling on the new SDK.
What it does
The skill applies the real iOS 26 APIs in the right combinations:
.glassEffect(_:in:)withGlass.regularandGlass.clear, plus.tint(_:)and.interactive()modifiers on theGlassvalue for colored, touch-reactive surfaces.GlassEffectContainer { … }to batch nearby glass shapes so they sample one another and render efficiently, with.glassEffectID(_:in:)and a@Namespaceto drive morph transitions between states..glassEffectUnion(id:namespace:)to fuse multiple shapes into a single contiguous glass blob.- Control-level adoption:
.buttonStyle(.glass)and.glassProminent, plus guidance on lettingtoolbar,TabView, and navigation bars adopt glass automatically rather than overriding them. - Edge treatment with the scroll edge effect and
.backgroundExtensionEffect()so content flows correctly under the new chrome.
Usage
curl -fsSL --create-dirs -o ~/.claude/skills/swiftui-liquid-glass-design/SKILL.md https://claudeskil.com/skills/swiftui-liquid-glass-design/SKILL.md
@Namespace private var glassNS
GlassEffectContainer(spacing: 16) {
HStack(spacing: 16) {
Image(systemName: "wand.and.stars")
.frame(width: 56, height: 56)
.glassEffect(.regular.tint(.purple).interactive(),
in: .circle)
.glassEffectID("wand", in: glassNS)
Image(systemName: "slider.horizontal.3")
.frame(width: 56, height: 56)
.glassEffect(.regular, in: .circle)
.glassEffectID("tune", in: glassNS)
}
}
Tips & gotchas
- Always wrap multiple glass shapes in a
GlassEffectContainer. Standalone.glassEffectcalls won't sample neighbors, so they can't blend or morph and cost more to render. Glass.clearis for use over rich, high-contrast imagery; on plain backgrounds it reads as nearly invisible — reach for.regularby default.- Use tint sparingly. Liquid Glass derives most of its color from what's behind it; heavy tints flatten the effect.
- Don't reimplement toolbars or tab bars to "match" — remove your custom chrome and let the system adopt glass, then style only what remains.
FAQ
Does this work below iOS 26? No. glassEffect and GlassEffectContainer are iOS 26 APIs. Gate adoption with if #available(iOS 26, *) and keep a material-based fallback for older OS versions.
Why did my buttons change after rebuilding? Recompiling against the iOS 26 SDK opts standard controls into Liquid Glass automatically. The skill helps you decide where to accept that and where to pin an explicit style.
Can I morph between two layouts? Yes — give matched shapes the same glassEffectID in a shared namespace and animate the state change; the container interpolates the glass between them.
authored by
@chiragthummar16Android Jetpack Pro
Ship Jetpack Compose screens, ViewModels, and Gradle config with idiomatic best practices baked in.
0iOS SwiftUI Architect
Design SwiftUI apps with clean architecture: MV pattern, @Observable, and Swift Concurrency.
0PPT Deck Designer
Turn a rough outline into a visually polished pitch deck with on-brand layouts and speaker notes.
0Video Cut Assistant
Produce edit decision lists, trim plans, and subtitle cues from raw footage transcripts.
0
$ cat reviews/