Flush tile grid + macOS-style seam pill for resizing adjacent tiles

Tiles now sit with zero gap (their 1px borders are the only seam) and the
grid runs edge to edge. Wherever two tiles share a vertical edge, an
invisible strip sits on the seam; hovering reveals a small grab pill
(split-view style) and dragging it moves the shared edge, trading width
between the two tiles. The combined span is preserved, both tiles' min
sizes are honored, and a third tile sitting behind part of the seam
blocks the drag instead of being overlapped. Pills hide during tile
drags/resizes and rebuild for the new geometry on release; seam sizes
persist with the layout. Also fixes cellMetrics treating a 0px grid gap
as falsy and falling back to 10px.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNYUv9EyrGSFmCnmH7WYKH
This commit is contained in:
Claude
2026-08-30 16:16:32 +00:00
parent b14bc4a182
commit af46499d92
3 changed files with 144 additions and 8 deletions
+3 -1
View File
@@ -63,7 +63,9 @@ are written by the app itself.
- **+ Add tile** — add any enabled module; multiple tiles of the same
module are fine (e.g. two transcripts filtered to different channels).
- Drag a tile by its **header** to move it; drag the **corner handle** to
resize; **✕** removes it.
resize; **✕** removes it. Tiles sit flush — when two share an edge, hover
the seam and a small grab pill appears; drag it to trade width between
the two tiles (macOS split-view style).
- The **gear** on a tile holds per-tile settings (filters, text size,
display options) — these belong to this browser's layout, not the server.
- **Layout ▾** — save the current arrangement to the server under a name,