Move project description and tech stack research from CLAUDE.md into openspec/specs/project/ and openspec/specs/stack/. Slim CLAUDE.md to a pointer file. Populate config.yaml with project context. Add OpenSpec CLI skills and commands. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
51 lines
1.7 KiB
Markdown
51 lines
1.7 KiB
Markdown
## Purpose
|
|
|
|
Define MudBlazor installation, theming, and provider configuration for the Client project.
|
|
|
|
## Requirements
|
|
|
|
### Requirement: MudBlazor package installed
|
|
|
|
The Client project SHALL have MudBlazor 9.2.0 installed as a NuGet dependency.
|
|
|
|
#### Scenario: Package reference present
|
|
|
|
- **WHEN** the Client project is built
|
|
- **THEN** MudBlazor 9.2.0 is resolved as a dependency
|
|
|
|
### Requirement: MudBlazor services registered
|
|
|
|
MudBlazor services SHALL be registered in the Client's DI container via `AddMudServices()`.
|
|
|
|
#### Scenario: Services available
|
|
|
|
- **WHEN** the application starts
|
|
- **THEN** MudBlazor services (snackbar, dialog, etc.) are available for injection
|
|
|
|
### Requirement: MudBlazor assets loaded
|
|
|
|
The Client's `index.html` SHALL include MudBlazor CSS, JS, and font references.
|
|
|
|
#### Scenario: Styles and scripts present
|
|
|
|
- **WHEN** the application loads in the browser
|
|
- **THEN** MudBlazor CSS (`_content/MudBlazor/MudBlazor.min.css`), JS (`_content/MudBlazor/MudBlazor.min.js`), and Material Design Icons font are loaded
|
|
|
|
### Requirement: MudBlazor layout providers
|
|
|
|
The app root SHALL include `MudThemeProvider`, `MudPopoverProvider`, and `MudDialogProvider` so MudBlazor components function correctly.
|
|
|
|
#### Scenario: Providers present
|
|
|
|
- **WHEN** any MudBlazor component is rendered
|
|
- **THEN** it functions correctly because the required providers are in the component tree
|
|
|
|
### Requirement: MudBlazor layout replaces Bootstrap
|
|
|
|
The application layout SHALL use MudBlazor layout components (`MudLayout`, `MudAppBar`, `MudMainContent`) instead of the current Bootstrap navbar.
|
|
|
|
#### Scenario: Layout renders with MudBlazor
|
|
|
|
- **WHEN** any page is displayed
|
|
- **THEN** the page is wrapped in a MudBlazor layout with an app bar showing the application name
|