avalonia-layout-zafiro について
avalonia-layout-zafiro は Zafiro.Avalonia を使った Avalonia UI レイアウト設計のスキルです。セマンティックなコンテナー、共有スタイル、再利用可能なコンポーネントを活用し、XAML を簡潔に保つ方法を扱います。
主な機能
- 01セマンティックなレイアウトコンテナー
- 02共有スタイルとテーマの指針
- 03拡張機能によるアイコン利用
- 04インタラクションビヘイビア
- 05再利用可能なコンポーネントとフラットなレイアウト
活用シーン
- 01Avalonia ビューの構成
- 02視覚プロパティの重複削減
- 03アイコンと UI インタラクションの追加
- 04再利用可能なレイアウトコンポーネントの改善
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill avalonia-layout-zafiroインストール後、Claude Code で/avalonia-layout-zafiroを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
behaviors.mdicons.mdcomponents.mdthemes.mdcontainers.md詳細
Zafiro.Avalonia を使った Avalonia のレイアウト
モダンで、すっきりとした、保守しやすい Avalonia UI レイアウトを習得しましょう。 セマンティックなコンテナー、共有スタイル、最小限の XAML に重点を置きます。
🎯 選択的に読むためのルール
レイアウトの課題に関連するファイルだけを読んでください!
以下の 5 つのガイドが含まれていますが、作者のローカルにある Angor ソリューションは含まれていません。例は一部のみで、実際に使用する Avalonia、Zafiro、パッケージのバージョンと XML 名前空間宣言に合わせる必要があります。UntouchedClassBehavior とアイコンリソースが、そのインストール環境に存在することも確認してください。適切なコンバーターなしで MultiBinding が論理 And/Or を提供すると想定しないでください。また、スタイルファイルに Styles が含まれている場合、それらを ResourceDictionary リソースとして結合しないでください。ファイルのルート要素に応じて、スタイルコレクションには StyleInclude を、リソースディクショナリには ResourceInclude を使用してください。アイコンが利用しやすい状態を保ち、フォーカスやキーボード操作の挙動を維持し、ライト/ダークテーマ、テキストの拡大、ローカライズをテストしてください。コンバーターやコードビハインドを避けるのは設計上の好みであり、常に正しさやパフォーマンスを保証するルールではありません。
📑 コンテンツ一覧
| ファイル | 説明 | 読むタイミング |
|---|---|---|
themes.md | テーマ構成と共有スタイル | アプリのテーマを設定または改善するとき |
containers.md | セマンティックコンテナー(HeaderedContainer、EdgePanel、Card) | ビューとレイアウトを構成するとき |
icons.md | IconExtension と IconOptions を使ったアイコンの使用 | アイコンを追加してカスタマイズするとき |
behaviors.md | Xaml.Interaction.Behaviors とコンバーターの回避 | 複雑なインタラクションを実装するとき |
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を使用してください。 - コンバーターを避けていますか? 必要な場合を除き、ViewModel のプロパティまたはビヘイビアを優先してください。
❌ アンチパターン
避けること:
- ビューで色やサイズをハードコードすること(リテラルを使用すること)。
GridとStackPanelを深く入れ子にすること。- 複数の要素で視覚的なプロパティを繰り返すこと(Styles を使用してください)。
- ViewModel が担うべき単純なロジックに
IValueConverterを使用すること。
実践すること:
- 色やブラシには
DynamicResourceを使用してください。 - 繰り返し使うレイアウトをジェネリックコンポーネントに切り出してください。
- よくある UI パターンには
EdgePanelなど、Zafiro.Avalonia固有のパネルを活用してください。
使用する場面
このスキルは、概要に記載されたワークフローまたはアクションを実行する際に適用できます。
制限事項
- このスキルは、タスクが上記の範囲に明確に当てはまる場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、成功基準が不足している場合は、いったん停止して確認してください。