Skip to content

The tag shelf goes twice as deep, and its handle is the seam again - #56

Merged
mindaugaskasp merged 1 commit into
mainfrom
improvement/tag-shelf-depth
Aug 11, 2026
Merged

The tag shelf goes twice as deep, and its handle is the seam again#56
mindaugaskasp merged 1 commit into
mainfrom
improvement/tag-shelf-depth

Conversation

@mindaugaskasp

Copy link
Copy Markdown
Owner

MAX_TAG_ROWS 12 → 24, so a drag reaches 96 chips instead of 48.

Raising that ceiling alone is what made the rest necessary — with nothing else changed the sidebar list collapsed from 316px to 56.5px on an 800px window. Squeezed that far it takes the grip off the bottom edge with it, and a shelf whose grip can't be reached can't be made small again. The control strip is now capped at calc(100% - 150px): the sections always keep 150px of the column and the chips scroll past it, which also holds when the window is resized after the drag.

Two things the shelf got wrong at every depth, both fixed here:

  • The last chip row was welded to the strip's border (5px), because the handle rode down over the strip's bottom padding to sit on it. The padding is the air under the shelf now — 10px, matching the air above the separator.
  • The handle lit up 9px above the divider it looks like. In the flow it can hang off the chips or sit on the border, and each attempt at one broke the other; both had shipped. It's pinned to the border now (position: absolute, a 5px band straddling the 1px line), so the strip's padding is free to be the air.

Guards

expectHandleOnTheSeam fails on either half: the handle's centre within 1px of the strip's bottom edge, and elementFromPoint on the seam returning the grip — the hit area, not just the paint. It runs at the resting depth and at the new maximum. It reported 9 before the fix.

The bottom gap is asserted equal at rest, one row deeper and at the maximum; the list floor and the grip's reachability are asserted after a drag to the bottom of the window. Each assertion was watched red first — the ceiling at 48-vs-48, the gap at 5-vs-10, and the list floor only after the ceiling went up, which is what proves the cap earns its place.

Verification

  • npm run check — exit 0
  • 40 e2e green: shelf, tags, section reorder, sidebar reorder, sidebar collapse, smoke. The last two matter because the handle now overlaps the top 3px of the first section header, which is itself a drag target.
  • Geometry measured on a real launch: chips end at 211, 10px of air, border at 221–222, handle 219–224. With a tag selected the seam moves below the filter row and the handle moves with it, no special case.

Not run: make theme-sweep. The change is pure geometry — no colour, no new surface — so check:themes and SURFACES need nothing.

🤖 Generated with Claude Code

…e seam again

MAX_TAG_ROWS 12 → 24. Raising it alone squeezed the sections from 316px to
56.5px of an 800px window; squeezed out they take the grip off the bottom edge
with them, and a shelf whose grip cannot be reached cannot be made small again.
So the control strip is capped at calc(100% - 150px) and the chips scroll past
it — which also holds when the window is resized after the drag.

The last chip row sat 5px off the strip's border at every depth, because the
handle rode down over the strip's bottom padding to sit on the border. The
padding is the air under the shelf now.

The handle is pinned to the strip's border instead of living in the flow, where
it could hang off the chips or sit on the border but never both: held to the
chips it lit up 9px above the divider it looks like, and welded to the border it
glued the last chip row to the edge. Both had shipped, twice.

e2e asserts the gap is the same at rest, one row deeper and at the new maximum;
that the sections keep 150px however far the shelf is dragged; and that the
handle's centre AND its hit area straddle the seam.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@mindaugaskasp
mindaugaskasp merged commit 9545920 into main Aug 11, 2026
6 checks passed
@mindaugaskasp
mindaugaskasp deleted the improvement/tag-shelf-depth branch August 11, 2026 17:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant