flutter-design-system について
既存のプロジェクト規約を踏まえ、Flutter 製品向けのセマンティックなデザインシステムを構築するスキルです。段階的な移行、ライト・ダークテーマ、見た目だけでなくコンポーネントの動作も重視します。
主な機能
- 01既存テーマと共有コンポーネントの確認
- 02色、タイポグラフィ、余白の役割定義
- 03Flutter のテーマ構造への割り当て
- 04ライト、ダーク、プラットフォーム動作への対応
- 05拡大、RTL、コンポーネント状態のテスト
活用シーン
- 01既存 Flutter 製品のデザイントークン整理
- 02テーマとコンポーネント規約の段階的な移行
- 03テーマ切り替えとテキスト拡大の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ musabekisakov-imj/ flutter-design-engineer --skill flutter-design-systemインストール後、Claude Code で/flutter-design-systemを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/starter/adaptive_scaffold.dartapp_theme.dartdesign_tokens.dartreferences/connected-product-workflows.mdlayout-and-density.mdtypography-and-color.mdvisual-direction.md詳細
Flutter デザインシステム
汎用コンポーネントライブラリを押し付けるのではなく、プロダクトを支えるセマンティックシステムを構築します。
プロセス
- 既存の
ThemeData、拡張機能、定数、テキストスタイル、色、角丸、スペーシング、共有ウィジェット、パッケージの依存関係を棚卸しします。 - ビジュアル言語とプロダクトの制約を特定します。
references/visual-direction.md、references/typography-and-color.md、references/layout-and-density.mdを読みます。 - 値を決める前に、セマンティックな役割を定義します。
- サーフェス、コンテンツ、境界線、アクセント、ステータス、インタラクション状態。
- ディスプレイ、タイトル、本文、ラベル、数値のタイポグラフィの役割。
- スペーシング、角丸、エレベーション、アイコンサイズ、コントロールの高さ、モーションの役割。
複数のドメインにまたがるプロダクトでは、
references/connected-product-workflows.mdを読みます。共有システムを分断せず、ドメインごとにセマンティックなアクセントを設けます。
- 役割を
ColorScheme、TextTheme、コンポーネントテーマ、および対象を絞ったThemeExtensions に割り当てます。 - ウィジェット全体に生の値を重複して記述せずに、ライト/ダークモードのコントラストとプラットフォームの挙動をサポートします。
- 外観だけでなく、動作と状態についてもコンポーネントの契約を定義します。
- 段階的に移行します。新しいシステムで文書化された問題が解決しない限り、成熟したプロジェクトのプリミティブを置き換えないでください。
ルール
- ウィジェットのコードでは、
gray100のような色名よりsurfaceRaisedのようなセマンティックな名前を優先します。 - ローカルコンポーネントのほうが明確な場合は、ドメインの意味を汎用プリミティブに持ち込まないでください。
- 通常の UI 変更にシステムの大規模な調査が必要になるような、過剰に細分化されたトークンを避けます。
- テキストの拡大、RTL、無効/エラー状態、テーマの切り替えをテストします。
- ライブラリを変更する際は、パッケージ API の安定性を保ちます。
assets/starter/ のスターターアセットは、必須のアーキテクチャとしてではなく、応用例として使用します。
提出物
トークンの決定事項、移行の範囲、コンポーネントの契約、テーマの対応範囲、実施した検証を文書化します。意図的な例外も明記します。
コメント
Markdown 対応