--- name: mudblazor description: | Creates Material Design UI components and touch-optimized interfaces for Blazor WebAssembly. Use when: building dashboard pages, forms, data tables, dialogs, or any UI component in VanDaemon's frontend. allowed-tools: Read, Edit, Write, Glob, Grep, Bash --- # MudBlazor Skill MudBlazor provides Material Design components for Blazor. VanDaemon uses MudBlazor 6.x for touch-optimized interfaces designed for mobile devices in camper van environments. Key patterns include real-time data binding with SignalR, responsive layouts, and dark/light theme support. ## Quick Start ### Basic Page Layout ```razor @page "/dashboard" @inject HttpClient Http Tank Levels @foreach (var tank in tanks) { @tank.Name } ``` ### Touch-Optimized Control ```razor ``` ## Key Concepts | Component | Use Case | Size Prop | |-----------|----------|-----------| | `MudSwitch` | Toggle controls (lights, pump) | `Size.Large` for touch | | `MudSlider` | Dimmer controls (0-255) | `Size.Large` for touch | | `MudProgressLinear` | Tank level display | N/A | | `MudCard` | Content containers | N/A | | `MudGrid/MudItem` | Responsive layout | `xs`, `sm`, `md` breakpoints | | `MudDialog` | Confirmations, settings | N/A | ## Common Patterns ### Real-Time Data Binding **When:** Displaying SignalR-updated values ```razor @code { private double tankLevel; protected override async Task OnInitializedAsync() { hubConnection.On("TankLevelUpdated", (id, level, name) => { tankLevel = level; InvokeAsync(StateHasChanged); // Required for SignalR callbacks }); } } ``` ### Responsive Grid **When:** Building dashboard layouts ```razor ``` ## See Also - [patterns](references/patterns.md) - Component patterns and anti-patterns - [workflows](references/workflows.md) - Form handling, theming, dialogs ## Related Skills - See the **blazor** skill for component lifecycle and SignalR integration - See the **signalr** skill for real-time data updates - See the **frontend-design** skill for responsive design patterns