SwiftUI Liquid Glass : Le Guide Complet iOS 26
Publié le · 17 min
Liquid Glass représente la plus grande évolution du design Apple depuis iOS 7. Introduit à la WWDC 2025, ce nouveau langage visuel unifie iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, tvOS 26 et visionOS 26. Découvrons comment l'implémenter dans vos applications SwiftUI et UIKit.
Comprendre Liquid Glass
Un méta-matériau digital
Liquid Glass n'est pas un simple effet visuel. C'est un méta-matériau digital qui simule les propriétés optiques du verre : translucidité, réfraction, profondeur et réponse au mouvement. Contrairement aux effets de flou traditionnels qui dispersent la lumière, Liquid Glass utilise le lensing — il courbe et concentre la lumière en temps réel.
Les caractéristiques fondamentales :
- Lensing : Courbure et concentration de la lumière en temps réel
- Specular highlights : Reflets répondant au mouvement de l'appareil
- Adaptive shadows : Ombres qui s'ajustent au contenu sous-jacent
- Interactive behaviors : Réponses visuelles aux interactions utilisateur
- Materialization : Apparition progressive par modulation de la courbure lumineuse
La philosophie de design
Apple définit clairement la hiérarchie :
“Liquid Glass is best reserved for the navigation layer that floats above the content of your app."”
Le contenu reste au niveau de base, les contrôles glass flottent au-dessus. Cette séparation crée profondeur et hiérarchie visuelle.
Adoption automatique
Bonne nouvelle : en recompilant simplement avec Xcode 26, de nombreux éléments système adoptent automatiquement Liquid Glass.
iOS 26 — Éléments automatiques
- NavigationBar, TabBar, Toolbar
- Sheets, Popovers, Menus, Alerts
- Search bars, Control Center
- Toggles, Sliders, Pickers (pendant l'interaction)
macOS Tahoe — Éléments automatiques
- Toolbar, Sidebar, Menu bar, Dock
- Window controls, NSPopover, Sheets
L'API glassEffect
Signature de la fonction
Les types de Glass
Exemple basique
Tint et Interactive
Les modificateurs tint et interactive enrichissent l'effet :
Important : La teinte doit véhiculer une signification sémantique (action primaire, état), pas une simple décoration. Utilisez-la sélectivement pour les call-to-action.
GlassEffectContainer
Pourquoi un container ?
Le glass ne peut pas sampler un autre glass. GlassEffectContainer fournit une région de sampling partagée et permet aux éléments de fusionner visuellement quand ils se rapprochent.
Le paramètre spacing
Le spacing contrôle le seuil de morphing — les éléments à cette distance ou moins fusionnent visuellement :
Transitions fluides avec glassEffectID
Pour créer des animations de morphing entre états, utilisez glassEffectID avec un namespace :
Les boutons émergent du bouton principal et s'y réabsorbent grâce au morphing fluide !
Button Styles dédiés
iOS 26 introduit deux styles de boutons glass :
UIKit : UIGlassEffect
Pour les projets UIKit ou hybrides :
UIGlassContainerEffect pour le groupement
Best Practices
À FAIRE
À NE PAS FAIRE
Accessibilité
Respect automatique des préférences système
Le système gère automatiquement l'accessibilité, mais vous pouvez réagir si nécessaire :
Paramètres utilisateur iOS 26
Les utilisateurs peuvent ajuster Liquid Glass :
- Réglages → Accessibilité → Affichage → Réduire la transparence : Fonds solides
- Réglages → Accessibilité → Mouvement → Réduire les animations : Désactive le lensing
- Réglages → Luminosité → Liquid Glass : Choisir Clear ou Tinted (iOS 26.1+)
Conseil : Laissez le système gérer l'accessibilité automatiquement. N'intervenez que si absolument nécessaire.
Rétrocompatibilité iOS 18 et antérieurs
Pour supporter les versions précédentes, créez un modificateur conditionnel :
Exemple complet : Lecteur de citations
Voici une application complète démontrant Liquid Glass :
Problèmes connus (iOS 26.0-26.1)
Interactive shape mismatch
Le modifier .glassEffect(.regular.interactive(), in: RoundedRectangle()) répond parfois avec une forme Capsule.
Workaround : Utilisez .buttonStyle(.glass) pour les boutons.
glassProminent avec cercle
Des artefacts de rendu peuvent apparaître avec .glassProminent et .circle.
Workaround :
Menu dans GlassEffectContainer
Sur iOS 26.1, placer un Menu dans un GlassEffectContainer peut casser l'animation de morphing.
Workaround : Évitez cette combinaison ou utilisez .glassEffect(.regular.interactive()) directement sur le Menu.
Ressources officielles
Pour aller plus loin
Liquid Glass représente bien plus qu'un changement esthétique — c'est une nouvelle façon de penser les interfaces. En respectant la hiérarchie contenu/navigation, en utilisant les containers appropriés et en testant l'accessibilité, vous créerez des applications qui s'intègrent naturellement dans l'écosystème iOS 26.
Les principes clés à retenir :
- Navigation layer uniquement — jamais sur le contenu
- Ne jamais empiler glass sur glass
- Grouper avec
GlassEffectContainer
- Grouper avec
- Teinter sélectivement — actions primaires uniquement
- Faire confiance au système — l'accessibilité est automatique
Dans un prochain article, nous explorerons Icon Composer, le nouvel outil Xcode pour créer des icônes Liquid Glass multicouches qui s'adaptent aux modes Light, Dark, Tinted et Clear.