G
Gudmundur Magnusson

Football Website Admin UI Design

MudBlazor Admin Dashboard that displays summary KPI cards, a responsive MudDrawer navigation and a MudTable with paging. Demonstrates MudBlazor layout, icons and grid-based cards driven by view models.

LIVE DEMO
Generated using Instruct UI - An AI for Blazor UI Generation
## What's implemented - Top app bar and responsive drawer navigation (MudAppBar, MudDrawer, MudNavMenu, MudNavLink). - KPI summary cards using MudPaper, MudIcon and MudText. - Paginated table of matches using MudTable with MudTablePager (MudTable paging). - Status rendering for rows (Finished vs Upcoming) and basic responsive grid layout (MudGrid, MudItem). ## Key components - MudLayout, MudAppBar, MudDrawer, MudNavMenu, MudNavLink - MudContainer, MudGrid, MudItem, MudPaper, MudIcon - MudTable<T>, HeaderContent, RowTemplate, MudTablePager - MudText, MudSpacer - View models: TeamViewModel, PlayerViewModel, MatchViewModel, NewsArticleViewModel ## How it works - Data is initialized in OnInitialized with in-memory mock lists bound to private fields (_teams, _players, _upcomingMatches, _news). - The KPI cards read counts from those lists and render via MudText. - MudTable<T> iterates _upcomingMatches and uses RowTemplate to render cells; pagination is provided by MudTablePager. - Drawer open state is bound via @bind-Open to a bool (_drawerOpen) and toggled by DrawerToggle invoked from the app bar icon (@onclick). - Conditional UI (status labels) uses inline C# checks against DateTime.Now to set MudText color. ## Styling - Uses MudBlazor component styling and layout primitives rather than utility CSS. - Responsive behavior relies on MudGrid breakpoints (xs, sm, md) and DrawerVariant.Responsive for the drawer. - Icons use Icons.Material.* and MudBlazor color tokens (Color.Primary, Color.Success, etc.). ## Reuse steps 1. Add MudBlazor NuGet to the project and call builder.Services.AddMudServices() in Program.cs. 2. Import the MudBlazor namespace (using MudBlazor; in _Imports.razor) and ensure MudBlazor CSS is available (package defaults). 3. Copy the page and model classes into a Razor page and a Models folder; register routes as needed. 4. Replace mock initialization in OnInitialized with injected services or HTTP calls and map DTOs to the view models. 5. Optionally add authentication/authorization and navigation routes for Teams/Players/Matches pages. ## Limitations & next steps - This is a single-page demo generated by Instruct UI with in-memory mock data; no backend, services, or authentication are wired. - No EditForm or server-side validation is included; add EditForm and DataAnnotationsValidator for record editing. - Consider injecting data services (e.g., IMatchService) and using async lifecycle methods (OnInitializedAsync) for real data. - Add sorting, filtering, and row actions (edit/delete) to MudTable for a fuller admin experience.