From e58347d47688b20be23738bad07826326cb117a2 Mon Sep 17 00:00:00 2001 From: ZDDC Date: Mon, 15 Jun 2026 15:19:05 -0500 Subject: [PATCH] fix(classifier): By-tracking columns no longer reserve width for hover-only buttons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Each merged-cell column was sized to fit the per-node action buttons (+ ✎ 🗑), even though they're invisible until you hover the cell. The buttons sat in flow inside the sticky .tcell__inner. Float them absolutely over the right of the cell instead (revealed on hover, pointer-events gated), so a column now sizes to its value alone. Classifier suites 69 green. Co-Authored-By: Claude Opus 4.8 (1M context) --- classifier/css/layout.css | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/classifier/css/layout.css b/classifier/css/layout.css index e169b22..7b8a833 100644 --- a/classifier/css/layout.css +++ b/classifier/css/layout.css @@ -707,7 +707,15 @@ input.tfile__name:focus { border-color: var(--primary); background: var(--bg); o .trev__inner .tcell__name { color: var(--primary); } .tcell__preview { text-decoration: none; cursor: pointer; } .tcell__preview:hover { text-decoration: underline; } -.ttable__cell:hover .tnode__actions, .ttable__rev:hover .tnode__actions { opacity: 1; } +/* The hover-only node controls must NOT reserve column width (they're invisible + normally). Float them over the right of the cell instead of leaving them in + flow — .tcell__inner is sticky, so it's the positioning context — so each + column sizes to its value alone. */ +.ttable .tnode__actions { + position: absolute; right: 0.25rem; top: 50%; transform: translateY(-50%); + margin-left: 0; padding-left: 0.25rem; background: var(--bg); pointer-events: none; +} +.ttable__cell:hover .tnode__actions, .ttable__rev:hover .tnode__actions { opacity: 1; pointer-events: auto; } .ttable .drop-hover { outline: 2px solid var(--primary); outline-offset: -2px; } .ttable__file { padding: 0.1rem 0.4rem; } .ttable__drop { color: var(--text-muted); font-style: italic; font-size: 0.75rem; }