Swift Design Systemを使用したiOS UI実装スキル。デザイントークン(カラー、タイポグラフィ、スペーシング、角丸、モーション、エレベーション)、UIコンポーネント(Button、Card、Chip、FAB、Snackbar、Picker)、レイアウトパターン(AspectGrid、SectionCard)のベストプラクティスを提供。「デザイン」「UI」「テーマ」「カラー」「色」「タイポグラフィ」「フォント」「スペーシング」「余白」「角丸」「アニメーション」「ボタン」「カード」「チップ」「グリッド」「レイアウト」「FAB」「Snackbar」「Picker」「SwiftUI」「DesignSystem」などのキーワードで自動適用。
Provides Swift Design System implementation guidance for iOS apps. Automatically applies when keywords like "UI," "button," "card," "color," "typography," or "SwiftUI" are mentioned, offering best practices for tokens, components, and layout patterns.
/plugin marketplace add no-problem-dev/claude-code-plugins/plugin install swift-design-system@no-problem-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/TOKENS.mdreferences/components/BUTTON.mdreferences/components/CARD.mdreferences/components/CHIP.mdreferences/components/COLOR_PICKER.mdreferences/components/EMOJI_PICKER.mdreferences/components/FAB.mdreferences/components/ICON_PICKER.mdreferences/components/IMAGE_PICKER.mdreferences/components/SNACKBAR.mdreferences/patterns/ASPECT_GRID.mdreferences/patterns/SECTION_CARD.mdreferences/patterns/THEME.mdno problem製iOSアプリのUI実装に必須のデザインシステム。一貫性のあるUIを効率的に構築するためのトークン・コンポーネント・パターンを提供。
// Package.swift
dependencies: [
.package(url: "https://github.com/no-problem-dev/swift-design-system.git", from: "X.X.X")
]
// ターゲット
.target(
name: "YourApp",
dependencies: [
.product(name: "DesignSystem", package: "swift-design-system")
]
)
Note:
X.X.Xには最新バージョンを指定してください。 最新バージョンは GitHub Releases で確認できます。
Primitive Tokens (基本値) - 直接使用禁止
↓ 参照
Semantic Tokens (意味的トークン) - 推奨
↓ 参照
Component Tokens (コンポーネント固有) - 自動適用
重要: Primitiveトークンは直接使用せず、必ずSemantic/Componentトークンを使用すること。
@Environment(\.colorPalette) var colors
@Environment(\.spacingScale) var spacing
@Environment(\.radiusScale) var radius
@Environment(\.motion) var motion
プロトコルベースの設計により、カスタムテーマ・トークンの拡張が可能。
アプリ起動時に必ずThemeProviderを設定:
import DesignSystem
@main
struct MyApp: App {
@State private var themeProvider = ThemeProvider()
var body: some Scene {
WindowGroup {
ContentView()
.theme(themeProvider) // 必須
}
}
}
詳細は → references/patterns/THEME.md
// ✅ Good: セマンティックカラーを使用
Text("エラー").foregroundColor(colors.error)
// ❌ Bad: ハードコードされた色
Text("エラー").foregroundColor(.red)
// ✅ Good: typographyモディファイアを使用
Text("見出し").typography(.headlineLarge)
// ❌ Bad: 直接フォント指定
Text("見出し").font(.system(size: 32, weight: .semibold))
// ✅ Good: スペーシングトークンを使用
VStack(spacing: spacing.lg) { ... }
// ❌ Bad: マジックナンバー
VStack(spacing: 16) { ... }
// ✅ Good: デザインシステムのコンポーネントを使用
Card(elevation: .level2) { content }
// ❌ Bad: 独自実装
RoundedRectangle(cornerRadius: 8)
.fill(Color.white)
.shadow(radius: 4)
デザイン実装時は、該当するリファレンスを参照してください。
すべてのUI実装で必須の知識
→ references/TOKENS.md
| コンポーネント | 用途 | リファレンス |
|---|---|---|
| Button | アクションボタン | → references/components/BUTTON.md |
| Card | コンテンツコンテナ | → references/components/CARD.md |
| Chip | タグ、フィルター | → references/components/CHIP.md |
| FAB | 浮遊アクションボタン | → references/components/FAB.md |
| Snackbar | 一時的通知 | → references/components/SNACKBAR.md |
| IconPicker | SF Symbols選択 | → references/components/ICON_PICKER.md |
| EmojiPicker | 絵文字選択 | → references/components/EMOJI_PICKER.md |
| ColorPicker | カラー選択 | → references/components/COLOR_PICKER.md |
| ImagePicker | 画像選択 | → references/components/IMAGE_PICKER.md |
| パターン | 用途 | リファレンス |
|---|---|---|
| Theme | テーマ設定・切り替え | → references/patterns/THEME.md |
| AspectGrid | アスペクト比統一グリッド | → references/patterns/ASPECT_GRID.md |
| SectionCard | タイトル付きカードセクション | → references/patterns/SECTION_CARD.md |