SwiftUI-Design-System-Pro
Apple platformları için design token'ları, tema motoru ve test edilmiş SwiftUI bileşenleri
Lisans: MIT
DesignSystemPro, tutarlı bir görünümü sıfırdan kurmak istemeyen SwiftUI uygulamaları için bir Swift paketi. İçinde design token'ları (renk, tipografi, spacing, border, gölge, hareket), light, dark, hazır ve marka temalarını yöneten bir tema motoru ve bu token'larla kurulmuş yaklaşık 40 bileşen view'ı var. Her renk token'ı light, dark ve high-contrast değer taşıyor, tipografi Dynamic Type'a uyuyor ve bir render testi her bileşen grubunu light ve dark modda kayıtlı referans fingerprint'lerle karşılaştırıyor.
Özellikler
- İki katmanlı renk token'ları: ham palet ve anlamsal roller; her biri light, dark ve high-contrast değer taşır
- dsTypography(_:) ile Dynamic Type'a göre ölçeklenen tipografi token'ları
- ThemeManager sistemi takip eder ya da hazır bir temayı veya marka renklerinden üretilen bir temayı uygular; kendi view'larınız onu @Environment(\.dsTheme) ile okur
- Butonlar, text field'lar (arama ve OTP dahil), toggle, checkbox, radio, kart, rozet, avatar, toast ve skeleton yükleyiciler
- ColorContrastUtility WCAG kontrast oranlarını hesaplar; testler gövde metnini ve dolu buton etiketlerini iki renk şemasında WCAG AA'ya karşı kontrol eder
- ThemeManager ve DSToastManager, public initializer'ı olan @MainActor @Observable sınıflardır; enjekte edilip test edilebilirler
- iOS, macOS, tvOS, watchOS ve visionOS için tek paket; çalışma zamanı bağımlılığı yok, Swift 6 language mode ile derlenir
Hızlı Başlangıç
1import DesignSystemPro2import SwiftUI3 4struct ContentView: View {5 @State private var notificationsOn = true6 7 var body: some View {8 VStack(spacing: SpacingTokens.Content.comfortable) {9 Text("Hello, DesignSystemPro")10 .dsTypography(TypographyTokens.Heading.h2)11 12 DSStatusBadge("Ready", variant: .success)13 14 DSToggle(isOn: $notificationsOn, label: "Notifications")15 16 DSButton("Continue", isFullWidth: true) {17 notificationsOn.toggle()18 }19 }20 .padding(SpacingTokens.Layout.screenEdge)21 }22}Kurulum
Swift Package Manager
1dependencies: [2 .package(url: "https://github.com/muhittincamdali/SwiftUI-Design-System-Pro.git", from: "2.0.0")3],4targets: [5 .target(name: "YourApp", dependencies: [6 .product(name: "DesignSystemPro", package: "SwiftUI-Design-System-Pro")7 ])8]Xcode
1https://github.com/muhittincamdali/SwiftUI-Design-System-Pro.gitEkran Görüntüleri









Zaman Çizelgesi
Repo açıldı; ilk DSButton ve DSCard view'ları eklendi
1.0.0 etiketlendi; 2.0'ın temelini oluşturan token, tema motoru ve bileşen kodu yazıldı
Bir sadeleştirme, kaynak kodun çoğunu placeholder dosyalarla değiştirdi
2.0.0 olarak yeniden kuruldu: token'lar, tema motoru ve bileşenler geri getirildi, düzeltildi ve Swift Testing suite'leriyle test edildi