UISwift
SwiftUI-Design-System-Pro
Apple プラットフォーム向けの design token、テーマエンジン、テスト済みの SwiftUI コンポーネント
26スター数最新リリース: v2.0.0更新日: 2026年10月15日
対応プラットフォーム:iOS 17macOS 14tvOS 17watchOS 10visionOS 1
ライセンス: MIT
DesignSystemPro は、一貫した見た目をゼロから作りたくない SwiftUI アプリのための Swift パッケージです。design token(色、タイポグラフィ、スペーシング、ボーダー、シャドウ、モーション)、light、dark、プリセット、ブランドテーマを扱うテーマエンジン、そしてそれらの token の上に構築された約40個のコンポーネントビューを持っています。各カラー token は light、dark、high-contrast の値を持ち、タイポグラフィは Dynamic Type に対応し、render テストはすべてのコンポーネントグループを light モードと dark モードで保存済みの参照 fingerprint と比較します。
機能
- 2層構造のカラー token: プリミティブなパレットとセマンティックなロールで、それぞれ light、dark、high-contrast の値を持ちます
- dsTypography(_:) によって Dynamic Type に合わせてスケールするタイポグラフィ token
- ThemeManager はシステムに追従するか、プリセットかブランドカラーから生成したテーマを適用します。自前のビューからは @Environment(\.dsTheme) で読み取れます
- ボタン、テキストフィールド(検索や OTP を含む)、toggle、checkbox、radio、カード、バッジ、アバター、トースト、スケルトンローダー
- ColorContrastUtility は WCAG のコントラスト比を計算します。テストは本文テキストと塗りボタンのラベルを、両方のカラースキームで WCAG AA に対してチェックします
- ThemeManager と DSToastManager は public な initializer を持つ @MainActor @Observable クラスで、注入やテストが可能です
- iOS、macOS、tvOS、watchOS、visionOS 向けの単一パッケージで、ランタイムの依存関係はなく、Swift 6 の language mode でビルドされます
クイックスタート
swift
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}インストール
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スクリーンショット









タイムライン
最初の DSButton と DSCard のビューでリポジトリが公開されました
1.0.0 をタグ付け。2.0 の基盤となる token、テーマエンジン、コンポーネントのコードが書かれました
整理によってソースの大半が placeholder のファイルに置き換えられました
2.0.0 として作り直し: token、テーマエンジン、コンポーネントを復元・修正し、Swift Testing suite でカバーしました