Tüm açık kaynak paketler
ArayüzSwift

SwiftUI-Design-System-Pro

Apple platformları için design token'ları, tema motoru ve test edilmiş SwiftUI bileşenleri

26YıldızSon Sürüm: v2.0.0Güncellendi: 15 Ekim 2026
Platformlar:iOS 17macOS 14tvOS 17watchOS 10visionOS 1

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ıç

swift
1import DesignSystemPro
2import SwiftUI
3 
4struct ContentView: View {
5 @State private var notificationsOn = true
6 
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

swift
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

text
1https://github.com/muhittincamdali/SwiftUI-Design-System-Pro.git

Ekran Görüntüleri

Örnek uygulamanın bileşenler ekranı, light mod
Örnek uygulamanın bileşenler ekranı, dark mod
Light modda render edilmiş DSButton varyantları ve boyutları
Dark modda render edilmiş DSButton varyantları ve boyutları
Light modda rozetler ve avatarlar
Dark modda rozetler ve avatarlar
Light modda kart bileşenleri
Light modda toggle, checkbox ve radio kontrolleri
Dark modda toast'lar ve skeleton yükleyiciler

Zaman Çizelgesi

  1. Repo açıldı; ilk DSButton ve DSCard view'ları eklendi

  2. 1.0.0 etiketlendi; 2.0'ın temelini oluşturan token, tema motoru ve bileşen kodu yazıldı

  3. Bir sadeleştirme, kaynak kodun çoğunu placeholder dosyalarla değiştirdi

  4. 2.0.0 olarak yeniden kuruldu: token'lar, tema motoru ve bileşenler geri getirildi, düzeltildi ve Swift Testing suite'leriyle test edildi

Bağlantılar

İlgili Yazı

Yazıyı Oku