Add resizable panes with drag handles, min widths, and persistence

This commit is contained in:
2026-06-05 10:46:07 +03:00
parent 411bfbc6c2
commit c50f141d57
11 changed files with 482 additions and 25 deletions
@@ -0,0 +1,35 @@
/*
* 6px-wide hit target with a thin visible grip. Width is part of the layout
* budget (HANDLES_TOTAL in PanesStore); keep them in sync if this changes.
*/
.handle {
flex: 0 0 6px;
position: relative;
cursor: col-resize;
background: var(--border);
touch-action: none; /* let pointer drags own the gesture, not scroll */
transition: background var(--dur-fast) var(--ease);
}
.handle:hover,
.handle:focus-visible {
background: var(--accent);
outline: none;
}
/* A short centered grip line, so the handle reads as a draggable divider. */
.grip {
position: absolute;
top: 50%;
left: 50%;
width: 2px;
height: 24px;
transform: translate(-50%, -50%);
background: var(--border-strong);
border-radius: var(--radius);
}
.handle:hover .grip,
.handle:focus-visible .grip {
background: var(--accent-contrast);
}