@kolkrabbi/kol-theme 0.199.0 → 0.200.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.
@@ -1459,6 +1459,10 @@ a.kol-icon-frame {
1459
1459
  display: flex;
1460
1460
  overflow-x: auto;
1461
1461
  overflow-y: hidden;
1462
+ /* scrolling sideways clips vertically too — room for the text tabs' ascenders and the underline, given back by the
1463
+ * margin so the row keeps its height (review 3, 2026-10-29: *"something is clipping"*) */
1464
+ padding-block: 4px;
1465
+ margin-block: -4px;
1462
1466
  scrollbar-width: none;
1463
1467
  overscroll-behavior-x: contain;
1464
1468
  min-width: 0; /* a flex item shrinks to its column instead of growing to the row */
@@ -2193,6 +2193,28 @@ img.kol-quicklook-media--fill { width: var(--kol-ql-max-w); height: auto; max-he
2193
2193
  --kol-tone-pressed-image: none;
2194
2194
  --kol-tone-pressed-fg: var(--kol-fg-emphasis);
2195
2195
  }
2196
+ /* THE FILLED TAB (user 2026-10-29, on the lab rail's text tabs: *"its not so clear that these are selectable tabs"*):
2197
+ * the tab bundle with its chip showing at rest — oq-04 in meta ink, oq-08 in full ink under the pointer, oq-16 when
2198
+ * selected — so a row of them reads as choices before one is hovered. `TabsRow look="chip" filled`. */
2199
+ :where(.kol-btn-tab-filled) {
2200
+ --kol-tone-bg: var(--kol-oq-04);
2201
+ --kol-tone-image: none;
2202
+ --kol-tone-fg: var(--kol-fg-meta);
2203
+ --kol-tone-border: transparent;
2204
+ --kol-tone-hover-bg: var(--kol-oq-08);
2205
+ --kol-tone-hover-image: none;
2206
+ --kol-tone-hover-fg: var(--kol-fg-emphasis);
2207
+ --kol-tone-hover-border: transparent;
2208
+ --kol-tone-active-bg: var(--kol-oq-12);
2209
+ --kol-tone-active-image: none;
2210
+ --kol-tone-pressed-bg: var(--kol-oq-16);
2211
+ --kol-tone-pressed-image: none;
2212
+ --kol-tone-pressed-fg: var(--kol-fg-emphasis);
2213
+ }
2214
+ .kol-btn.kol-btn-tab-filled.kol-btn-pressed:not(.kol-dd-trigger):hover {
2215
+ background-color: var(--kol-tone-pressed-bg);
2216
+ color: var(--kol-tone-pressed-fg);
2217
+ }
2196
2218
  /* the selected tab keeps its chip under the pointer — hover is for the tabs you are not on (the
2197
2219
  * shared hover rule would repaint it with the bundle's transparent hover ground) */
2198
2220
  .kol-btn.kol-btn-tab.kol-btn-pressed:not(.kol-dd-trigger):hover {
@@ -431,3 +431,45 @@
431
431
  }
432
432
  .kol-a4-sheet:not(:last-child) { break-after: page; }
433
433
  }
434
+
435
+ /* ── LabWindow — .kol-lab-window (BrandLabToolWindow, 2026-10-29) ───────────────────────────────────────
436
+ * The lab's window is kol-component's QuickLookFrame (the established window): it fills its column instead of
437
+ * hugging media, is never taller than the viewport, and keeps the frame's corner grip. One padding for the
438
+ * header, the rail and the stage. */
439
+ .kol-lab-window {
440
+ --kol-lab-pad: 16px;
441
+ width: 100%;
442
+ max-width: none;
443
+ height: min(720px, calc(100dvh - 4rem));
444
+ }
445
+ /* THE IMAGE DROP ZONE (review 6, Adobe's refs 56 · 57): a faint ground at rest; under the pointer, or while a file is
446
+ * dragged over it, the transparency checker — in the opaque ramp so it reads on either theme */
447
+ .kol-lab-drop { background: var(--kol-oq-02); }
448
+ .kol-lab-drop:hover,
449
+ .kol-lab-drop.is-dropping { background: repeating-conic-gradient(var(--kol-oq-08) 0% 25%, transparent 0% 50%) 0 0 / 12px 12px; }
450
+ /* maximized (review 5): the window over the page, 16px off every edge, above the scrim */
451
+ .kol-lab-window.kol-lab-window--max { position: fixed; inset: 16px; z-index: 200; width: auto; height: auto; max-height: none; }
452
+ .kol-lab-window.kol-quicklook--sized { max-height: calc(100dvh - 2rem); }
453
+ .kol-lab-window .kol-quicklook-header { padding-inline: var(--kol-lab-pad); border-bottom: 1px solid var(--kol-oq-08); }
454
+ .kol-lab-window .kol-quicklook-body { flex: 1 1 auto; min-height: 0; align-items: stretch; justify-content: stretch; }
455
+ .kol-lab-stage { padding: var(--kol-lab-pad); }
456
+ /* the rail pads as kol-component's Rail does (review 4) */
457
+ .kol-lab-rail { padding: var(--kol-pad-rail, 16px); }
458
+ /* the rail's width is the DS grab's (`useDragResize`, token kol-lab-rail): 380 by default (the rail law), 320 → 560 by drag */
459
+ :root {
460
+ /* the rail law's 380 (the settings rail's width, review 4) */
461
+ --kol-lab-rail-w: 380px;
462
+ --kol-lab-rail-w-collapsed: 320px;
463
+ /* the hook's own tokens (useDragResize buildNames): without them the grab is inert */
464
+ --kol-lab-rail-snap: 280px;
465
+ --kol-lab-rail-step: 16px;
466
+ --kol-lab-rail-snap-default: 16px;
467
+ }
468
+ .kol-lab-grid { grid-template-rows: auto minmax(0, 1fr); }
469
+ @media (min-width: 768px) {
470
+ .kol-lab-grid { grid-template-rows: 1fr; grid-template-columns: clamp(320px, var(--kol-lab-rail-w), 560px) minmax(0, 1fr); }
471
+ }
472
+ /* the colour column's hex IS the "Edit color" button (review 1, Adobe's ref 2): bare, a wash of the column's own ink on hover */
473
+ .kol-lab-hex { border-radius: var(--kol-radius-sm, 4px); color: inherit; }
474
+ .kol-lab-hex:hover,
475
+ .kol-lab-hex[aria-expanded="true"] { background: color-mix(in srgb, currentColor 14%, transparent); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.199.0",
3
+ "version": "0.200.0",
4
4
  "description": "Tokens and base CSS",
5
5
  "license": "MIT",
6
6
  "type": "module",