As a family member I want to tap a month bar in a dense /zeitstrahl year-strip to drill into that month's letters #830

Open
opened 2026-06-13 19:13:15 +02:00 by marcel · 0 comments
Owner

Per-month drill-down inside the /zeitstrahl dense-year strip

Milestone: Zeitstrahl — Family Timeline (#14)
Deferred from: #779. Canonical visual spec: docs/specs/zeitstrahl-final-spec.html §3 (✉ 187 Briefe · Monats-Dichte · antippen → Monate → Briefe ▾).

Context & Why

For a year dense with letters, #779 renders a YearLetterStrip with a 12-month density sparkline and an expand-to-all-letters toggle (REQ-012). The mockup hints at a deeper interaction — tap a single month bar → filter to that month → its letters ("antippen → Monate → Briefe"). #779 fenced this out as a separable interaction, not a data gap: the strip already has the per-month counts (monthHistogram), so this is purely additional frontend interaction, deferred to keep #779's surface bounded.

Scope

  • Make each of the 12 sparkline bars an interactive, keyboard-focusable (≥44px effective target) control.
  • Tapping/activating a bar reveals only that month's LetterCards (a level between the collapsed strip and the full-year expand).
  • Accessible: bars get aria-labels (month + count), respect prefers-reduced-motion.
  • Reuses the existing lib/timeline/ strip + LetterCard + shared Sparkline from #779; no backend change (per-month counts already client-side).

Out of Scope

  • Grouping toggle, filters (#8).

Follow-up to #779. Harden to EARS REQ-NNN + ACs + RTM before implementation.

# Per-month drill-down inside the /zeitstrahl dense-year strip **Milestone:** Zeitstrahl — Family Timeline (#14) **Deferred from:** #779. **Canonical visual spec:** `docs/specs/zeitstrahl-final-spec.html` §3 (`✉ 187 Briefe · Monats-Dichte · antippen → Monate → Briefe ▾`). ## Context & Why For a year dense with letters, #779 renders a `YearLetterStrip` with a 12-month density **sparkline** and an **expand-to-all-letters** toggle (REQ-012). The mockup hints at a deeper interaction — **tap a single month bar → filter to that month → its letters** ("antippen → Monate → Briefe"). #779 fenced this out as a *separable interaction, not a data gap*: the strip already has the per-month counts (`monthHistogram`), so this is purely additional frontend interaction, deferred to keep #779's surface bounded. ## Scope - Make each of the 12 sparkline bars an interactive, keyboard-focusable (≥44px effective target) control. - Tapping/activating a bar reveals **only that month's** `LetterCard`s (a level between the collapsed strip and the full-year expand). - Accessible: bars get `aria-label`s (month + count), respect `prefers-reduced-motion`. - Reuses the existing `lib/timeline/` strip + `LetterCard` + shared `Sparkline` from #779; **no backend change** (per-month counts already client-side). ## Out of Scope - Grouping toggle, filters (#8). _Follow-up to #779. Harden to EARS REQ-NNN + ACs + RTM before implementation._
marcel added this to the Zeitstrahl — Family Timeline milestone 2026-06-13 19:13:15 +02:00
marcel added the P3-laterui labels 2026-06-13 19:13:25 +02:00
Sign in to join this conversation.
No Label P3-later ui
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marcel/familienarchiv#830