LiquidGlassKit
Surfaces et contrôles Liquid Glass pour SwiftUI : verre natif sur OS 26, repli Material jusqu'à iOS 17.
Licence: MIT
Un package SwiftUI pour les apps qui veulent Liquid Glass tout en prenant en charge les systèmes qui ne l'ont pas. Sur iOS, macOS, tvOS et watchOS 26, il dessine avec le glassEffect natif de SwiftUI ; sur les versions antérieures et sur visionOS, il dessine un flou Material avec une teinte, un reflet de bord et une ombre. Chaque composant est construit sur un seul modifier, glassSurface, afin que le thème, le chemin de rendu et Réduire la transparence soient gérés en un seul endroit. Aucune dépendance tierce.
Fonctionnalités
- Un modifier, deux chemins : glassSurface choisit le verre natif ou le repli Material à l'exécution, et glassRenderingMode(.fallback) impose un seul aspect partout
- Contrôles prêts à l'emploi : boutons, un style de switch, un slider, des cartes, des champs de texte, une barre de recherche, une barre d'onglets flottante avec un bouton d'action et des badges, une barre de navigation et une feuille inférieure
- Verre teinté en dégradé et reflets animés shimmer, pulse et breathe sur les deux chemins de rendu
- GlassTheme pour toute une hiérarchie de vues, 14 préréglages dans GlassPreset, et GlassCodeExporter pour retransformer un thème ajusté en Swift
- Accessibilité : le repli dessine un fond opaque avec Réduire la transparence et un bord plus marqué avec Augmenter le contraste, aucun reflet avec Réduire les animations, et le comportement VoiceOver propre à SwiftUI pour le switch et le slider
- Aucun conflit de noms avec glassEffect, GlassEffectContainer ou GlassButtonStyle de SwiftUI, donc les deux modules peuvent être importés dans un même fichier
- Suites Swift Testing avec des vérifications de pixels hors écran, exécutées en CI sur macOS, un simulateur iOS 26 et un simulateur iOS 18.6
Démarrage rapide
1import LiquidGlassKit2import SwiftUI3 4struct ContentView: View {5 var body: some View {6 ZStack {7 LinearGradient(colors: [.indigo, .pink], startPoint: .top, endPoint: .bottom)8 .ignoresSafeArea()9 VStack(spacing: 16) {10 GlassCard {11 Label("Hello, glass", systemImage: "sparkles")12 }13 GlassButton("Tap me", systemImage: "hand.tap") {}14 }15 }16 }17}Installation
Swift Package Manager (Xcode)
1https://github.com/muhittincamdali/LiquidGlassKit.gitSwift Package Manager (Package.swift)
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/LiquidGlassKit.git", from: "2.1.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "LiquidGlassKit", package: "LiquidGlassKit")7 ])8]Captures d'écran







Chronologie
Dépôt ouvert ; l'étiquette v1.0.0 pointe vers le premier commit, qui ne compile pas
Simplification : la majeure partie des sources a été supprimée et remplacée par des espaces réservés ; les tests ne compilaient pas et la CI le masquait avec continue-on-error
Reconstruit pour Swift 6 en version 2.0.0 (PR #5) : glassSurface avec un chemin natif et un chemin Material, Swift Testing, DocC et une app de démonstration
2.1.0 (PR #7) : contrôles, effets, préréglages et un exportateur de code réécrits à partir de LiquidGlass-Playground et GlassmorphismUI, qui ont été archivés