@kolkrabbi/kol-theme 0.100.0 → 0.102.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-base-tokens.css +26 -0
- package/kol-components-molecules.css +25 -8
- package/package.json +1 -1
package/kol-base-tokens.css
CHANGED
|
@@ -38,6 +38,24 @@
|
|
|
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
|
+
* BUILT ON THE `ab` LADDER, not on literals (user, 2026-08-30: *"oq-inverse-96
|
|
50
|
+
* is the wrong sunken token … its pair should have been oq-ab-inverse-96 …
|
|
51
|
+
* that's based on primary or some dark that's not 000000"*). The `ab` tier is
|
|
52
|
+
* ABSOLUTE — pure #000/#fff — so `oq-ab-96` is 10 and `oq-ab-inverse-96` is
|
|
53
|
+
* 245 in BOTH themes and neither can be the well on its own. What flips is
|
|
54
|
+
* which one the well points at, and that is this token's entire job.
|
|
55
|
+
* Light: `oq-ab-inverse-96` (245, under the 250 page)
|
|
56
|
+
* Dark: `oq-ab-96` (10, under the 18 page) */
|
|
57
|
+
--kol-surface-sunken: var(--kol-oq-ab-inverse-96);
|
|
58
|
+
|
|
41
59
|
--kol-surface-inverse: #0e0e11;
|
|
42
60
|
--kol-surface-on-inverse: #fcfbf8;
|
|
43
61
|
|
|
@@ -66,6 +84,9 @@
|
|
|
66
84
|
--kol-surface-tertiary: #0e0e11;
|
|
67
85
|
--kol-surface-on-tertiary: #ffffff;
|
|
68
86
|
|
|
87
|
+
/* the sunken well, dark side — `oq-ab-96` (10) under the #121215 page (18) */
|
|
88
|
+
--kol-surface-sunken: var(--kol-oq-ab-96);
|
|
89
|
+
|
|
69
90
|
--kol-surface-inverse: #fcfbf8;
|
|
70
91
|
--kol-surface-on-inverse: #0e0e11;
|
|
71
92
|
|
|
@@ -111,6 +132,11 @@
|
|
|
111
132
|
--kol-surface-tertiary: #0e0e11;
|
|
112
133
|
--kol-surface-on-tertiary: #ffffff;
|
|
113
134
|
|
|
135
|
+
/* the sunken well, system-dark — this block is the one a user who never
|
|
136
|
+
* touched the toggle gets, and it is the one the first pass of this fix
|
|
137
|
+
* forgot: the `:root` light value would have leaked into system dark. */
|
|
138
|
+
--kol-surface-sunken: var(--kol-oq-ab-96);
|
|
139
|
+
|
|
114
140
|
--kol-surface-inverse: #fcfbf8;
|
|
115
141
|
--kol-surface-on-inverse: #0e0e11;
|
|
116
142
|
|
|
@@ -1324,13 +1324,30 @@
|
|
|
1324
1324
|
* ink `fg-96`. `.kol-tone-inverse` stays selected for any class
|
|
1325
1325
|
* hand-stamped on the old name.
|
|
1326
1326
|
* ───────────────────────────────────────────────────────────────────── */
|
|
1327
|
-
|
|
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); }
|
|
1328
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); }
|
|
1329
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); }
|
|
1330
|
-
.kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-
|
|
1331
|
-
.kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-
|
|
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); }
|
|
1332
1349
|
/* the tone's fill, one selector — nothing left to cancel (2026-08-28) */
|
|
1333
|
-
.kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse { background-color: var(--kol-
|
|
1350
|
+
.kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
|
|
1334
1351
|
/* THE PANEL IS OPAQUE (user 2026-08-28: "transparent doesn't work for
|
|
1335
1352
|
* dropdown") — it floats over page content, and every `fg-*` stop is an alpha
|
|
1336
1353
|
* wash that the content reads through. `oq-inverse-*`, the opaque tier, bakes
|
|
@@ -1338,7 +1355,7 @@
|
|
|
1338
1355
|
* lands ~23.5 against the #121215 page's 18: lighter than the page, the wrong
|
|
1339
1356
|
* side of it. `surface-tertiary` is the flat twin of what the trigger renders:
|
|
1340
1357
|
* #0e0e11 (14.0) in dark against the trigger's 14.2, #ffffff in light. */
|
|
1341
|
-
.kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-
|
|
1358
|
+
.kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
|
|
1342
1359
|
/* the rest of the set — Button (icon-only especially), IconFrame, ThemeToggle:
|
|
1343
1360
|
* the well, transparent edge, fg-96 ink; hover the white wash, pressed the
|
|
1344
1361
|
* fg-08 chip — both LAYERED over the well (a gradient image over the fill),
|
|
@@ -1346,20 +1363,20 @@
|
|
|
1346
1363
|
.kol-btn.kol-tone-sunken,
|
|
1347
1364
|
.kol-icon-frame.kol-tone-sunken,
|
|
1348
1365
|
.kol-theme-toggle.kol-tone-sunken {
|
|
1349
|
-
background-color: var(--kol-
|
|
1366
|
+
background-color: var(--kol-surface-sunken);
|
|
1350
1367
|
border-color: transparent;
|
|
1351
1368
|
color: var(--kol-fg-96);
|
|
1352
1369
|
}
|
|
1353
1370
|
@media (hover: hover) {
|
|
1354
1371
|
.kol-btn.kol-tone-sunken:not(.kol-btn-animate):not(:disabled):hover {
|
|
1355
|
-
background-color: var(--kol-
|
|
1372
|
+
background-color: var(--kol-surface-sunken);
|
|
1356
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));
|
|
1357
1374
|
color: var(--kol-fg-96);
|
|
1358
1375
|
}
|
|
1359
1376
|
}
|
|
1360
1377
|
.kol-btn.kol-tone-sunken.kol-btn-pressed,
|
|
1361
1378
|
.kol-btn.kol-tone-sunken:not(:disabled):active {
|
|
1362
|
-
background-color: var(--kol-
|
|
1379
|
+
background-color: var(--kol-surface-sunken);
|
|
1363
1380
|
background-image: linear-gradient(var(--kol-fg-08), var(--kol-fg-08));
|
|
1364
1381
|
color: var(--kol-fg-96);
|
|
1365
1382
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.102.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",
|