Foundations & UI
UI Refinement Round
Five web-only refinements from on-device feedback: recall sources collapse behind a tap, suggested-reply chips become legible, Resolve hides on passive updates, the status dot becomes an activity/hat pill, and Intel/Loops/R&D converge on one hairline-list register.
Situation
Alex's on-device review of the recall Sources feature, suggested-reply pills, the Updates screen, the home status dot, and the freshly-redesigned Intel/Loops/R&D surfaces surfaced five independent rough edges — none requiring a Worker or DB change.
The chips in particular were a real accessibility fail (oxblood text on oxblood border, roughly 2:1 contrast on the dark theme), and the three work surfaces (Intel, Loops, R&D) had each accumulated their own card/pill/label treatment despite being conceptually one family.
Key decisions
Sources behind a tap
Recall sources collapse behind a quiet "Sources · N" gold text-button footnote, collapsed by default, that toggles the existing SourcesFooter list.
Legible chips
Suggested-reply pills change from oxblood-on-dark (illegible, ~2:1) to a grey fill with white text, clearing WCAG AA (~13:1).
Resolve gated to actionable kinds
The Updates Resolve button shows only for kind ∈ {calendar, mention}; briefing/EOD items are informational and get no Resolve action.
Status dot → activity·hat pill
The bare status dot becomes a mono two-letter pill (e.g. W·MC) showing activity and hat; attention renders as an oxblood ring rather than changing the dot's fill, and it stays tappable to open the status sheet.
One hairline-list register
Intel, Loops, and R&D converge on transparent hairline-separated rows (R&D drops its card treatment), serif primary titles, outline status pills, and one shared CTA-button treatment.
Architecture
loadMode(), mapped via new ACTIVITY_ABBR/HAT_ABBR constants.Risks & guardrails
Wrong mode shown before load
The status pill shows a neutral placeholder before loadMode() resolves or if it fails — never a guessed/wrong activity-hat pair.
Abbreviations need full-word labels
The pill's aria-label spells out the full words (e.g. "Working, Maths Circle — open status") even though the visible text is abbreviated.
Contrast on new outline pills
Harmonized outline pill colours (amber/green/oxblood/muted per status) must clear the 3:1 graphic-object threshold, checked in the explicit design-consistency + a11y pass.
Delivery
Task 1
Sources behind a tap.
Task 2
Legible chips (grey fill, white text).
Task 3
Updates — Resolve only on actionable kinds.
Task 4
Status pill (activity · hat).
Task 5
Intel/Loops/R&D hairline-list harmonisation.
Task 6
Design-consistency + a11y pass + verify.
Out of scope
docs/superpowers/specs/2026-06-17-ui-refinement-round-design.mdplan ·
docs/superpowers/plans/2026-06-17-ui-refinement-round.md