kimai-plugin-heatmap/.planning/phases/07-mode-switcher-week-mode/07-DISCUSSION-LOG.md

3 KiB

Phase 7: Mode Switcher + Week Mode - 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-04-09 Phase: 07-mode-switcher-week-mode Areas discussed: Mode Switcher UI, Week-Mode Visualization, Hours/Count Toggle, Stats Adaptation Mode: --auto (all decisions auto-selected)


Mode Switcher UI

Option Description Selected
Segmented control in header Placed in Tabler card header next to title, btn-group style
Dropdown in header Select element like the project filter
Tabs below header Tab bar between header and heatmap content

User's choice: [auto] Segmented control in header (recommended default — matches SC1 requirement and Tabler card conventions) Notes: Kimai uses Tabler UI framework. Segmented controls via btn-group are native to the design system.


Week-Mode Visualization

Option Description Selected
Horizontal heatmap cells 7 cells (one per weekday), colored by aggregate metric
Vertical bar chart 7 bars showing aggregate values per weekday
Grid matching year layout 1-row x 7-col grid reusing year-mode cell styling

User's choice: [auto] Horizontal heatmap cells (recommended default — simplest visualization revealing weekday patterns, closest to heatmap metaphor) Notes: Client-side aggregation from existing DayEntry[] data. No backend changes needed per STATE.md decision.


Hours/Count Toggle

Option Description Selected
Separate segmented control Small toggle adjacent to mode switcher in header
Merged into mode switcher Combined control (Year-Hours, Year-Count, Week-Hours, etc.)
Icon toggle button Single button that cycles between hours/count

User's choice: [auto] Separate segmented control (recommended default — keeps mode and metric concerns separate, cleaner UX) Notes: Toggles state.metric, triggers re-render without data re-fetch. Year-mode already supports metric-aware fill from Phase 6.


Stats Adaptation

Option Description Selected
Claude's Discretion Stats can adapt per mode or remain consistent
Mode-specific stats Different stat values per visualization mode
Always show year stats Keep stats unchanged regardless of mode

User's choice: [auto] Claude's Discretion (recommended default — secondary concern, implementation can optimize) Notes: Stats behavior in week-mode is a detail best resolved during implementation.


Claude's Discretion

  • Week-mode cell sizing and spacing
  • Week-mode cell click behavior
  • Stats row adaptation per mode
  • Exact Tabler CSS classes for controls
  • Mode switch animation/transitions

Deferred Ideas

None — discussion stayed within phase scope