# Phase 17: UI Optimization & Polish - Discussion Log > **Audit trail only.** Do not use as input to planning, research, or execution agents. > Decisions are captured in CONTEXT.md — this log preserves the alternatives considered. **Date:** 2026-06-17 **Phase:** 17-ui-optimization-polish **Areas discussed:** Scope breadth, Fix technique, Regression guard, Phase shape, Branding asset ownership, Dark-mode depth, Styling-refresh boundary, Logo/brand direction --- ## Phase shape / sequencing Initial framing was a CSS-only layout-polish phase. Mid-discussion the user expanded scope to also include branding/logo assets (started but unfinished, incl. favicon), groundwork for themes (dark mode), and a modern styling refresh. This pushed past the ROADMAP's original "CSS/layout only, not a redesign" boundary, so scope was re-negotiated. | Option | Description | Selected | |--------|-------------|----------| | One phase, four workstreams (A layout + B branding + C dark mode + D styling) | Keep everything in Phase 17 | | | Split — keep layout + branding + token groundwork; defer dark theme & styling | Bound the phase, route the rest to backlog | ✓ | | One phase but styling "light" | A+B+C full, D incidental only | | **User's choice:** "spin dark mode and styling into /gsd-capture --backlog. We do the rest in the phase." → Phase 17 = layout polish + branding + theme-token groundwork. Shipped dark theme → backlog 999.20; styling refresh → backlog 999.21 (future milestone). **Notes:** ROADMAP Phase 17 goal/scope updated to match; two backlog items created and committed (916fb34). ## A — Scope breadth (layout) | Option | Description | Selected | |--------|-------------|----------| | Seed defect + targeted sweep | Fix overlap, then run Phase 7 layout.spec checklist across phone routes | ✓ (implied by keeping the layout workstream) | | Seed defect only | Fix just the bottom-bar overlap | | | Broad small-viewport audit | Free-form audit of every phone screen | | **User's choice:** Layout workstream retained as the bounded, checklist-driven sweep (D-01). **Notes:** Phase 7 `layout.spec.ts` assertions are the checklist. ## A — Fix technique & regression guard | Option | Description | Selected | |--------|-------------|----------| | Shared bar-height token + padding / inline calc / shrink column | CSS technique for the overlap | (researcher decides) | | Add overlap assertions to layout.spec / manual playwright-cli / both | Regression guard | (researcher decides) | **User's choice:** "5 - have the researcher decide." **Notes:** Delegated to research/planning (D-02). Default lean noted: shared `--bottom-chrome-h` token + CI assertion, but researcher decides on the merits. ## B — Branding asset ownership | Option | Description | Selected | |--------|-------------|----------| | AI-generate in-phase | Claude generates logo + full icon set, wires in, user approves | ✓ | | User supplies final art | User provides logo, Claude derives icon set | | | Generate placeholders now, real art later | Stopgap improved mark via the seam | | **User's choice:** "2a" — AI-generate in-phase. **Notes:** No existing logo draft found beyond the "FS" placeholder + stub icons. Full icon set incl. proper maskable + favicon.ico/svg (D-03/D-04/D-05). ## C — Dark-mode depth | Option | Description | Selected | |--------|-------------|----------| | Groundwork only | Themeable token restructure, light stays default; dark flippable later | ✓ | | Ship working dark mode | Finished dark theme via prefers-color-scheme | | | Ship dark mode + in-app toggle | Plus persisted light/dark/system toggle | | **User's choice:** "3a" — groundwork only. Combined with "spin dark mode into backlog," the *token restructure* stays in-phase; the *shipped dark theme + toggle* go to backlog 999.20 (D-06). **Notes:** Light remains the sole shipped theme this phase. ## D — Styling-refresh boundary | Option | Description | Selected | |--------|-------------|----------| | In-system polish | Modernize within existing design system | | | Component-level refresh | Rework high-visibility surfaces | | | Broader visual overhaul | Open-ended modern restyle | (deferred) | **User's choice:** "Dont do 4 - that goes into future milestone." → routed entirely to backlog 999.21. **Notes:** Redesign risk; own track in a future milestone. ## Logo / brand direction **User's choice (free-text):** "FamilySync is the brand — family orientated. I like caricature family kind of vibes, warm tones, rounded corner sort of thing. Something that makes you feel comfortable and at home." **Notes:** Captured verbatim into CONTEXT Specific Ideas as the acceptance lens for generated logo/icon options. Current theme-color `#4A90D9` (cool blue) may be revisited toward warm tones within light-theme scope. --- ## Claude's Discretion - Fix technique + regression-guard mechanism for the layout overlap (delegated to researcher — D-02). - Specific small-viewport issues surfaced by the `layout.spec` sweep (fix as found, no behaviour change). - Logo visual execution within the brand brief, subject to user approval at a checkpoint. ## Deferred Ideas - Shipped dark theme + light/dark/system toggle → backlog **999.20**. - Modern visual styling refresh → backlog **999.21** (future milestone). - (Reviewed, not folded) `2026-06-10-gitea-ci-regression-and-docker-publish.md` — weak keyword match, already-shipped CI work, unrelated to this UI phase. --- ## Process note — interactive question tool blocked The `AskUserQuestion` tool returned "Permission denied by hook" during this discussion. Investigation: no configured PreToolUse hook or permission rule matches `AskUserQuestion` (user-settings matchers are only `Write|Edit`/`Bash`/`MultiEdit`; `defaultMode: bypassPermissions`; no managed settings). The block correlates with an active background subagent (the Phase 19 `--fix --auto` fixer) running concurrently — interactive questions are suppressed while a background agent is live. Discussion proceeded via the plain-text numbered-list fallback.