Tous les paquets open source
InterfaceSwift

LiquidGlassKit

Surfaces et contrôles Liquid Glass pour SwiftUI : verre natif sur OS 26, repli Material jusqu'à iOS 17.

17ÉtoilesDernière version: v2.1.0Mis à jour: 15 octobre 2026
Plateformes:iOS 17macOS 14tvOS 17watchOS 10visionOS 1

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

swift
1import LiquidGlassKit
2import SwiftUI
3 
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)

text
1https://github.com/muhittincamdali/LiquidGlassKit.git

Swift Package Manager (Package.swift)

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

Galerie de composants de l'app de démonstration en mode clair
Galerie de composants de l'app de démonstration en mode sombre
Les mêmes composants sur le chemin de verre natif et sur le repli Material, mode clair
Les mêmes composants sur le chemin de verre natif et sur le repli Material, mode sombre
Feuille inférieure en verre flottante, mode clair
Barres d'onglets en verre flottantes avec un bouton d'action et des badges, mode sombre
Écran Playground qui ajuste un préréglage avec des sliders et affiche le code Swift exporté

Chronologie

  1. Dépôt ouvert ; l'étiquette v1.0.0 pointe vers le premier commit, qui ne compile pas

  2. 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

  3. 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

  4. 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

Liens

Dépôts fusionnés

Article associé

Lire l'article