From blazor-skill
Use this skill when implementing Blazor pages, components, forms, or any Blazor UI work. Covers render modes (InteractiveServer, InteractiveWebAssembly, InteractiveAuto, Static SSR), component lifecycle, state management, JS interop, routing, styling (CSS isolation, .razor.css), design aesthetics, DI, auth (AuthorizeView, Identity), EditForm, security (CSRF, XSS, CSP, secure token storage, SignalR circuit security), external authentication providers (OAuth, Google, Microsoft, Entra, GitHub, Discord), two-factor authentication (2FA, TOTP, QR codes, authenticator apps, recovery codes), logging (structured logging, ErrorBoundary, circuit diagnostics, WASM log relay), and common UX patterns (modals, toasts, Virtualize). Produces visually distinctive output that avoids generic AI aesthetics. Invoke when: creating or modifying .razor files, working with EditForm or input components, configuring render modes, debugging Blazor-specific issues (event handlers not working, prerendering problems, auth issues), setting up security (CSRF protection, CSP headers, XSS prevention), configuring OAuth/OIDC providers, implementing 2FA/TOTP with QR codes, adding structured logging to components, or when the user asks about Blazor patterns.
How this skill is triggered — by the user, by Claude, or both
Slash command
/blazor-skill:blazorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are implementing Blazor components. Read the relevant reference docs below based on what you're building. **Always check render mode first** — it's the #1 source of bugs.
You are implementing Blazor components. Read the relevant reference docs below based on what you're building. Always check render mode first — it's the #1 source of bugs.
Before coding any UI, commit to a bold aesthetic direction. Consider the purpose, audience, and tone — then choose a clear visual identity (minimal, maximalist, editorial, brutalist, etc.) and execute it with precision. Unless brand guidelines dictate otherwise, avoid generic AI aesthetics: no Inter/Roboto defaults, no purple gradients on white, no cookie-cutter card grids. Every project deserves a fresh, intentional design. See 12-design-aesthetics.md for full guidance on typography, color, motion, and spatial composition in Blazor.
If event handlers don't work, CHECK THE RENDER MODE FIRST — starting with <Routes> in App.razor. Per-page @rendermode directives are silently ignored if <Routes> has no render mode.
Read the relevant docs based on your task:
@onclick, @oninput) are INERT. Add a render mode. Check App.razor first: <Routes @rendermode="InteractiveServer" /> must be set, or per-page @rendermode directives do nothing.[PersistentState] (.NET 10+) or PersistentComponentState.AuthenticationStateProvider instead.AddScoped.InvokeAsync(StateHasChanged).AddCascadingValue in DI instead.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub cpike5/cpike-agent-skills --plugin blazor-skill