@kolkrabbi/kol-theme 0.35.0 → 0.37.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.
@@ -472,11 +472,20 @@
472
472
  border: 1px solid var(--kol-fg-04);
473
473
  border-radius: var(--kol-radius-sm);
474
474
  overflow: hidden;
475
- }
476
-
477
- /* Sizes mirror .kol-btn-{sm,md,lg} exactly: cell padding per size (below) +
478
- * mono type (12/14/16) applied on the cell in JSX. Height is padding-driven,
479
- * so a strip matches a Button of the same size. md is the base. */
475
+ /* The button-height LAW (2026-08-12): the strip's OUTER height is PINNED
476
+ * to the .kol-btn ladder — 26 / 32 / 40 — regardless of what a cell holds
477
+ * (icon or text) and regardless of variant (the filled variant drops the
478
+ * group border, so padding-driven height ran 2px short the bug that
479
+ * forced the pin). Same principle as .kol-btn-icon's pinned square:
480
+ * the box never moves. */
481
+ box-sizing: border-box;
482
+ height: 32px; /* md — .kol-btn-md */
483
+ }
484
+
485
+ /* Sizes mirror .kol-btn-{sm,md,lg} exactly: pinned height above + cell
486
+ * padding per size (below) + mono type (12/14/16) applied in JSX. */
487
+ .kol-seg--sm { height: 26px; }
488
+ .kol-seg--lg { height: 40px; }
480
489
  .kol-seg--sm .kol-seg-cell { padding: 4px 12px; }
481
490
  .kol-seg--lg .kol-seg-cell { padding: 8px 20px; }
482
491
 
@@ -509,6 +518,36 @@
509
518
  outline-offset: -2px;
510
519
  }
511
520
 
521
+ /* Filled variant — the segmented state law (2026-08-12): every cell is a
522
+ * FILLED TILE (input surface tone) with 1px transparent gaps — never an
523
+ * outline shell around the group; the outlined treatment marks ONLY the
524
+ * selected cell (inset ring). Group radius clips the outer tile corners. */
525
+ .kol-seg--filled {
526
+ border: none;
527
+ gap: 1px;
528
+ background: transparent;
529
+ }
530
+
531
+ .kol-seg--filled .kol-seg-cell {
532
+ background: var(--kol-surface-secondary);
533
+ }
534
+
535
+ .kol-seg--filled .kol-seg-cell + .kol-seg-cell { border-left: none; }
536
+
537
+ .kol-seg--filled .kol-seg-cell.is-active {
538
+ background: var(--kol-surface-secondary);
539
+ box-shadow: inset 0 0 0 1px var(--kol-fg-24);
540
+ color: var(--kol-fg-emphasis);
541
+ }
542
+
543
+ /* Tonal variant (2026-08-12, user ask): filled tiles, but the clicked cell
544
+ * marks itself by TONE — surface-tertiary fill, no ring. */
545
+ .kol-seg--tonal .kol-seg-cell.is-active {
546
+ background: var(--kol-surface-tertiary);
547
+ box-shadow: none;
548
+ color: var(--kol-fg-emphasis);
549
+ }
550
+
512
551
  /* =============================================================================
513
552
  * Color-doc widget chrome — ColorRamp · SpectrumGrid
514
553
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.35.0",
3
+ "version": "0.37.0",
4
4
  "description": "KOL (Kolkrabbi) design-system tokens + base CSS — brand-neutral. The canonical token/cascade layer every other KOL package and consumer builds on.",
5
5
  "license": "MIT",
6
6
  "type": "module",