@kolkrabbi/kol-framework 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/kol-framework.css +13 -1
- package/package.json +1 -1
- package/src/SideNav.jsx +10 -5
package/kol-framework.css
CHANGED
|
@@ -43,7 +43,16 @@ body {
|
|
|
43
43
|
/* 16rem — the rail width, one number (2026-07-31). It read 260 while every
|
|
44
44
|
grid track that had to line up with it read 256, so the shell header's
|
|
45
45
|
brand block sat 4 off the sidebar column it exists to align to. */
|
|
46
|
-
--kol-sidenav-w:
|
|
46
|
+
--kol-sidenav-w: 264px;
|
|
47
|
+
/* A LADDER, not one number (SideNavWidthLadder, kol-website 2026-08-28 —
|
|
48
|
+
user ruling on the brand book: 320 desktop · 264 laptop · collapsed
|
|
49
|
+
tablet · hamburger mobile; the footer wordmark truncated at 16rem on a
|
|
50
|
+
desktop). 264 here, 320 from 1536 (Tailwind's `2xl`, the site's desktop
|
|
51
|
+
rung — the framework carries no named desktop breakpoint) in the media
|
|
52
|
+
rule below the grid; ≤1024 and <768 were already the collapse and the
|
|
53
|
+
drawer. useDragResize snaps to whichever rung the window is on; a stored
|
|
54
|
+
drag still wins on load. Anything that must line up with the rail reads
|
|
55
|
+
this token — a literal 256 is now wrong at every width. */
|
|
47
56
|
/* Grab-edge gesture (lobby: SideNavGrabResize, 2026-08-09). Minted HERE —
|
|
48
57
|
no --kol-* token carried these before (checked: only -w, -w-collapsed,
|
|
49
58
|
-dot-left shipped). kol-mirror carried them as bare literals, the
|
|
@@ -253,6 +262,9 @@ body {
|
|
|
253
262
|
* (useDragResize stamps the attribute for the drag's duration). */
|
|
254
263
|
:root[data-sidenav-dragging] .kol-brand-layout { transition: none; }
|
|
255
264
|
|
|
265
|
+
/* the desktop rung of the ladder (SideNavWidthLadder) */
|
|
266
|
+
@media (min-width: 1536px) { :root { --kol-sidenav-w: 320px; } }
|
|
267
|
+
|
|
256
268
|
/* ───── Brand doc layout (sidebar + content) ─────
|
|
257
269
|
The grid lives in CSS for its dynamic --kol-sidenav-w + transition. */
|
|
258
270
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-framework",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.0",
|
|
4
4
|
"description": "KOL app shell — sidenav, layout, theme toggle, footer, heroes + brand color layer. SideNav takes nav data as props so the tree stays app-local.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
package/src/SideNav.jsx
CHANGED
|
@@ -344,16 +344,22 @@ function SideNavInner({
|
|
|
344
344
|
* THE single collapse/resize control — click toggles, drag resizes,
|
|
345
345
|
* snap-to-default on release, Home/Enter/Space on the keyboard. */}
|
|
346
346
|
|
|
347
|
-
|
|
347
|
+
{/* ONLY the tree scrolls (fxr's re-measure, 2026-08-28): the theme slot
|
|
348
|
+
* and the pinned rows used to sit inside this region, so on a 26-row
|
|
349
|
+
* collapsed tree they scrolled off below the footer — "pinned" only
|
|
350
|
+
* held while the tree was shorter than the rail. They are the block
|
|
351
|
+
* after it now, above the footer, the tree scrolling underneath. */}
|
|
352
|
+
<div className="kol-sidenav-scroll flex-1 overflow-y-auto pt-4 pb-4 [scrollbar-width:thin]">
|
|
348
353
|
<nav aria-label="Sections">
|
|
349
354
|
<ul className="kol-sidenav-tree flex flex-col gap-[2px]">
|
|
350
355
|
{navTree.map(renderCat)}
|
|
351
356
|
</ul>
|
|
352
357
|
</nav>
|
|
358
|
+
</div>
|
|
353
359
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
360
|
+
{/* hop-bare carries its own gutter padding; collapsed falls back to
|
|
361
|
+
`icon` — a full-width label can't sit in the collapsed rail. */}
|
|
362
|
+
<div className="pb-4">
|
|
357
363
|
{themeToggle && (
|
|
358
364
|
<div className="kol-sidenav-theme-slot flex">
|
|
359
365
|
<ThemeToggle variant={collapsed ? 'icon' : 'hop-bare'} size="md" />
|
|
@@ -366,7 +372,6 @@ function SideNavInner({
|
|
|
366
372
|
<ul className="kol-sidenav-tree flex flex-col gap-[2px]">{bottomItems.map(renderCat)}</ul>
|
|
367
373
|
</nav>
|
|
368
374
|
)}
|
|
369
|
-
</div>
|
|
370
375
|
</div>
|
|
371
376
|
|
|
372
377
|
{footer !== false && footer !== null && (
|