GUI Phase 2 - Quick Reference Card
About 2 min
GUI Phase 2 - Quick Reference Card
Color Palette (Copy-Paste)
:root {
--magma-orange: #E65100; /* Primary buttons, CTAs, active tabs */
--neon-amber: #FF8C00; /* Hover states, toggles, highlights */
--blade-glow: #FFD580; /* Progress, sliders, focus indicators */
--void-black: #050203; /* Main background */
--deep-bronze: #26140D; /* Panel backgrounds, cards */
--mist-white: #F5F5F5; /* Text, labels, headings */
--success-green: #4CAF50; /* Connected, active, OK status */
--warning-yellow: #FFC107; /* Warnings, sync drift */
--error-red: #F44336; /* Errors, disconnected */
--info-blue: #2196F3; /* Info, loading, processing */
}Component Checklist
Files to Modify (Priority Order)
crates/gui/public/style.css- Replace blue/cyan with Magma themecrates/gui/public/index.html- Add logo, I/O panels, transport controlscrates/gui/public/app.js- Add device handlers, transport listenerscrates/gui/icons/- Create new Audio Ninja logo SVGcrates/gui/tauri.conf.json- Update icon paths
API Endpoints (Already Implemented)
GET /api/v1/input/devices List input devices (system, external)
POST /api/v1/input/select Select input device
GET /api/v1/input/status Get current input status
GET /api/v1/output/devices List output devices (speakers, headphones)
POST /api/v1/output/select Select output device
GET /api/v1/output/status Get current output status
POST /api/v1/transport/load-file Load audio file
POST /api/v1/transport/play Start playback
POST /api/v1/transport/pause Pause playback
POST /api/v1/transport/stop Stop playback
POST /api/v1/transport/mode Set transport mode (file/stream/mixed)
GET /api/v1/transport/status Get playback statusLogo Specifications
- Format: SVG (primary), PNG fallback (256x256, 512x512)
- Style: Geometric audio waveform + ninja silhouette
- Main Color: Magma Orange (#E65100)
- Accent: Neon Amber (#FF8C00)
- Highlight: Mist White (#F5F5F5)
- Placement:
/crates/gui/icons/audio-ninja-logo.svg
GUI Panels to Add
- Input Panel: Device dropdown, source type (System/App/External)
- Output Panel: Device dropdown, device type (Speaker/Headphone/USB)
- Transport Panel: File loader, play/pause/stop, progress slider, mode selector
- Layout Panel: Speaker layout visualization, presets (2.0-9.1.6), drag editor
- Calibration Panel: Sweep controls, IR visualization, filter preview
- Stats Panel: Speaker status table, bandwidth graph, latency histogram, CPU/memory, sync error, level meters
Testing Checklist
Performance Targets
- GUI Startup: <2 seconds
- UI Response: <100ms
- CPU Idle: <5%
- Memory: <100MB
- Frame Rate: 60fps minimum
- Binary Size: <10MB
Timeline (5 Weeks)
- Week 1: Logo design + CSS theme (Tasks 1-7)
- Week 2: I/O + Transport panels (Tasks 8-17)
- Week 3: Visualization + Calibration (Tasks 18-25)
- Week 4: Stats + Polish (Tasks 26-42)
- Week 5: Testing + Release (Task 43)
Git Workflow
- Create feature branch:
git checkout -b gui/phase2-logo - Implement 5 tasks per commit
- Push and create PR when phase complete
- Merge after review and testing
- Tag release:
git tag -a v0.2.0 -m "GUI Phase 2: Magma theme, I/O controls, stats dashboard"
Links
- Full Task List: GUI_PHASE2_TASKS.md
- Design System: GUI_DESIGN_SYSTEM.md
- Implementation Guide: GUI_PHASE2_SUMMARY.md
- Copilot Instructions: .github/copilot-instructions.md
Quick Commands
# Build GUI
cargo build -p audio-ninja-gui --release
# Run GUI
cargo run -p audio-ninja-gui --release
# Run daemon (GUI depends on this)
cargo run -p audio-ninja-daemon --release
# Run tests
cargo test --workspace
# Test API endpoints
curl http://localhost:8080/api/v1/input/devices
curl http://localhost:8080/api/v1/output/devicesStart Here: Task 1 in GUI_PHASE2_TASKS.md - Design professional Audio Ninja logo
Status: ✅ Planning Complete | 🚧 Ready for Implementation
