すべてのオープンソースパッケージ
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 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}

インストール

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 のバリエーションとサイズ
ダークモードで描画された DSButton のバリエーションとサイズ
ライトモードのバッジとアバター
ダークモードのバッジとアバター
ライトモードのカードコンポーネント
ライトモードの toggle、checkbox、radio ボタン
ダークモードのトーストとスケルトンローダー

タイムライン

  1. 最初の DSButton と DSCard のビューでリポジトリが公開されました

  2. 1.0.0 をタグ付け。2.0 の基盤となる token、テーマエンジン、コンポーネントのコードが書かれました

  3. 整理によってソースの大半が placeholder のファイルに置き換えられました

  4. 2.0.0 として作り直し: token、テーマエンジン、コンポーネントを復元・修正し、Swift Testing suite でカバーしました

リンク

関連記事

記事を読む