feat(kanban): trim chrome to maximize horizontal space at narrow widths - #241
Conversation
Strip column-level and screen-level chrome down to the minimum needed for
visual grouping so narrow terminals (~80 cols) stop wasting space — and
overflowing — on borders/padding/margins.
Changes:
- Drop column paddingX, marginRight, and the outer root paddingX.
- Remove the inter-group separator entirely; plan vs implementation grouping
is now signaled by the column accent colors (blue / magenta) alone. Side
effect: dropping the separator's flexGrow={1} also stops the wide-terminal
mid-board void.
- Tighten the card secondary-text / approve-hint indent and chip marginLeft
from 4 to 2.
- Lower MIN_COLUMN_WIDTH from 20 to 12 so narrow terminals shrink instead of
overflowing the row.
- Recompute the slug-truncation, secondary-text-wrap, pendingNew, and title-
truncation width budgets against the new chrome (named via
COLUMN_BORDER_COLS / SLUG_ROW_GUTTER / SECONDARY_ROW_GUTTER).
- Keep paddingX={1} on the title bar and footer only (no border to ground them
against the terminal edge).
Test:
- Add a per-size width-fit assertion to tracker-board-size.test.mjs so
rendered rows never exceed termCols at any SIZE_COMBOS entry.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…rims Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code Review — feat(kanban): trim chrome to maximize horizontal space at narrow widthsOverviewThis PR removes fixed chrome (column padding, margins, and the inter-group separator) from the kanban board, replaces magic numbers with named constants, tightens card-level gutters from 4→2 spaces, lowers ✅ Strengths
|
Surface the wide-terminal slack inline so future readers don't mistake the column cap for a layout bug. Addresses PR #241 review note. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code Review — feat(kanban): trim chrome to maximize horizontal space at narrow widthsOverviewThis PR strips fixed chrome from the kanban board — per-column Code Quality and Style ✅Named constants are a clear improvement. Replacing the inlined The width formula simplification is correct and cleaner. Moving from
Minor style note: The project convention (AGENTS.md) says to prefer a single-line comment when one is genuinely warranted. The two 3-line blocks near the new constants ( // Wide terminals: columns cap at MAX_COLUMN_WIDTH, so the row may not reach the terminal edge — accepted trade-off.
const MAX_COLUMN_WIDTH = 50;
// colWidth is border-box (1 left + 1 right border, no paddingX); card lines add SLUG_ROW_GUTTER or SECONDARY_ROW_GUTTER inside.
const COLUMN_BORDER_COLS = 2;Potential Bugs / Issues
Title bar / footer offset vs. board columns. The title bar and footer retain Performance ✅No performance implications — this is purely layout/rendering arithmetic. The removal of the Security ✅No security concerns — pure UI layout changes with no external I/O. Test Coverage ✅The new One suggestion: the PR description flags a manual reviewer action item — "Spot-check at ≥ 200-col terminal — board now ends at the column-cap width with no center void." It would be worth confirming the SummarySolid, well-scoped change. The math is correct, the named constants are a genuine improvement over magic numbers, and the new regression test directly covers the fix. The two minor points above (multi-line comments, MIN_COLUMN_WIDTH overflow at high column counts) are low priority — the first is a style nit, the second is guarded by the new test for the tested configurations. Happy to approve pending the wide-terminal visual spot-check. |
Match the one-line-when-warranted style from AGENTS.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Code Review — feat(kanban): trim chrome to maximize horizontal space at narrow widthsOverviewThis PR removes per-column padding/margin, the inter-group separator, and the outer root padding from the kanban board, then re-derives the width budget math from named constants. The result is a tighter layout that fits the default 5-column board in an 80-col terminal without overflow. A new terminal E2E assertion guards against regressions. Code Quality ✅
Potential Issue — Test width measurement with ANSI codes
|
Summary
paddingX/marginRight, drop the outer rootpaddingX, and remove the inter-group separator entirely. Plan vs implementation grouping is now signaled by the existing column accent colors only.marginLeftfrom 4 → 2 cols, and lowerMIN_COLUMN_WIDTHfrom 20 → 12 so the default board fits cleanly inside 80-col terminals.flexGrow={1}also closes the wide-terminal mid-board void.Test plan
npm run typecheck— cleannpm test— 815 pass / 78 suitesnpm run test:terminal— 294 pass / 1 skipped, including a new per-size width-fit assertion at everySIZE_COMBOSentry (10×80 through 40×160)🤖 Generated with Claude Code