Files
familysync/.planning/phases/02-calendar-display/02-DISCUSSION-LOG.md
T

3.3 KiB

Phase 2: Calendar Display - 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-04 Phase: 2-Calendar Display Areas discussed: Visual model / theming, Default view & per-device, Color & shared-vs-personal, Event detail density


Visual model → Theming architecture

Initial framing (pick one aesthetic) was reformulated after the user clarified they want a modular approach: start clean, but be able to switch to a Skylight/tablet "display" theme later as family members are added — the real end goal being a legible tablet wall-display.

Option Description Selected
Token layer + clean theme only Design tokens (CSS vars + theme object); ship only clean; future display theme = token swap; no switcher UI yet
Token layer + two themes + toggle now Build clean + first-cut display theme + runtime toggle now
Hardcode clean, refactor later No abstraction; retrofit theming at v2

User's choice: Token layer + clean theme only. Notes: Claude flagged that building two themes + a switcher now is v2 gold-plating (wall-display is deferred in PROJECT.md); the disciplined "modular" is a token layer with one clean theme. Also agreed the clean theme must stay legible/informational at tablet distance (D-03), and the color model must scale past two members.

Default view & per-device

Option Description Selected
Phone→Agenda, Tablet/Desktop→Month Device-adaptive default; remember last-used per device
Month everywhere Consistent grid; cramped on phone
Agenda everywhere List-first; underuses tablet/desktop

User's choice: Phone→Agenda, Tablet/Desktop→Month.

Color & shared-vs-personal

Option Description Selected
Per-member fill + reserved shared color Phase-1 member colors; shared calendar gets one distinct color
Per-member fill + shared marked by icon Icon instead of reserved color
Per-calendar color Hue per Fastmail collection, member secondary

User's choice: Per-member fill + reserved shared color. Notes: Per-member show/hide filter deferred until >2 members; a color legend is shown.

Event detail density

Option Description Selected
Informational + tap-to-expand Bars w/ title (month), time+title (week/day), +location (agenda); read-only popover reused for Phase 3 edit
Minimal Dots + agenda titles, no popover
Maximal inline time+title+location everywhere

User's choice: Informational + tap-to-expand.

Claude's Discretion

  • Rendering library choice (must be token-styleable, headless-friendly, all 4 views, server-expanded occurrences, good iOS touch) — researcher decides.
  • Week start day — default Sunday (US locale), exposed as a token.
  • Skeleton/loading + empty states — build, polished for the "slick" constraint.

Deferred Ideas

  • Tablet/wall-display kiosk mode + Skylight display theme + runtime theme-switcher — v2.
  • Per-member show/hide filter — when membership > 2.
  • Secondary timezone toggle — v1.x.
  • Single-occurrence recurring edits — v1.x.