avalonia-layout-zafiro について
Zafiro.Avalonia を使った Avalonia レイアウトの設計・改善を支援するスキルです。セマンティックなコンテナー、共有スタイル、再利用可能なコンポーネント、XAML のネスト削減を重視します。
主な機能
- 01セマンティックなレイアウトコンテナー
- 02共有スタイルとテーマの構成
- 03IconExtension と IconOptions の利用
- 04Interaction.Behaviors による UI ロジック
- 05再利用可能なコンポーネントとフラットなレイアウト
活用シーン
- 01HeaderedContainer や EdgePanel によるビュー構成
- 02アプリのテーマと共有スタイルの整理
- 03Avalonia ビューへのアイコン追加とスタイル設定
- 04深いネストを再利用可能なコンポーネントに置き換え
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill avalonia-layout-zafiroインストール後、Claude Code で/avalonia-layout-zafiroを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
behaviors.mdcomponents.mdcontainers.mdicons.mdthemes.md詳細
Zafiro.Avalonia を使った Avalonia レイアウト
モダンでクリーンかつ保守しやすい Avalonia UI レイアウトを習得しましょう。 セマンティックコンテナ、共有スタイル、最小限の XAML に焦点を当てます。
🎯 選択的読み取りルール
レイアウトの課題に関連するファイルだけを読んでください!
📑 コンテンツマップ
| ファイル | 説明 | 読むタイミング |
|---|---|---|
themes.md | テーマの構成と共有スタイル | アプリのテーマを設定または改良するとき |
containers.md | セマンティックコンテナ(HeaderedContainer、EdgePanel、Card) | ビューやレイアウトを構成するとき |
icons.md | IconExtension と IconOptions を使ったアイコンの利用 | アイコンを追加またはカスタマイズするとき |
behaviors.md | Xaml.Interaction.Behaviors と Converter の回避 | 複雑なインタラクションを実装するとき |
components.md | ジェネリックコンポーネントとネストの回避 | 再利用可能な UI 要素を作成するとき |
🔗 関連プロジェクト(模範的な実装)
実際の例については、Angor プロジェクトを参照してください:
/mnt/fast/Repos/angor/src/Angor/Avalonia/Angor.Avalonia.sln
✅ クリーンなレイアウトのためのチェックリスト
- セマンティックコンテナを使用しているか?(例:手動でヘッダーを作る
Borderの代わりにHeaderedContainerを使う) - 冗長なプロパティを避けているか?
axamlファイルの共有スタイルを使用してください。 - ネストを最小限にしているか?
EdgePanelやジェネリックコンポーネントを使ってレイアウトをフラットにしてください。 - アイコンは拡張機能経由か? スタイリングには
{Icon fa-name}とIconOptionsを使用してください。 - コードビハインドよりビヘイビアを優先しているか? UI ロジックには
Interaction.Behaviorsを使用してください。 - Converter を避けているか? 必要がない限り、ViewModel のプロパティやビヘイビアを優先してください。
❌ アンチパターン
やってはいけないこと:
- ビューでハードコードされた色やサイズ(リテラル)を使う。
GridとStackPanelを深くネストする。- 複数の要素で同じ見た目のプロパティを繰り返す(スタイルを使ってください)。
- ViewModel に置くべき単純なロジックに
IValueConverterを使う。
推奨事項:
- 色やブラシには
DynamicResourceを使用する。 - 繰り返し現れるレイアウトはジェネリックコンポーネントに切り出す。
- 一般的な UI パターンには、
Zafiro.Avalonia固有のパネル(EdgePanelなど)を活用する。
コメント
Markdown 対応