feat(ui/graph): optimize graph dynamics, immersive reader, and code blocks
- Fix #16: Implement D3.js transitions and active state badges for Knowledge Graph. - Fix #12: Implement Immersive Reader Layout with Merriweather typography. - Fix #20: Professional code block styling with high contrast and monospace fonts. - Resolve DI runtime error in WASM by adding dummy services. - Replace generic 'Not Found' message with Nexus preloader. - Enforce 'no async void' architecture across UI services.
This commit is contained in:
@@ -29,9 +29,12 @@ This skill defines the architectural guardrails for the NexusReader project to e
|
||||
- Use `FluentResults` (`Result<T>`) for all Application services and handlers.
|
||||
- Avoid throwing exceptions for expected business failures; use `Result.Fail()`.
|
||||
|
||||
### 4. MediatR Patterns
|
||||
- **Queries**: Read-only operations. Should return `Result<T>`. Use `AsNoTracking()` in EF Core.
|
||||
- **Commands**: State-changing operations. Should return `Result` or `Result<T>`.
|
||||
+
|
||||
+### 5. Async Operations (Zero Tolerance for `async void`)
|
||||
+- All asynchronous operations MUST return `Task` or `ValueTask`.
|
||||
+- Event handlers MUST use `Func<Task>` or async-compatible patterns.
|
||||
+- UI components MUST await all service calls and use `InvokeAsync(StateHasChanged)` for state updates within async contexts.
|
||||
|
||||
## Audit Scripts
|
||||
- [ArchCheck.sh](scripts/arch_check.sh): A shell script to scan for illegal cross-layer imports.
|
||||
|
||||
@@ -8,4 +8,7 @@ description: D3.js standards for Knowledge Graph
|
||||
- **JS Interop:** Use ES6 modules and `IJSObjectReference`.
|
||||
- **Responsiveness:** SVG must use `viewBox` for fluid portrait scaling.
|
||||
- **Visuals:** Use CSS variables (`--nexus-neon`) for node styling.
|
||||
- **Transitions:** Enforce smooth 500ms transitions using the D3.js General Update Pattern (`.join()`).
|
||||
- **Animations:** Implement "Neon Flash" entry animations for newly discovered knowledge nodes.
|
||||
- **Contextual Highlight:** Support node/link dimming to emphasize the current reading context.
|
||||
- **Events:** JS emits events (like `nodeClicked`) caught by Blazor via `DotNetObjectReference`.
|
||||
@@ -22,7 +22,7 @@ description: Design System & Component rules for Blazor
|
||||
- Light Mode: `--nexus-bg` (`#f8f9fa`), `--nexus-card` (`#ffffff`).
|
||||
- **Typography:**
|
||||
- UI Elements: `Inter` (Sans-Serif) for controls, menus, and labels.
|
||||
- Reading Content: `Merriweather` (Serif) for books and articles to ensure high readability.
|
||||
- Reading Content: `Merriweather` (Serif) with `line-height: 1.65` and `letter-spacing: -0.01em` for high readability.
|
||||
- **Effects:**
|
||||
- Subtle neon glows (`box-shadow: 0 0 15px rgba(0, 255, 153, 0.3)`).
|
||||
- Glassmorphism for overlays and modals.
|
||||
@@ -30,6 +30,11 @@ description: Design System & Component rules for Blazor
|
||||
- **Adaptive Layouts:**
|
||||
- Support `.platform-mobile` and `.platform-desktop` context classes.
|
||||
- Handle safe-area insets (`--safe-area-inset-*`) for mobile devices.
|
||||
- **Immersive Reader (Zen Mode):**
|
||||
- Centered content flow: `max-width: 800px`, `margin: 0 auto`.
|
||||
- Paper-white background: `#F9F9F9` for light mode reader canvas.
|
||||
- Dedicated Scrollbars: Custom styled, thin scrollbars with `--nexus-neon` accents.
|
||||
- Reachability: Large `padding-bottom` (e.g., `15rem`) to ensure comfortable reading of end-of-page content.
|
||||
|
||||
- **Accessibility (A11y):**
|
||||
- Touch Targets: Min `44x44px` on mobile (enforced via CSS variables).
|
||||
|
||||
Reference in New Issue
Block a user