Files
calendula/app
makiolaj e720fd68ba Seat each hour in its own cell (#113)
The timeline's hour lines become a per-hour grid, in the month grid's visual
language: 24 rounded cells on surfaceContainer, separated by a 2dp gap that
reveals the surface behind them, so the hour boundary is negative space rather
than a stroke. The column's Card takes surface and the container colour moves
onto the cells.

- `HourLines.kt` becomes `HourGrid.kt`: `hourGridCells` draws the cells in the
  same `drawBehind` the lines used, under the blocks and above the column.
- The cell corner is the event chip's 4dp, not the month grid's 12dp, and is
  clamped to half the shorter side so a fit-the-day sliver or a narrow week
  column can't round into a lozenge.
- The hour gutter's label lift comes off its own line height instead of a
  hardcoded -6dp, so label and seam line up at any font scale.
- The preference keeps its stored key and its string keys; only the English
  source text and the Kotlin names change (`showHourLines` → `showHourGrid`).

Block placement is not left untouched, as the issue expected: a block gives up
the same half-gap at each end the cells do, or an on-the-hour event overhangs
the seam into its neighbours' cells. That inset follows through to the drag —
the floating copy takes the same gap off, so it stays the size of the block it
lifted off (#267), and the grab is measured off the placement rather than the
seated position. An end cut at midnight keeps none of it and stays against the
column edge.

Closes #113
2026-09-07 18:19:51 +02:00
..
2026-09-07 18:19:51 +02:00
2026-09-02 12:44:40 +02:00
2026-09-02 12:44:40 +02:00