SwiftUI Liquid Glass: The Complete iOS 26 Guide
Published on Β· 17 min
Liquid Glass represents the biggest evolution in Apple design since iOS 7. Introduced at WWDC 2025, this new visual language unifies iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, tvOS 26, and visionOS 26. Let's discover how to implement it in your SwiftUI and UIKit applications.
Understanding Liquid Glass
A digital meta-material
Liquid Glass is not just a visual effect. It's a digital meta-material that simulates the optical properties of glass: translucency, refraction, depth, and response to movement. Unlike traditional blur effects that scatter light, Liquid Glass uses lensing β it bends and focuses light in real time.
The fundamental characteristics:
- Lensing: Real-time light bending and focusing
- Specular highlights: Reflections responding to device movement
- Adaptive shadows: Shadows that adjust to underlying content
- Interactive behaviors: Visual responses to user interactions
- Materialization: Progressive appearance through light curvature modulation
The design philosophy
Apple clearly defines the hierarchy:
βLiquid Glass is best reserved for the navigation layer that floats above the content of your app."β
Content stays at the base level, glass controls float above. This separation creates depth and visual hierarchy.
Automatic adoption
Good news: by simply recompiling with Xcode 26, many system elements automatically adopt Liquid Glass.
iOS 26 β Automatic elements
- NavigationBar, TabBar, Toolbar
- Sheets, Popovers, Menus, Alerts
- Search bars, Control Center
- Toggles, Sliders, Pickers (during interaction)
macOS Tahoe β Automatic elements
- Toolbar, Sidebar, Menu bar, Dock
- Window controls, NSPopover, Sheets
The glassEffect API
Function signature
Glass types
Basic example
Tint and Interactive
The tint and interactive modifiers enrich the effect:
Important: Tint should convey semantic meaning (primary action, state), not mere decoration. Use it selectively for call-to-actions.
GlassEffectContainer
Why a container?
Glass cannot sample another glass. GlassEffectContainer provides a shared sampling region and allows elements to merge visually when they get close.
The spacing parameter
The spacing controls the morphing threshold β elements at this distance or less merge visually:
Fluid transitions with glassEffectID
To create morphing animations between states, use glassEffectID with a namespace:
Buttons emerge from the main button and get reabsorbed into it thanks to fluid morphing!
Dedicated Button Styles
iOS 26 introduces two glass button styles:
UIKit: UIGlassEffect
For UIKit or hybrid projects:
UIGlassContainerEffect for grouping
Best Practices
DO
DON'T
Accessibility
Automatic respect for system preferences
The system automatically handles accessibility, but you can react if necessary:
iOS 26 user settings
Users can adjust Liquid Glass:
- Settings β Accessibility β Display β Reduce Transparency: Solid backgrounds
- Settings β Accessibility β Motion β Reduce Motion: Disables lensing
- Settings β Brightness β Liquid Glass: Choose Clear or Tinted (iOS 26.1+)
Tip: Let the system handle accessibility automatically. Only intervene if absolutely necessary.
Backward compatibility iOS 18 and earlier
To support previous versions, create a conditional modifier:
Complete example: Quote Reader
Here's a complete application demonstrating Liquid Glass:
Known issues (iOS 26.0-26.1)
Interactive shape mismatch
The modifier .glassEffect(.regular.interactive(), in: RoundedRectangle()) sometimes responds with a Capsule shape.
Workaround: Use .buttonStyle(.glass) for buttons.
glassProminent with circle
Rendering artifacts may appear with .glassProminent and .circle.
Workaround:
Menu in GlassEffectContainer
On iOS 26.1, placing a Menu in a GlassEffectContainer can break the morphing animation.
Workaround: Avoid this combination or use .glassEffect(.regular.interactive()) directly on the Menu.
Official resources
Going further
Liquid Glass represents much more than an aesthetic change β it's a new way of thinking about interfaces. By respecting the content/navigation hierarchy, using appropriate containers, and testing accessibility, you'll create applications that naturally integrate into the iOS 26 ecosystem.
Key principles to remember:
- Navigation layer only β never on content
- Never stack glass on glass
- Group with
GlassEffectContainer
- Group with
- Tint selectively β primary actions only
- Trust the system β accessibility is automatic
In an upcoming article, we'll explore Icon Composer, the new Xcode tool for creating multi-layer Liquid Glass icons that adapt to Light, Dark, Tinted, and Clear modes.