@kolkrabbi/kol-theme 0.99.0 → 0.101.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.
@@ -38,6 +38,17 @@
38
38
  --kol-surface-tertiary: #ffffff;
39
39
  --kol-surface-on-tertiary: #0e0e11;
40
40
 
41
+ /* THE SUNKEN WELL — a step DOWN from the page, in BOTH themes (measured on
42
+ * kol-fxr's /settings, 2026-08-30). The `sunken` tone had no token of its own
43
+ * and borrowed `--kol-oq-inverse-96`, which is a step down in light (242 on a
44
+ * 250 page) and a step UP in dark (24 on an 18 page). Swapping it to
45
+ * `surface-tertiary` only mirrors the fault: 14 on 18 in dark, but 255 on 250
46
+ * in light. The two are exact opposites, so no existing token is sunken on
47
+ * both sides — which is why "everything should be sunken" kept coming back
48
+ * looking wrong on one theme however it was patched.
49
+ * Light: #f2f2f2 (242) · Dark: #0e0e11 (14). Below the page, both times. */
50
+ --kol-surface-sunken: #f2f2f2;
51
+
41
52
  --kol-surface-inverse: #0e0e11;
42
53
  --kol-surface-on-inverse: #fcfbf8;
43
54
 
@@ -66,6 +77,9 @@
66
77
  --kol-surface-tertiary: #0e0e11;
67
78
  --kol-surface-on-tertiary: #ffffff;
68
79
 
80
+ /* the sunken well, dark side — below the #121215 page (see the light block) */
81
+ --kol-surface-sunken: #0e0e11;
82
+
69
83
  --kol-surface-inverse: #fcfbf8;
70
84
  --kol-surface-on-inverse: #0e0e11;
71
85
 
@@ -111,6 +125,11 @@
111
125
  --kol-surface-tertiary: #0e0e11;
112
126
  --kol-surface-on-tertiary: #ffffff;
113
127
 
128
+ /* the sunken well, system-dark — this block is the one a user who never
129
+ * touched the toggle gets, and it is the one the first pass of this fix
130
+ * forgot: the `:root` light value would have leaked into system dark. */
131
+ --kol-surface-sunken: #0e0e11;
132
+
114
133
  --kol-surface-inverse: #fcfbf8;
115
134
  --kol-surface-on-inverse: #0e0e11;
116
135
 
@@ -1031,6 +1031,17 @@
1031
1031
  width: auto;
1032
1032
  height: var(--kol-row-thumb);
1033
1033
  }
1034
+ /* WHICH AXIS PAYS for a non-square ratio (RowRungAndFillThumb, kol-website
1035
+ * 2026-08-30). The 08-30 ruling above made the rung the HEIGHT unconditionally,
1036
+ * so an A-series thumb on a 168 row went 136×136 → 96×136: the ratio came out
1037
+ * of the width, and the width is what sets a listing's rhythm against the rest
1038
+ * of the page. That was a ruling where a choice belonged — `ratioAxis="height"`
1039
+ * holds the width at the rung and lets the thumb grow taller instead
1040
+ * (136×192). Default is unchanged, so nothing that exists moves. */
1041
+ .kol-row > .kol-row-thumb.is-fill.pays-height {
1042
+ width: var(--kol-row-thumb);
1043
+ height: auto;
1044
+ }
1034
1045
 
1035
1046
  /* CONTAINER query, not a viewport one (2026-08-15). The row steps on the width
1036
1047
  * of the WALL it sits in, for exactly the reason the card-wall law gives: the
@@ -1313,13 +1324,30 @@
1313
1324
  * ink `fg-96`. `.kol-tone-inverse` stays selected for any class
1314
1325
  * hand-stamped on the old name.
1315
1326
  * ───────────────────────────────────────────────────────────────────── */
1316
- .kol-view-toggle.kol-tone-sunken, .kol-view-toggle.kol-tone-inverse { background-color: var(--kol-oq-inverse-96); }
1327
+ /* THE SUNKEN TONE IS `surface-tertiary`, NOT `oq-inverse-96` (measured on
1328
+ * kol-fxr's /settings, 2026-08-30). The whole set read `--kol-oq-inverse-96`,
1329
+ * which is `color-mix(#0e0e11 96%, #fcfbf8)` — four percent of near-WHITE mixed
1330
+ * in. On the dark theme that lands at luminance **23.7 against an 18.2 page**:
1331
+ * a tone named "sunken" was rendering RAISED, and every control wearing it
1332
+ * (dropdown trigger, view toggle, icon frames, theme toggle) sat as its own
1333
+ * pale box on the page. That is the "multiple backgrounds" the user has
1334
+ * reported repeatedly and I have not fixed.
1335
+ *
1336
+ * The diagnosis was already written into this file, twenty lines down, in the
1337
+ * comment above `.kol-dd-panel` — it works out the 23.5-vs-18 arithmetic and
1338
+ * names `surface-tertiary` as the answer. It was never applied to the rules
1339
+ * beneath it. Written down is not fixed.
1340
+ *
1341
+ * `surface-tertiary` is `#0e0e11` in dark (14.2, genuinely below the page) and
1342
+ * `#ffffff` in light, so it is theme-correct on both sides where a mix toward
1343
+ * a fixed near-white could only ever be right on one. */
1344
+ .kol-view-toggle.kol-tone-sunken, .kol-view-toggle.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
1317
1345
  .kol-view-toggle.kol-tone-sunken > button[aria-pressed="true"], .kol-view-toggle.kol-tone-inverse > button[aria-pressed="true"] { background-color: var(--kol-fg-08); }
1318
1346
  .kol-view-toggle.kol-tone-sunken > button:not([aria-pressed="true"]):hover, .kol-view-toggle.kol-tone-inverse > button:not([aria-pressed="true"]):hover { background-color: color-mix(in srgb, var(--kol-color-ab-white) 8%, transparent); }
1319
- .kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-oq-inverse-96); }
1320
- .kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-oq-inverse-96); }
1347
+ .kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
1348
+ .kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
1321
1349
  /* the tone's fill, one selector — nothing left to cancel (2026-08-28) */
1322
- .kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse { background-color: var(--kol-oq-inverse-96); }
1350
+ .kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
1323
1351
  /* THE PANEL IS OPAQUE (user 2026-08-28: "transparent doesn't work for
1324
1352
  * dropdown") — it floats over page content, and every `fg-*` stop is an alpha
1325
1353
  * wash that the content reads through. `oq-inverse-*`, the opaque tier, bakes
@@ -1327,7 +1355,7 @@
1327
1355
  * lands ~23.5 against the #121215 page's 18: lighter than the page, the wrong
1328
1356
  * side of it. `surface-tertiary` is the flat twin of what the trigger renders:
1329
1357
  * #0e0e11 (14.0) in dark against the trigger's 14.2, #ffffff in light. */
1330
- .kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-oq-inverse-96); }
1358
+ .kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
1331
1359
  /* the rest of the set — Button (icon-only especially), IconFrame, ThemeToggle:
1332
1360
  * the well, transparent edge, fg-96 ink; hover the white wash, pressed the
1333
1361
  * fg-08 chip — both LAYERED over the well (a gradient image over the fill),
@@ -1335,20 +1363,20 @@
1335
1363
  .kol-btn.kol-tone-sunken,
1336
1364
  .kol-icon-frame.kol-tone-sunken,
1337
1365
  .kol-theme-toggle.kol-tone-sunken {
1338
- background-color: var(--kol-oq-inverse-96);
1366
+ background-color: var(--kol-surface-sunken);
1339
1367
  border-color: transparent;
1340
1368
  color: var(--kol-fg-96);
1341
1369
  }
1342
1370
  @media (hover: hover) {
1343
1371
  .kol-btn.kol-tone-sunken:not(.kol-btn-animate):not(:disabled):hover {
1344
- background-color: var(--kol-oq-inverse-96);
1372
+ background-color: var(--kol-surface-sunken);
1345
1373
  background-image: linear-gradient(color-mix(in srgb, var(--kol-color-ab-white) 8%, transparent), color-mix(in srgb, var(--kol-color-ab-white) 8%, transparent));
1346
1374
  color: var(--kol-fg-96);
1347
1375
  }
1348
1376
  }
1349
1377
  .kol-btn.kol-tone-sunken.kol-btn-pressed,
1350
1378
  .kol-btn.kol-tone-sunken:not(:disabled):active {
1351
- background-color: var(--kol-oq-inverse-96);
1379
+ background-color: var(--kol-surface-sunken);
1352
1380
  background-image: linear-gradient(var(--kol-fg-08), var(--kol-fg-08));
1353
1381
  color: var(--kol-fg-96);
1354
1382
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.99.0",
3
+ "version": "0.101.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",