جميع حزم المصدر المفتوح
واجهة المستخدمSwift

LiquidGlassKit

أسطح وعناصر تحكم Liquid Glass لـ SwiftUI: زجاج أصلي في OS 26، وبديل Material حتى iOS 17.

17النجومآخر إصدار: v2.1.0آخر تحديث: 15 أكتوبر 2026
الأنظمة الأساسية:iOS 17macOS 14tvOS 17watchOS 10visionOS 1

الترخيص: MIT

حزمة SwiftUI للتطبيقات التي تريد استخدام Liquid Glass مع الاستمرار في دعم الأنظمة التي لا تملكه. في iOS وmacOS وtvOS وwatchOS 26 تُرسَم باستخدام glassEffect الأصلي في SwiftUI؛ وفي الإصدارات الأقدم وفي visionOS تُرسَم بتمويه (blur) من نوع Material مع صبغة (tint) وإبراز للحواف (edge highlight) وظل. يُبنى كل مكوّن على معدِّل واحد، glassSurface، بحيث تُعالَج السمة (theme) ومسار العرض (rendering path) وReduce Transparency في مكان واحد. لا اعتماديات من جهات خارجية.

الميزات

  • معدِّل واحد، مساران: يختار glassSurface الزجاج الأصلي أو بديل Material في وقت التشغيل (run time)، ويفرض glassRenderingMode(.fallback) مظهرًا واحدًا في كل مكان
  • عناصر تحكم جاهزة: أزرار، ونمط switch، وslider، وبطاقات، وحقول نصية، وشريط بحث، وشريط tabs عائم بزر إجراء (action button) وبادجات (badges)، وشريط تنقّل (navigation bar)، وbottom sheet
  • زجاج مصبوغ بتدرج (gradient) وإبرازات متحركة shimmer وpulse وbreathe على كلا مساري العرض
  • GlassTheme لتسلسل هرمي كامل من العروض (view hierarchy)، و14 قالبًا جاهزًا في GlassPreset، وGlassCodeExporter لتحويل مظهر مضبوط إلى كود Swift
  • إمكانية الوصول: يرسم المسار البديل خلفية معتمة (opaque) عند تفعيل Reduce Transparency وحافة أقوى عند تفعيل Increase Contrast، ودون أي إبرازات عند تفعيل Reduce Motion، مع سلوك VoiceOver الخاص بـ SwiftUI نفسها للـ switch وslider
  • لا تعارض في الأسماء مع glassEffect أو GlassEffectContainer أو GlassButtonStyle الخاصة بـ SwiftUI، بحيث يمكن استيراد (import) الوحدتين في ملف واحد
  • حزم اختبارات Swift Testing بفحوصات بكسل خارج الشاشة (offscreen)، تعمل في CI على macOS ومحاكي iOS 26 ومحاكي iOS 18.6

البدء السريع

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}

التثبيت

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]

لقطات الشاشة

معرض مكوّنات تطبيق العرض التوضيحي في الوضع الفاتح
معرض مكوّنات تطبيق العرض التوضيحي في الوضع الداكن
نفس المكوّنات على مسار الزجاج الأصلي وعلى بديل Material، الوضع الفاتح
نفس المكوّنات على مسار الزجاج الأصلي وعلى بديل Material، الوضع الداكن
bottom sheet زجاجي عائم، الوضع الفاتح
أشرطة tabs زجاجية عائمة بزر إجراء وبادجات، الوضع الداكن
شاشة Playground تضبط قالبًا جاهزًا بواسطة sliders وتعرض كود Swift المُصدَّر

الجدول الزمني

  1. افتُتح المستودع؛ ويشير وسم v1.0.0 إلى أول commit، وهو لا يُبنى

  2. تبسيط: أُزيل أغلب المصدر واستُبدل بـ placeholders؛ ولم تكن الاختبارات قابلة للتجميع وكان CI يخفي ذلك بـ continue-on-error

  3. أُعيد البناء لـ Swift 6 كـ 2.0.0 (PR #5): glassSurface بمسار أصلي ومسار Material، وSwift Testing، وDocC، وتطبيق توضيحي

  4. 2.1.0 (PR #7): عناصر تحكم وتأثيرات وقوالب جاهزة ومُصدِّر كود، أُعيدت كتابتها من LiquidGlass-Playground وGlassmorphismUI اللتين أُرشفتا

الروابط

المستودعات المدمجة

مقالة ذات صلة

قراءة المقالة