This commit is contained in:
2026-03-09 01:33:54 -04:00
parent 710e95055e
commit cbccbb7229
5 changed files with 20 additions and 10 deletions

View File

@@ -0,0 +1,5 @@
# Track nerv_ui_theme_20260309 Context
- [Specification](./spec.md)
- [Implementation Plan](./plan.md)
- [Metadata](./metadata.json)

View File

@@ -0,0 +1,8 @@
{
"description": "Implement a NERV UI theme for ImGui/Dear PyGui, inspired by technical/military consoles, with CRT effects and a black-void aesthetic.",
"track_id": "nerv_ui_theme_20260309",
"type": "feature",
"created_at": "2026-03-09T00:35:48Z",
"status": "new",
"updated_at": "2026-03-09T00:35:48Z"
}

View File

@@ -0,0 +1,43 @@
# Implementation Plan: NERV UI Theme
## Phase 1: Research & Theme Infrastructure [checkpoint: 4b78e77]
- [x] Task: Research existing theme implementation in src/theme.py and src/theme_2.py. 3fa4f64
- [x] Task: Create a new src/theme_nerv.py to house the NERV color constants and theme application logic. 3fa4f64
- [x] Task: Conductor - User Manual Verification 'Phase 1: Research & Theme Infrastructure' (Protocol in workflow.md) 4b78e77
## Phase 2: Base NERV Theme Implementation (Colors & Geometry) [checkpoint: 9c38ea7]
- [x] Task: Implement the "Black Void" and "Phosphor" color palette in src/theme_nerv.py. 3fa4f64
- [x] Task: Implement "Hard Edges" by setting all rounding parameters to 0.0 in the NERV theme. 3fa4f64
- [x] Task: Write unit tests to verify that the NERV theme correctly applies colors and geometry settings. de0d9f3
- [x] Task: Conductor - User Manual Verification 'Phase 2: Base NERV Theme Implementation' (Protocol in workflow.md) 9c38ea7
## Phase 3: Visual Effects (Scanlines & Status Flickering) [checkpoint: ceb0c7d]
- [x] Task: Research how to implement a scanline overlay in ImGui (e.g., using a full-screen transparent texture or a custom draw list). 05a2b8e
- [x] Task: Implement the subtle scanline overlay (6% opacity). 05a2b8e
- [x] Task: Implement "Status Flickering" logic for active system indicators (e.g., a periodic alpha modification for specific text elements). 05a2b8e
- [x] Task: Write tests to verify the visual effect triggers (e.g., checking if the scanline overlay is rendered). 4f4fa10
- [x] Task: Conductor - User Manual Verification 'Phase 3: Visual Effects' (Protocol in workflow.md) ceb0c7d
## Phase 4: Alert Pulsing & Error States [checkpoint: d9495f6]
- [x] Task: Implement "Alert Pulsing" logic that can be triggered by application error events. d9495f6
- [x] Task: Integrate Alert Pulsing with the NERV theme (shifting borders/background to Alert Red). d9495f6
- [x] Task: Write tests to verify that an error state triggers the pulsing effect in the NERV theme. d9495f6
- [x] Task: Conductor - User Manual Verification 'Phase 4: Alert Pulsing & Error States' (Protocol in workflow.md) d9495f6
## Phase 5: Integration & Theme Selector [checkpoint: afcb1bf]
- [x] Task: Add "NERV" to the theme selection dropdown in src/gui_2.py. afcb1bf
- [x] Task: Ensure that switching to the NERV theme correctly initializes all visual effects (scanlines, etc.). afcb1bf
- [x] Task: Final UX verification and performance check of the NERV theme. afcb1bf
- [x] Task: Conductor - User Manual Verification 'Phase 5: Integration & Theme Selector' (Protocol in workflow.md) afcb1bf
## Phase 6: NERV Theme Refinement (Contrast & Readability) [checkpoint: 9facecb]
- [x] Task: Fix text readability by ensuring high-contrast text on bright backgrounds (e.g., black text on orange title bars). 9facecb
- [x] Task: Adjust the NERV palette to use Data Green or Steel for standard text, reserving Orange for accents and backgrounds. 9facecb
- [x] Task: Update gui_2.py to push/pop style colors for headers if necessary to maintain readability. 9facecb
- [x] Task: Conductor - User Manual Verification 'Phase 6: NERV Theme Refinement' (Protocol in workflow.md) 9facecb
## Phase 7: CRT Filter Implementation [checkpoint: e635c29]
- [x] Task: Research and implement a more sophisticated "CRT Filter" beyond simple scanlines (e.g., adding a vignette, noise, or subtle color aberration). e635c29
- [x] Task: Implement a "CRT Filter" toggle in the theme settings. e635c29
- [x] Task: Integrate the new CRT filter into the gui_2.py rendering loop. e635c29
- [x] Task: Conductor - User Manual Verification 'Phase 7: CRT Filter Implementation' (Protocol in workflow.md) e635c29

View File

@@ -0,0 +1,37 @@
# Specification: NERV UI Theme Integration
## Overview
This track aims to implement a new "NERV" visual theme for the manual_slop application, inspired by the aesthetic of technical/military consoles (e.g., Evangelion's NERV UI). The theme will be added as a selectable option within the application, allowing users to switch between the existing theme and the new NERV style without altering the core user experience or layout.
## Functional Requirements
- **Theme Selection:** Integrate a "NERV" theme option into the existing UI (e.g., in the configuration or theme settings).
- **Color Palette:** Implement the "Black Void" aesthetic using absolute black (#000000) for the background and CRT-inspired phosphor colors:
- **NERV Orange (#FF9830):** Primary accents, headers, active borders.
- **Data Green (#50FF50):** Terminal output, "Nominal" status, standard data.
- **Wire Cyan (#20F0FF):** Structural separators, inactive borders.
- **Alert Red (#FF4840):** Error states, critical alerts.
- **Steel (#E0E0D8):** Secondary text, timestamps.
- **Hard Edges:** Configure all UI elements (windows, frames, buttons) to have zero rounded corners (Rounding = 0.0).
- **Typography:** Utilize a monospace font (e.g., IBM Plex Mono or the project's current monospace font) for all text to maintain a technical look.
- **Visual Effects:**
- **Scanline Overlay:** Implement a subtle CRT-style scanline overlay (approx. 6% opacity).
- **Status Flickering:** Add subtle flickering effects to active system status indicators.
- **Alert Pulsing:** Implement red background or border pulsing during error or critical system states.
## Non-Functional Requirements
- **Performance:** Ensure the scanline overlay and status flickering do not significantly degrade UI responsiveness or increase CPU usage.
- **Maintainability:** The theme should be implemented in a way that is consistent with the existing theme.py or theme_2.py architecture.
## Acceptance Criteria
- [ ] Users can select "NERV" from the theme selector.
- [ ] The background is solid black (#000000).
- [ ] All borders and buttons have zero rounded corners.
- [ ] The NERV color palette is correctly applied to all UI elements.
- [ ] The scanline overlay is visible and subtle.
- [ ] Active status indicators exhibit the "Status Flickering" effect.
- [ ] Errors trigger the "Alert Pulsing" effect.
## Out of Scope
- **Bilingual Labels:** Japanese sub-labels will not be implemented.
- **Layout Changes:** No radical changes to window positioning or spacing.
- **New Features:** This track is purely visual and does not add new application functionality.