mudblazor-theming
- Repo stars 178
- Author updated Live
- Author repo Egroo
- Domain
- Design
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 88 / 100 · community maintained
- Author / version / license
- @jihadkhawaja · no license declared
- Token usage
- Lean
- Setup complexity
- Plug-and-play
- External API key
- Not required
- Operating systems
- Unspecified (assume cross-platform)
- Runtime requirements
- No special requirements
- Permissions
-
- Read-only
- Write / modify
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: mudblazor-theming
description: Apply consistent Material Design UI theming in Egroo using MudBlazor. Use for: adding or updatin…
category: design
runtime: no special runtime
---
# mudblazor-theming output preview
## PART A: Task fit
- Use case: Apply consistent Material Design UI theming in Egroo using MudBlazor. Use for: adding or updating colors, typography, elevation; ensuring new components follow the orange-on-dark palette; fixing visual inconsistencies; new MudBlazor components that need correct Color/Variant/Elevation props; CSS scoped overrides for theme-integrated layout. Covers the Egroo dark palette, component usage patterns, and the rules for keeping CSS and MudTheme in sync..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “When to Use / Palette Reference / Component Patterns” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “Apply consistent Material Design UI theming in Egroo using MudBlazor. Use for: adding or updating colors, typography, elevation; ensuring new components follow the orange-on-dark palette; fixing visual inconsistencies; new MudBlazor components that need correct Color/Variant/Elevation props; CSS scoped overrides for theme-integrated layout. Covers the Egroo dark palette, component usage patterns, and the rules for keeping CSS and MudTheme in sync.”.
- **02** When the source has headings, the agent prioritizes “When to Use / Palette Reference / Component Patterns” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files.
Start with a small task and check whether the result follows “When to Use / Palette Reference / Component Patterns”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: mudblazor-theming
description: Apply consistent Material Design UI theming in Egroo using MudBlazor. Use for: adding or updatin…
category: design
source: jihadkhawaja/Egroo
---
# mudblazor-theming
## When to use
- Apply consistent Material Design UI theming in Egroo using MudBlazor. Use for: adding or updating colors, typography…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “When to Use / Palette Reference / Component Patterns” and keep inference separate from source facts.
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "mudblazor-theming" {
input -> user goal + target files + boundaries + acceptance criteria
context -> When to Use / Palette Reference / Component Patterns
rules -> SKILL.md triggers / order / output contract
runtime -> no special runtime | read files, write/modify files | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} MudBlazor Theming — Egroo Design System
When to Use
- Adding a new Razor component and unsure which MudBlazor
Color,Variant, orElevationto use - Fixing a component whose colors clash with the dark palette
- Updating scoped
.razor.cssoverrides so they match theme colors - Choosing typography (
Typo.*) for new text elements - Defining a new elevation tier for a new surface type
Palette Reference
Theme defined in src/Egroo.UI/Constants/Theme.cs — always edit that file for colour changes, never hardcode hex values in .razor files.
| Token | Value | Use on |
|---|---|---|
Primary |
#F25922 |
CTAs, active states, accent icons |
PrimaryContrastText |
#FFFFFF |
Text/icons on Primary-colored surfaces |
Secondary |
#F2B591 |
Subtle highlights, badges, chips |
SecondaryContrastText |
#1a1a1a |
Text on Secondary-colored surfaces |
Background |
#32333d |
Page background |
Surface |
#1e1e1e |
Cards, drawers, appbar |
DrawerBackground |
#1e1e1e |
Left sidebar |
AppbarBackground |
#1e1e1e |
Top navigation bar |
TextPrimary |
rgba(255,255,255,0.90) |
Main readable text |
TextSecondary |
rgba(255,255,255,0.70) |
Supporting/label text |
DrawerText / DrawerIcon |
rgba(255,255,255,0.50) |
Inactive nav items |
Divider |
rgba(255,255,255,0.12) |
Horizontal rules, borders |
LinesInputs |
rgba(255,255,255,0.30) |
Text field underlines |
ActionDisabled |
rgba(255,255,255,0.26) |
Disabled control icons |
CSS in
.razor.cssfiles: Use the exact hex/rgba values from this table. Never invent new brand colors. Sidebar/drawer background =#1e1e1e. Active nav link:rgba(242,89,34,0.20)bg +#F25922text.
Component Patterns
Buttons
@* Primary CTA (filled orange) *@
<MudButton Variant="Variant.Filled" Color="Color.Primary">Save</MudButton>
@* Secondary action *@
<MudButton Variant="Variant.Outlined" Color="Color.Secondary">Cancel</MudButton>
@* Destructive *@
<MudButton Variant="Variant.Text" Color="Color.Error">Delete</MudButton>
@* Ghost/low-emphasis *@
<MudButton Variant="Variant.Text" Color="Color.Default">Close</MudButton>
Rule: Always specify both Variant and Color. Never leave either at default when intent matters.
Text Fields / Forms
<MudTextField
@bind-Value="model.Name"
Label="Display Name"
Variant="Variant.Outlined"
Margin="Margin.Dense" />
Use Variant.Outlined throughout for consistency with the LinesInputs border color. Margin.Dense for inline/card forms.
Cards & Surfaces
| Surface type | Elevation | Variant |
|---|---|---|
| Page section container | 0 |
— |
| Standard card | 2 |
— |
| Prominent card (agent) | 4 |
— |
| Floating dialog card | 8 |
— |
| Auth/login card | 25 |
— |
| Clickable list item | 0 + .clickable-paper CSS class |
Outlined |
<MudPaper Elevation="4" Class="pa-4">...</MudPaper>
Typography Scale
Typo.* |
Intent |
|---|---|
h5 |
Page/section title (FontWeight 600) |
h6 |
Card heading, dialog title (FontWeight 600) |
body1 |
Message bubbles, main content |
body2 |
Form labels, secondary info |
caption |
Timestamps, metadata, helper text |
button |
Not used directly — MudButton handles it |
<MudText Typo="Typo.h6" Color="Color.Primary">Agent Name</MudText>
<MudText Typo="Typo.body2" Color="Color.Secondary">@description</MudText>
Chips / Status Badges
@* Active *@
<MudChip T="string" Color="Color.Success" Size="Size.Small">Active</MudChip>
@* Inactive *@
<MudChip T="string" Color="Color.Default" Size="Size.Small">Inactive</MudChip>
@* Provider tag *@
<MudChip T="string" Color="Color.Secondary" Variant="Variant.Outlined" Size="Size.Small">@provider</MudChip>
Icons
Use Color.Primary for action icons, Color.Inherit inside buttons, Color.Default for decorative icons.
<MudIcon Icon="@Icons.Material.Filled.SmartToy" Color="Color.Primary" />
AppBar / Drawer
Already set by theme palette. In .razor files use:
<MudAppBar Elevation="0" Color="Color.Dark"> @* AppbarBackground from theme *@
<MudDrawer @bind-Open="_drawerOpen" Elevation="0" Variant="@DrawerVariant.Responsive">
Elevation="0" on both — depth comes from Divider border, not shadow.
CSS Scoped Override Rules
When a .razor.css override is unavoidable (MudBlazor doesn't expose a theme token for that element), follow these rules:
- Use only values from the Palette Reference table above — no new hex codes.
- Always target via
::deepfor child component styles. - Group overrides by component in the comment header.
/* === Nav: active link === */
.nav-item ::deep a.active {
background-color: rgba(242,89,34,0.20); /* Primary @20% opacity */
color: #F25922; /* Primary */
}
Never override in global site.css for component-specific rules — use scoped .razor.css.
Elevation & Depth System
| Level | Elevation= |
Usage |
|---|---|---|
| Flat | 0 |
App bars, drawers, nav panels |
| Raised | 2 |
Content cards, papers |
| Prominent | 4–8 |
Agent/feature cards, dialogs |
| Modal | 25 |
Auth forms, login cards |
Adding a New Component — Checklist
- Colors use
Color.*enum — no inline hex in.razormarkup - Typography uses
Typo.*enum on<MudText> - Elevation matches the tier table above
- Buttons have explicit
Variant+Color - Forms use
Variant.Outlinedtext fields withMargin.Dense - Any CSS overrides in
.razor.cssuse only palette values - No new brand colors introduced outside
Theme.cs
Theme File
See ./references/theme-tokens.md for a one-page token cheat-sheet and MudBlazor docs links.
Decide Fit First
Design Intent
How To Use It
Boundaries And Review