M
Matt Singleton

Text RPG UI Design

MudBlazor RPG UI demonstrating a persistent drawer stats panel and ProgressLinear bars for health and mana, plus a story card and action button grid. Shows MudBlazor layout, grid and drawer behaviors.

LIVE DEMO
Generated using Instruct UI - An AI for Blazor UI Generation
## What's implemented - Persistent left drawer showing character stats with progress bars and numeric attributes. - Top app bar with menu toggle and settings icon. - Main content area with a story card and a set of action buttons arranged by MudGrid. - Navigation links for Inventory, Quests, Map and Save Game in the drawer. - Simple local component state to open/close the drawer and display CharacterStatsModel values. ## Key components - MudLayout, MudAppBar, MudDrawer, MudMainContent, MudContainer - MudPaper, MudText, MudGrid, MudItem, MudDivider - MudProgressLinear (health/mana), MudButton, MudIconButton - MudNavMenu, MudNavLink, MudSpacer - CharacterStatsModel (plain C# model) ## How it works - The page renders a MudLayout with a MudDrawer bound via @bind-Open to a private bool field (_drawerOpen). - Character values come from CharacterStatsModel and are displayed directly in markup (e.g. @_character.Health) and via MudProgressLinear Value. - DrawerToggle() flips _drawerOpen; MudIconButton invokes it from the AppBar. - MudGrid and MudItem use responsive breakpoints (xs, sm) to lay out buttons and stats. - Navigation links point at route targets (e.g. /inventory) but do not include navigation handlers in this page. ## Styling - Uses MudBlazor components and theme primitives (Elevation, Typo, Color, Variant). - Responsive behavior relies on MudGrid/MudItem xs/sm sizing and MudContainer MaxWidth. - DrawerVariant.Persistent keeps the drawer visible on wider layouts; elevation and padding (Class="pa-*") provide surface separation. ## Reuse steps 1. Add the MudBlazor NuGet package and register services in Program.cs (e.g. builder.Services.AddMudServices()). 2. Import MudBlazor namespace in _Imports.razor and include MudBlazor CSS in index.html/host page. 3. Copy RpgGameUi.razor and the CharacterStatsModel into a Components folder and adjust namespaces. 4. Wire real data or a state container for character stats; replace hard-coded model initialization with DI or a game service. 5. Implement navigation targets (/inventory, /quests, /map, /save) and hook action buttons to game logic or dialogs. ## Limitations & next steps - This is a single-page UI slice generated by Instruct UI; application services, routing targets and authentication are not implemented. - Action buttons have no event handlers; game logic, command routing, or dialog flows must be added. - For multiplayer or persisted state, add a game state service, signal handling, or local storage integration. - Consider accessibility (keyboard focus, aria labels) and theme customization via MudTheme for production use.