Install any skill in seconds. Free to start, no credit card required.
Get Started Free →iOS 26 Liquid Glass design language + the SwiftUI APIs that implement it, sourced from Apple's WWDC25 sessions 219/323 and developer.apple.com. Covers the functional-layer-over-content mental model, regular vs clear variants, glass-on-glass/over-tint don'ts, the floating tab bar, scroll edge effects, concentric corners, accessibility behavior, and a verified-vs-community API table. Use when building or reviewing any iOS 26 native screen's chrome, materials, or glass effects.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 90% | 0% |
Liquid Glass is the unified material introduced across iOS/iPadOS/macOS Tahoe/watchOS/tvOS 26 (WWDC June 2025). Sources below are anchored to Apple primary material — WWDC25 session 219 "Meet Liquid Glass" and session 323 "Build a SwiftUI app with the new design" — and confirmed developer.apple.com/documentation symbol pages. API symbols are marked ✅ (shown in an Apple source) or ⚠️ (community-reported only — verify in the Xcode 26 SDK before relying on it). Do not treat ⚠️ items as canonical.
Glass is the functional/navigation layer that floats above the content layer. Content scrolls underneath it.
.presentationBackground.| | Regular — use ~always | Clear — specialized | |---|---|---| | Adaptive behaviors | Full | None (permanently more transparent) | | Legibility | Guaranteed in any context | Needs a dimming layer beneath it | | Where | Any size, over any content | Media-rich content only |
Clear requires all three to be true (219): the element is over media-rich content, the content layer tolerates a dimming layer, and the content on top is bold/bright. SwiftUI: Glass.regular ✅; Glass.clear ⚠️ (community).
When you use the standard material, glass responds to system settings automatically (219):
For Greg specifically: keep safety-critical text in the solid content layer (allergy hard-stops, macro/calorie numbers) — never floating on clear glass. Test every glass screen with all three settings ON. Branch in code via the existing \.accessibilityReduceTransparency / \.accessibilityReduceMotion environment keys.
.tabBarMinimizeBehavior(.onScrollDown) — re-expands on scroll up, keeps content the focus..tabViewBottomAccessory { … }, lay out via @Environment(\.tabViewBottomAccessoryPlacement).Tab(role: .search) { … }.tabBarMinimizeBehavior (.automatic/.never) and placement (.inline/.expanded) are community-reported; only .onScrollDown + placement == .inline are confirmed.Standard controls auto-adopt glass when built with Xcode 26 — reach for .glassEffect() only to highlight what's unique to your app. (323)
swift// Apply glass to a CUSTOM view .glassEffect() // ✅ defaults to Glass.regular, capsule-ish .glassEffect(in: .rect(cornerRadius: 16)) // ✅ custom shape .glassEffect(.regular.tint(.green)) // ✅ tint ONLY to convey meaning .glassEffect(.regular.interactive()) // ✅ scale/bounce/shimmer on touch // Group + morph (share sampling region, batch render) @Namespace var ns GlassEffectContainer { // ✅ symbol page confirmed BadgeLabel().glassEffect().glassEffectID(badge.id, in: ns) // ✅ glassEffectID(_:in:) BadgeToggle().buttonStyle(.glass).glassEffectID("toggle", in: ns) } // Button styles Button("Learn More") {}.buttonStyle(.glass) // ✅ secondary Button("Get Started") {}.buttonStyle(.glassProminent) // ✅ prominent // Toolbars .toolbar { ToolbarItem { ShareLink() } ToolbarSpacer(.fixed) // ✅ group separation ToolbarItem { FavoriteButton() } DefaultToolbarItem(kind: .search, placement: .bottomBar) // ✅ ToolbarItem { ProfileButton() }.sharedBackgroundVisibility(.hidden) // ✅ detach from shared glass } // Search .searchable(text: $q) .searchToolbarBehavior(.minimize) // ✅ NOTE: .minimize, NOT .minimized (community ref is wrong) // Scroll edge effect — content-under-chrome legibility .scrollEdgeEffectStyle(.hard, for: .top) // ✅ tune sharpness for dense UIs .scrollEdgeEffectHidden(true, for: .top) // ✅ hide it // ⚠️ full ScrollEdgeEffectStyle case list beyond .hard not confirmed // Background extension — artwork fills under chrome / into safe area Image("hero").resizable().scaledToFill().backgroundExtensionEffect() // ✅
Concentric corners (Harmony principle — nested shapes share a curve center so corners align across devices):
swift.background(.tint, in: .rect(corner: .containerConcentric)) // ✅ form shown in 323 // ⚠️ community forms — verify spelling in SDK before use: // ConcentricRectangle(corners: .concentric, isUniform: true) // .containerShape(.rect(cornerRadius: 24))
⚠️ Unresolved naming: Apple's transcript shows corner: .containerConcentric (singular); community shows corners: .concentric. Likely beta API churn — confirm in your Xcode 26 SDK.
Community-only (⚠️ verify before use): Glass.clear/.identity, glassEffectUnion, glassEffectTransition/GlassEffectTransition, GlassEffectContainer(spacing:), matchedTransitionSource/.navigationTransition(.zoom(...)), UIDesignRequiresCompatibility opt-out, and all battery/performance figures.
| Use glass | Use solid / content fills | |---|---| | Tab bars, toolbars, nav bars (floating chrome) | Lists, cards, media, data rows | | Standalone floating action buttons | Anything carrying brand color or meaning-tint | | Sheets (system applies inset glass automatically) | Safety-critical / dense legibility text | | One element over media (Clear, 3 conditions) | The second layer when something sits on glass |
.tint(tangerine) + your own content surfaces. Never force the tab bar opaque (that's the "white bar" bug — reserves a dead inset, kills content-scrolls-under).GregCard and data rows solid (standard materials/fills), not glass — they're content..tabViewBottomAccessory, use it for a persistent "log food" affordance, not decoration.Pairs with: ios-color-and-materials (material levels + semantic color), ios-components (bar behavior), ios26-hig-patterns (field manual).
Other measured skills in the registry, with their headline benchmark lift.