@kolkrabbi/kol-theme 0.160.0 → 0.162.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-animation.css CHANGED
@@ -371,6 +371,23 @@
371
371
  .kol-rail-grab::before { transition: none; }
372
372
  }
373
373
 
374
+ /* THE LINE VARIANT (2026-10-01, `useDragResize({ variant: 'line' })`) — no pill: the whole edge
375
+ * lights up under the pointer and while dragging, the way an editor's pane border does. A
376
+ * double-click toggles the rail; the cursor is the same `col-resize`. */
377
+ .kol-rail-grab--line::before {
378
+ top: 0;
379
+ translate: -50% 0;
380
+ height: 100%;
381
+ border-radius: 0;
382
+ background: var(--kol-oq-48);
383
+ transition: opacity 120ms ease, background-color 120ms ease;
384
+ }
385
+ .kol-rail-grab--line:hover::before,
386
+ .kol-rail-grab--line:focus-visible::before,
387
+ .kol-rail-grab--line.is-dragging::before { opacity: 1; background: var(--kol-oq-96); transition-delay: 0ms; }
388
+ /* near is not enough for a line — it lights on the edge itself, not 20px out */
389
+ .kol-rail-grab--line.is-near:not(:hover):not(.is-dragging):not(:focus-visible)::before { opacity: 0; }
390
+
374
391
  /* A RIGHT-HAND RAIL's handle sits on its LEFT edge, facing the page (2026-09-30 — the modifier
375
392
  * EditorShell has stamped since 0.x, `kol-rail-grab--${side}`, had no rule, so a right rail's pill
376
393
  * sat on its outer edge; the workshop shell's right rail needs the same). */
@@ -101,7 +101,7 @@
101
101
  }
102
102
  .kol-control--textarea.kol-control-md > textarea { padding: 6px 16px; }
103
103
  .kol-control--textarea.kol-control-lg > textarea { padding: 8px 20px; }
104
- /* The grip — kol-icon-set-v1 `resize-grip` at the native placement. It IS
104
+ /* The grip — kol-icon-set-interface `resize-grip` at the native placement. It IS
105
105
  * the resize handle (JS corner drag, both axes, in Textarea.jsx); native
106
106
  * resize is OFF because Firefox's grip can't be hidden any other way. */
107
107
  .kol-textarea-resize-icon {
@@ -332,6 +332,21 @@
332
332
  border-color: currentColor;
333
333
  }
334
334
 
335
+ /* hue — a colored chip (W17, 2026-09-30). Tag.jsx sets --kol-tag-hue from its `color` prop; the
336
+ * fill, hover and active are the primary chip's own steps, mixed from the hue instead of the ink.
337
+ * The ink is the hue mixed toward the text color so yellow still reads on a light surface. */
338
+ .kol-tag--primary.kol-tag--hue {
339
+ background-color: color-mix(in srgb, var(--kol-tag-hue) 18%, transparent);
340
+ color: color-mix(in srgb, var(--kol-tag-hue) 70%, var(--kol-surface-on-primary));
341
+ }
342
+ .kol-tag--primary.kol-tag--hue:hover {
343
+ background-color: color-mix(in srgb, var(--kol-tag-hue) 28%, transparent);
344
+ }
345
+ .kol-tag--primary.kol-tag--hue.is-active {
346
+ background-color: color-mix(in srgb, var(--kol-tag-hue) 36%, transparent);
347
+ border-color: currentColor;
348
+ }
349
+
335
350
  /* secondary — the outlined chip. Mirrors .pill-outline. */
336
351
  .kol-tag--secondary {
337
352
  background-color: var(--kol-surface-primary);
@@ -478,6 +493,8 @@
478
493
  display: inline-flex;
479
494
  align-items: center;
480
495
  justify-content: center;
496
+ /* the icon and the label were flush (2026-10-01) — `icon` renders beside the text with nothing between */
497
+ gap: 6px;
481
498
  border-radius: 4px;
482
499
  font-family: var(--kol-font-family-mono);
483
500
  font-weight: 470;
@@ -180,6 +180,9 @@
180
180
  .kol-table-wrapper.kol-table--simple { border: none; border-radius: 0; }
181
181
  .kol-table-wrapper.kol-table--simple .kol-table-thead { background: none; border-bottom: 1px solid var(--kol-fg-12); }
182
182
  .kol-table-wrapper.kol-table--simple .kol-table-row { border-bottom: 1px solid var(--kol-fg-08); }
183
+ /* no rule under the last row unless asked (`lastRule`, 2026-10-01) — whatever follows the table
184
+ * usually brings its own divider, and the pair read as a double line */
185
+ .kol-table-wrapper.kol-table--simple:not(.kol-table--last-rule) tbody .kol-table-row:last-child { border-bottom: none; }
183
186
  /* compact — record-surface density (2026-08-09): tighter cell box for the
184
187
  * RecordManager table; the reference's rows sit near half the default. */
185
188
  .kol-table-wrapper.kol-table--compact .kol-table th,
@@ -116,6 +116,14 @@
116
116
  overscroll-behavior: contain;
117
117
  }
118
118
 
119
+ /* THE RAIL FADES OUT AT ITS FOOT (2026-10-01 — user, on shadcn's sidebar: "look how they use
120
+ * gradient fade for information to reveals on scroll"). A long list runs out under a fade instead
121
+ * of being cut by the window edge; the rail's own bottom padding (`pb-14` on the aside) keeps the last row clear of it. */
122
+ .shell-rail {
123
+ -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 3rem), transparent);
124
+ mask-image: linear-gradient(to bottom, #000 calc(100% - 3rem), transparent);
125
+ }
126
+
119
127
  .shell-rail--nav {
120
128
  border-right: 1px solid var(--kol-oq-08);
121
129
  padding-inline-end: var(--kol-pad-chrome-x);
@@ -295,6 +303,8 @@
295
303
  display: flex;
296
304
  justify-content: space-between;
297
305
  align-items: center;
306
+ /* the count never touches the label (W4, 2026-09-30: "Blog / editorial(28)") */
307
+ gap: var(--kol-spacing-2);
298
308
  transition: color 0.15s ease;
299
309
  }
300
310
 
@@ -357,6 +367,13 @@
357
367
  margin-top: 4px;
358
368
  }
359
369
 
370
+ /* A CHAPTER INSIDE A CHAPTER (2026-09-30, the showcase review W1 — the rail nests to any depth).
371
+ * The nested group steps in by the ROW's text indent, so its caret sits on its sibling rows' text
372
+ * edge and its own rows land one indent further; the indent is read, never retyped. */
373
+ .shell-nav-nest {
374
+ padding-left: var(--kol-pad-rail-row-x);
375
+ }
376
+
360
377
  /* Navigation items — layout only; type/color (+ active) in JSX. */
361
378
  /* THE PAGE ROW — L3, the class owns the whole look (user ruling 2026-08-01).
362
379
  * PAGE in the rail's vocabulary (`Tokens`); the right rail's rows are SECTIONS
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.160.0",
4
- "description": "KOL (Kolkrabbi) design-system tokens + base CSS — brand-neutral. The canonical token/cascade layer every other KOL package and consumer builds on.",
3
+ "version": "0.162.0",
4
+ "description": "Tokens and base CSS",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "sideEffects": [