Repository source: docs/plans/archive/board_list_column_reflow_step4_implementation_summary.md
Step 4: Implementation Summary — Board List Column Reflow
Stage 1 - Board From/Date column width fix
Changes:
templates/partials/paned_board_thread_list.php: added adata-paned-board-list-paneattribute to the outer.paned-list-panediv, following the same scoping precedent already used for Users (data-paned-users-list-pane), so Board-only CSS overrides don't leak into Activity (which shares the base.paned-list-from/.paned-list-dateclasses).public/assets/forte.css: added[data-paned-board-list-pane] .paned-list-from-head/.paned-list-from { width: 7rem; }and.paned-list-date-head/.paned-list-date { width: 8rem; }, overriding the base 9rem/13rem fixed widths for Board only.
Verification:
php -lon the template — no syntax errors.Started a throwaway local server on
127.0.0.1:8010(stopped after verification) and used Playwright to screenshot/measure/forteat desktop (1280px), half-wide (700px), and narrow (400px) viewports.Desktop/half-wide: From/Date columns visibly tighter (7rem+8rem = 15rem vs the old 9rem+13rem = 22rem), freeing ~7rem (~112px) to Subject; "5 minutes ago" (the longest common relative string) renders in full, no truncation.
Narrow (400px): Subject still squeezes to a single-line sliver, same as before this change — confirmed not worse, this is the pre-existing bug tracked separately under
forte_mobile_friendly_step1_solution_assessment.md.Confirmed no page-level or pane-level horizontal overflow at any of the three widths (
document.documentElement.scrollWidth === window.innerWidth).
Notes:
Approach pivot during implementation, documented for future reference. Step 1/3 chose "size From/Date to their actual content" (Option B), but that turned out to be unachievable with plain flexbox width rules:
.paned-list-headand each.paned-list-roware independent flex containers (siblings), so a per-row content-sized column computes its width independently per row, breaking column alignment down the list.Tried switching just Board's list (via the same
data-paned-board-list-panescoping) to a CSS table (display:table/table-row/table-cell), which does share column-width computation across all rows. This fixed alignment but caused two regressions, found via the same Playwright measurement approach:The base
.paned-list-row { white-space: nowrap; }rule, safe under flexbox (paired withoverflow:hidden;text-overflow:ellipsison Subject), became unsafe under table auto-layout:nowrapcontent sets a column's minimum width to its full single-line text, so a long subject line ballooned the whole table width, pushing Date/Replies/Score off-screen. Fixed by letting Subject wrap (white-space:normal), which surfaced regression 2.At narrow (400px) width, with limited leftover space, Subject wrapped character-by-character (one letter per line) instead of flexbox's single-line truncated sliver — worse than the pre-existing narrow-width bug it was supposed to not worsen.
Separately,
display: tableas a flex item didn't respect the pane'sflex: 1 1 40%; min-height: 0constraint the way a block/flex box does — the list pane expanded to its full ~13,600px content height instead of staying clipped, pushing the content pane thousands of pixels below the fold (reported directly by the user as "the third pane is off-screen").
A real fix for the table approach exists (wrap the table in an additional block-level scrollable container, since a table itself doesn't reliably respect flex-basis height) but requires a new template-level wrapper element, which is more invasive than the "CSS-only" scope this stage was approved for. Reverted to the fixed-width fallback (this stage's actual shipped change) instead, per the user's explicit fallback instruction.
.paned-list-replies/.paned-list-scorewidths were left untouched (already 5rem, not part of the reported complaint).