About avalonia-layout-zafiro
A reference skill for building Avalonia layouts with Zafiro.Avalonia, aimed at developers structuring or refining app views. It emphasizes semantic containers, shared styles, reusable components, and minimal XAML nesting.
Key features
- 01Semantic layout containers
- 02Shared styles and theme organization
- 03IconExtension and IconOptions usage
- 04Interaction.Behaviors for UI logic
- 05Reusable components and flatter layouts
Use cases
- 01Structure views with HeaderedContainer or EdgePanel
- 02Organize shared app themes and styles
- 03Add and style icons in Avalonia views
- 04Replace deep nested layouts with reusable components
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ davila7/ claude-code-templates --skill avalonia-layout-zafiroAfter installing, type/avalonia-layout-zafiroin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
behaviors.mdcomponents.mdcontainers.mdicons.mdthemes.mdDetails
From the project READMEAvalonia Layout with Zafiro.Avalonia
Master modern, clean, and maintainable Avalonia UI layouts. Focus on semantic containers, shared styles, and minimal XAML.
🎯 Selective Reading Rule
Read ONLY files relevant to the layout challenge!
📑 Content Map
| File | Description | When to Read |
|---|---|---|
themes.md | Theme organization and shared styles | Setting up or refining app themes |
containers.md | Semantic containers (HeaderedContainer, EdgePanel, Card) | Structuring views and layouts |
icons.md | Icon usage with IconExtension and IconOptions | Adding and customizing icons |
behaviors.md | Xaml.Interaction.Behaviors and avoiding Converters | Implementing complex interactions |
components.md | Generic components and avoiding nesting | Creating reusable UI elements |
🔗 Related Project (Exemplary Implementation)
For a real-world example, refer to the Angor project:
/mnt/fast/Repos/angor/src/Angor/Avalonia/Angor.Avalonia.sln
✅ Checklist for Clean Layouts
- Used semantic containers? (e.g.,
HeaderedContainerinstead ofBorderwith manual header) - Avoided redundant properties? Use shared styles in
axamlfiles. - Minimized nesting? Flatten layouts using
EdgePanelor generic components. - Icons via extension? Use
{Icon fa-name}andIconOptionsfor styling. - Behaviors over code-behind? Use
Interaction.Behaviorsfor UI-logic. - Avoided Converters? Prefer ViewModel properties or Behaviors unless necessary.
❌ Anti-Patterns
DON'T:
- Use hardcoded colors or sizes (literals) in views.
- Create deep nesting of
GridandStackPanel. - Repeat visual properties across multiple elements (use Styles).
- Use
IValueConverterfor simple logic that belongs in the ViewModel.
DO:
- Use
DynamicResourcefor colors and brushes. - Extract repeated layouts into generic components.
- Leverage
Zafiro.Avaloniaspecific panels likeEdgePanelfor common UI patterns.
Comments
Markdown supported