ethos / docs /context /frontend_spec.md
Lior-0618's picture
refactor: restructure repo into api/ proxy/ web/ training/ docs/
a265585
## visual identity
- **typography:** jetbrains mono for mono font, lato for sanserif
- **componentry:** shadcn ui base.
- **style profile:** maia (radix-maia) — characterized by soft rounding, high-contrast surfaces, and subtle glassmorphism.
- **iconography:** phosphor icons (thin or regular weight).
## layout & components
1. **header:** metadata bar showing filename, session duration, and a global "Export" button (JSON/CSV).
2. **diarized transcript (left panel):** structured list of utterances grouped by speaker. each bubble contains the text and an "emotion chip" that reveals the dominant tags on hover.
3. **analytics dashboard (right panel - "the quad-view"):**
- **russell’s circumplex:** a 2D coordinate grid with a tracking point moving between valence and arousal axes.
- **plutchik’s wheel:** a radar chart showing intensities across primary emotions.
- **prosodic meters:** vertical "V-U" style meters for pitch (Hz), jitter (%), and speech rate (wpm).
- **pad space:** 3D sliders representing pleasure, arousal, and dominance indices.
4. **emotional timeline (bottom panel):** horizontal waveform view with color-coded sentiment "heatmaps" (e.g., a crimson stretch for stress). includes playback controls and a zoom slider.
5. **recorder hub (center):** circular "record" button with a real-time reactive glow and oscilloscope-style waveform animation.
## interactions
- **diarization selection:** clicking a speaker avatar filters the analytics to only show their emotional profile.
- **segment scrubbing:** clicking a transcript segment syncs the timeline and the quad-view analytics to that specific moment.
- **real-time playback:** users can replay specific chunks of audio with an overlay showing the live-calculated emotion data.
## technical requirements
- **real-time synchronicity:** ensuring the transcription, timeline, and 4-way analytics update in perfect sync with sub-500ms latency.
- **framing:** Next.js with Framer Motion for premium transitions.
- **ui library:** shadcn/ui with maia theme configuration.
- **icons:** @phosphor-icons/react.