Back to OSS
Swift Package UI / SwiftUI
swift-design-system
SwiftUI 向けの型安全で拡張可能なデザインシステム
Swift
swiftuidesign-systemios
English | 日本語
DesignSystem
Type-safe and extensible design system for SwiftUI
Features
- 3-layer token system — Clear hierarchy: Primitive → Semantic → Component
- Type-safe — Protocol-based design for high extensibility
- 7 built-in themes — Default, Ocean, Forest, Sunset, PurpleHaze, Monochrome, HighContrast
- Light/Dark mode support — Seamless mode switching across all themes
- Rich component library — Button, Card, Chip, TextField, FAB, Snackbar, ProgressBar, and more
Installation
// Package.swift
dependencies: [
.package(url: "https://github.com/no-problem-dev/swift-design-system.git", from: "1.7.0")
]
Quick Start
Applying a Theme
@main
struct MyApp: App {
@State private var themeProvider = ThemeProvider()
var body: some Scene {
WindowGroup {
ContentView()
.theme(themeProvider)
}
}
}
Using Design Tokens
struct MyView: View {
@Environment(\.colorPalette) var colors
@Environment(\.spacingScale) var spacing
var body: some View {
VStack(spacing: spacing.lg) {
Text("Heading")
.typography(.headlineLarge)
.foregroundStyle(colors.primary)
Text("Body")
.typography(.bodyMedium)
.foregroundStyle(colors.onSurface)
}
.padding(spacing.xl)
.background(colors.surface)
}
}
Components
// Button
Button("Save") { save() }
.buttonStyle(.primary)
.buttonSize(.large)
// Card
Card(elevation: .level2) {
Text("Card content").typography(.bodyMedium)
}
// Text Field
DSTextField("Email", text: $email, placeholder: "example@email.com", leadingIcon: "envelope")
Switching Themes
// Switch to a built-in theme
themeProvider.switchToTheme(id: "ocean")
// Cycle mode (system → light → dark → system)
themeProvider.toggleMode()
Documentation
See the DocC documentation for detailed guides and API reference.
| Guide | Description |
|---|---|
| Getting Started | Setup and basic usage |
| Token Architecture | 3-layer token system design |
| Custom Theme | Creating a custom theme |
| API Reference | Complete public API |
Requirements
- iOS 17.0+ / macOS 14.0+
- Swift 6.2+
- Xcode 16.0+
License
MIT License — see LICENSE
Links
同じカテゴリの OSS — UI / SwiftUI
swift-ui-routing
Swift PackageSwiftUI 向けの型安全で宣言的なルーティングライブラリ
Swift
· UI / SwiftUIswiftuiroutingnavigation
swift-statable
Swift PackageAsyncValue パターンで Observable な状態管理を実現する Swift マクロ
Swift
· UI / SwiftUIswift-macrostate-managementasync
swift-markdown-view
Swift PackageDesignSystem 統合とシンタックスハイライトを備えた SwiftUI ネイティブな Markdown レンダリング
Swift
· UI / SwiftUIswiftuimarkdownsyntax-highlighting
swift-latex-view
Swift PackageSwiftUI ネイティブな LaTeX 数式レンダリング。LLM 出力にも堅牢
Swift
· UI / SwiftUIswiftuilatexmath
swift-cached-remote-image
Swift Packageメモリ & ディスクの二層キャッシュで高速表示する SwiftUI リモート画像
Swift
· UI / SwiftUIswiftuiimage-cacheasync
swift-google-slides-view
Swift PackageGoogle Slides API の JSON を SwiftUI で描画。A2A アーティファクトのストリーミングに対応
Swift
· UI / SwiftUIswiftuigoogle-slidesa2a
swift-document-scanner
Swift Package矩形検出・OCR・カメラ撮影を備えた iOS 向けドキュメントスキャン基盤
Swift
· UI / SwiftUIiosscannerocr
swift-voice-input
Swift Packageストリーミング認識とフローティングプレビュー UI を備えたプロトコル指向の音声入力
Swift
· UI / SwiftUIvoicespeechswiftui