material3-expressive-flutter について
Material 3 Expressive Flutterは、FlutterでMaterial 3 Expressiveを実装するためのパターン、スクリプト、ルールを提供するスキルです。設計原則に沿って、動き、形状、フィードバック、アクセシビリティを確認しながらコンポーネントを作成できます。
主な機能
- 01Material 3 Expressiveの実装パターン
- 02物理ベースの動きの指針
- 03変形する形状のパターン
- 04コンポーネントテンプレートスクリプト
- 05設計原則への準拠確認
- 06アクセシビリティ要件
活用シーン
- 01表現豊かなFlutterコンポーネントの作成
- 02標準的なMaterial 3アプリの刷新
- 03スプリングベースのトランジション追加
- 04M3 Expressiveに沿ったUI監査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mic-360/ material3-expressive-flutter --skill material3-expressive-flutterインストール後、Claude Code で/material3-expressive-flutterを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CLAUDE.mdreferences/color-schemes.mdexternal-docs.mdmotion-guide.mdpackages.mdshape-guide.mdtypography-guide.mdreferences/components/app-bars.mdbutton-groups.mdbuttons.mdfab-menu.mdicon-buttons.mdloading-indicators.mdnavigation-bar.mdnavigation-rail.mdprogress-indicators.mdsplit-buttons.mdtoolbars.mdrules/_sections.mdcolor-philosophy.mdmotion-physics.mdshape-morphing.mdtypography-editorial.mdscripts/component_template.dartgenerate_theme.dart詳細
Material 3 Expressive Flutter
このスキルでは、Flutter で Material 3 Expressive デザインシステムを実装するための包括的なパターン、スクリプト、ルールを提供します。物理ベースのモーション、有機的な形状、エンゲージメントを高めるコンポーネントに重点を置いています。
仕組み
- 要件分析:M3E について質問すると、エージェントがコンテキスト(コンポーネントの種類、状態、重要度)を分析します。
- ルールの適用:
rules/のルール(モーション物理、形状のモーフィング)を適用して、デザイン要件への準拠を確保します。 - コード生成:
scripts/component_template.dartをベースとして、上質で、アクセシブルかつ高パフォーマンスなコンポーネントを生成します。 - 検証:「空間スプリングとエフェクトスプリング」や「形状のコントラスト」などの M3E 原則に照らして、出力を監査します。
使用する場面
- 新機能の開発:ユーザーエンゲージメントを高めるコンポーネント(プロモーション、オンボーディング、主要なアクション)を作成するとき。
- デザインのモダナイズ:標準的な M3 アプリを、より滑らかで表現力豊かなスタイルに更新するとき。
- 表現力豊かなモーション:自然な感覚を実現するため、スプリングベースのアニメーションを実装するとき。
- カスタム形状:形状がモーフィングするコンテナや、標準とは異なる角丸形状を実装するとき。
使用方法
1. 新しいコンポーネントのひな型を作成する
テンプレートを使って、堅牢で状態を考慮したウィジェットを作成します。
# Path to script
flutter run scripts/component_template.dart
2. 実装方法
トリガーフレーズ:
- 「M3 Expressive スタイルで [component] を実装する」
- 「このトランジションに表現力豊かなモーションを追加する」
- 「この標準的な M3 ボタンをモダナイズする」
- 「M3 Expressive の原則に照らして UI を監査する」
例
空間スプリングモーション(例)
// Use for movement and position
Curves.elasticOut; // Strong, tactile response
Cubic(0.34, 1.56, 0.64, 1); // Expressive overshoot
形状がモーフィングするコンテナ
AnimatedContainer(
duration: const Duration(milliseconds: 500),
curve: Curves.elasticOut,
decoration: ShapeDecoration(
shape: M3ExpressiveShape.teardrop, // Custom token
color: theme.colorScheme.primaryContainer,
),
);
リファレンスガイド
- モーションガイド - 空間スプリングとエフェクトスプリング。
- 形状システム - スクワークル、ティアドロップ、モーフィング。
- タイポグラフィガイド - エディトリアルな階層。
- コンポーネントライブラリ - すべての M3E コンポーネントのパターン。
ルールと標準
- 時間より物理:固定時間ではなく、スプリング(空間/エフェクト)を使用します。
- 全面的な丸み:ボタンと主要なインジケーターには
StadiumBorder()を使用します。 - 意味のあるフィードバック:表現力豊かなアクションには必ず
HapticFeedback.lightImpact()を含めます。 - アクセシビリティ:最小タッチターゲットを 48x48dp にし、適切な
Semanticsを設定します。
トラブルシューティング
- 「アニメーションがぎくしゃくする」:スプリングで
Curves.linearを使っていないか、短すぎる時間(<200ms)を設定していないか確認します。 - 「形状が正しくモーフィングしない」:補間に対応するカスタム
ShapeBorderとShapeDecorationを使用していることを確認します。 - 「UI が平坦に感じられる」:色のコントラストを確認し、主要なアクションに塗りつぶしコンテナを使用していることを確認します。
結果をユーザーに提示する
M3E のタスクが完了したら、追加した表現力豊かな機能を要約します:
- ✅ モーション:[Action] に [Spatial/Effects] スプリングを適用しました。
- ✅ 形状:[Component] に [Pill/Teardrop/Squircel] を使用しました。
- ✅ 触覚フィードバック:触覚フィードバックを組み込みました。
- ✅ カラー:M3 の動的カラー トークンを使用しました。
- ✅ アクセシビリティ:タッチターゲットとセマンティクスを確認しました。
コメント
Markdown 対応