- Refactored View() display to a single wide row inside the LCD panel:
- Leading base indicator on the left: [BIN], [HEX], etc. (flashes on successful cycle)
- Number (or CERR) right-aligned in the remaining maximal width (spans full available inside the card)
- LCD container uses full dispW (based on terminal width) + vertical padding for visual weight
- CERR still flashes the number slot (base label remains visible on left)
- Keypad grid and hint now also respect the wide dispW and are centered under the display
- Updated docs/UI_DESIGN.md and ARCHITECTURE.md with the new integrated layout (replaced old separate two-row description and ASCII)
- Matches user request: main display spans full maximal width; base begins the main display row (e.g. [ [BIN] [ 3465... ] ] inside the panel)
This is iterative polish on the phase 3 spike. Paper trail updated.
- internal/ui/ui.go: full Bubble Tea App
- Large tall LCD-style number area + small current-base row (only the active label highlighted)
- CERR flash (~600ms color 63) on BASE when value is non-integer (exact policy from spec)
- 140ms key action flashes (same style as gostations volume/skip/stop)
- Minimal usable keypad grid (digits, + - * / = . +/- MOD C AC, prominent BASE button)
- Tab (and button) drives engine.CycleBase()
- Content-sized centered card (lipgloss.Place + rounded 63 border), subtle 238 inners
- Minimal non-wrapping hint row
- Reuses gostations lipgloss idioms (Join*, Width/Align/Center, flashStyle, NormalBorder, etc.)
- main.go: now actually launches tea.NewProgram (with AltScreen)
- Binary: build/gralculator is runnable
- Demonstrates: enter 23/6 = (or 1/3), press Tab → CERR blink, base stays DEC; integer values cycle cleanly and reformat (HEX etc.)
All three phases complete. Architecture + design notes live in docs/. Full commit history for backtracking.