@kolkrabbi/kol-theme 0.108.0 → 0.110.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 +6 -1
- package/kol-components-molecules.css +15 -22
- package/kol-opaque.css +7 -0
- package/package.json +1 -1
package/kol-base-tokens.css
CHANGED
|
@@ -74,7 +74,12 @@
|
|
|
74
74
|
* flips toward the ground, `oq-ab-96` IS the well everywhere — 245 under a
|
|
75
75
|
* 250 page in light, 10 under an 18 page in dark. The per-theme alias this
|
|
76
76
|
* replaced was the tell that the ladder underneath was wrong. */
|
|
77
|
-
|
|
77
|
+
/* THE POLE ITSELF (user 2026-08-30: *"in light mode we could fix the sunken
|
|
78
|
+
* to use fff? fully white?"*). `100` is the ab ladder's endpoint — the ground
|
|
79
|
+
* pole, no mix — so the well is pure #ffffff in light and pure #000000 in
|
|
80
|
+
* dark, and it is still ONE token because `ab` flips toward the ground.
|
|
81
|
+
* A washed page cannot close this gap the way it closed the 96 rung. */
|
|
82
|
+
--kol-surface-sunken: var(--kol-oq-ab-100);
|
|
78
83
|
|
|
79
84
|
--kol-surface-inverse: #0e0e11;
|
|
80
85
|
--kol-surface-on-inverse: #fcfbf8;
|
|
@@ -1324,20 +1324,14 @@
|
|
|
1324
1324
|
* ink `fg-96`. `.kol-tone-inverse` stays selected for any class
|
|
1325
1325
|
* hand-stamped on the old name.
|
|
1326
1326
|
* ───────────────────────────────────────────────────────────────────── */
|
|
1327
|
-
/*
|
|
1328
|
-
* 2026-08-30
|
|
1329
|
-
*
|
|
1330
|
-
*
|
|
1331
|
-
*
|
|
1332
|
-
*
|
|
1333
|
-
*
|
|
1334
|
-
*
|
|
1335
|
-
* change. Instead every sunken surface paints the same film the page does, so
|
|
1336
|
-
* the five levels hold by construction whatever `pageWash` is set to. The
|
|
1337
|
-
* property is unset outside an AppShell and falls back to `transparent`.
|
|
1338
|
-
*
|
|
1339
|
-
* State washes stack ON TOP of it — `linear-gradient(state), linear-gradient(wash)`
|
|
1340
|
-
* — because one background-color cannot carry two translucent layers.
|
|
1327
|
+
/* ⚠️ `SunkenWellEatenByPageWash` IS NOT SOLVED HERE — see the ticket.
|
|
1328
|
+
* On 2026-08-30 these rules briefly painted `--kol-shell-page-wash` as a
|
|
1329
|
+
* background layer so the well would track a washed page. That was the wrong
|
|
1330
|
+
* layer (user: *"we are talking about components, wash affects background"*):
|
|
1331
|
+
* a control has no business reproducing a page-level film, and portalling
|
|
1332
|
+
* proved it — `.kol-dd-panel` renders at document.body, could not inherit the
|
|
1333
|
+
* property, and drew a different colour from its own trigger. Reverted.
|
|
1334
|
+
* The collision is a PAGE/token question and belongs there.
|
|
1341
1335
|
*
|
|
1342
1336
|
* THE SUNKEN TONE IS `surface-tertiary`, NOT `oq-inverse-96` (measured on
|
|
1343
1337
|
* kol-fxr's /settings, 2026-08-30). The whole set read `--kol-oq-inverse-96`,
|
|
@@ -1356,13 +1350,13 @@
|
|
|
1356
1350
|
* `surface-tertiary` is `#0e0e11` in dark (14.2, genuinely below the page) and
|
|
1357
1351
|
* `#ffffff` in light, so it is theme-correct on both sides where a mix toward
|
|
1358
1352
|
* a fixed near-white could only ever be right on one. */
|
|
1359
|
-
.kol-view-toggle.kol-tone-sunken, .kol-view-toggle.kol-tone-inverse { background-color: var(--kol-surface-sunken);
|
|
1353
|
+
.kol-view-toggle.kol-tone-sunken, .kol-view-toggle.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
|
|
1360
1354
|
.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); }
|
|
1361
1355
|
.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: var(--kol-fg-04); }
|
|
1362
|
-
.kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-surface-sunken);
|
|
1363
|
-
.kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-surface-sunken);
|
|
1356
|
+
.kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
|
|
1357
|
+
.kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
|
|
1364
1358
|
/* the tone's fill, one selector — nothing left to cancel (2026-08-28) */
|
|
1365
|
-
.kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse { background-color: var(--kol-surface-sunken);
|
|
1359
|
+
.kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
|
|
1366
1360
|
/* THE PANEL IS OPAQUE (user 2026-08-28: "transparent doesn't work for
|
|
1367
1361
|
* dropdown") — it floats over page content, and every `fg-*` stop is an alpha
|
|
1368
1362
|
* wash that the content reads through. `oq-inverse-*`, the opaque tier, bakes
|
|
@@ -1370,7 +1364,7 @@
|
|
|
1370
1364
|
* lands ~23.5 against the #121215 page's 18: lighter than the page, the wrong
|
|
1371
1365
|
* side of it. `surface-tertiary` is the flat twin of what the trigger renders:
|
|
1372
1366
|
* #0e0e11 (14.0) in dark against the trigger's 14.2, #ffffff in light. */
|
|
1373
|
-
.kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-surface-sunken);
|
|
1367
|
+
.kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-surface-sunken); }
|
|
1374
1368
|
/* the rest of the set — Button (icon-only especially), IconFrame, ThemeToggle:
|
|
1375
1369
|
* the well, transparent edge, fg-96 ink; hover the CONTRAST wash, pressed the
|
|
1376
1370
|
* fg-08 chip — both LAYERED over the well (a gradient image over the fill),
|
|
@@ -1403,20 +1397,19 @@
|
|
|
1403
1397
|
.kol-icon-frame.kol-tone-sunken,
|
|
1404
1398
|
.kol-theme-toggle.kol-tone-sunken {
|
|
1405
1399
|
background-color: var(--kol-surface-sunken);
|
|
1406
|
-
background-image: linear-gradient(var(--kol-shell-page-wash, transparent), var(--kol-shell-page-wash, transparent));
|
|
1407
1400
|
border-color: transparent;
|
|
1408
1401
|
color: var(--kol-fg-96);
|
|
1409
1402
|
}
|
|
1410
1403
|
@media (hover: hover) {
|
|
1411
1404
|
.kol-btn.kol-tone-sunken:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):hover {
|
|
1412
1405
|
background-color: var(--kol-surface-sunken);
|
|
1413
|
-
background-image: linear-gradient(var(--kol-fg-04), var(--kol-fg-04))
|
|
1406
|
+
background-image: linear-gradient(var(--kol-fg-04), var(--kol-fg-04));
|
|
1414
1407
|
color: var(--kol-fg-96);
|
|
1415
1408
|
}
|
|
1416
1409
|
}
|
|
1417
1410
|
.kol-btn.kol-tone-sunken.kol-btn-pressed:not(.kol-dd-trigger),
|
|
1418
1411
|
.kol-btn.kol-tone-sunken:not(:disabled):not(.kol-dd-trigger):active {
|
|
1419
1412
|
background-color: var(--kol-surface-sunken);
|
|
1420
|
-
background-image: linear-gradient(var(--kol-fg-08), var(--kol-fg-08))
|
|
1413
|
+
background-image: linear-gradient(var(--kol-fg-08), var(--kol-fg-08));
|
|
1421
1414
|
color: var(--kol-fg-96);
|
|
1422
1415
|
}
|
package/kol-opaque.css
CHANGED
|
@@ -259,6 +259,7 @@
|
|
|
259
259
|
--kol-oq-ab-80: color-mix(in srgb, var(--kol-color-ab-white) 80%, var(--kol-color-ab-black));
|
|
260
260
|
--kol-oq-ab-88: color-mix(in srgb, var(--kol-color-ab-white) 88%, var(--kol-color-ab-black));
|
|
261
261
|
--kol-oq-ab-96: color-mix(in srgb, var(--kol-color-ab-white) 96%, var(--kol-color-ab-black));
|
|
262
|
+
--kol-oq-ab-100: var(--kol-color-ab-white);
|
|
262
263
|
|
|
263
264
|
--kol-oq-ab-inverse-01: color-mix(in srgb, var(--kol-color-ab-black) 1%, var(--kol-color-ab-white));
|
|
264
265
|
--kol-oq-ab-inverse-02: color-mix(in srgb, var(--kol-color-ab-black) 2%, var(--kol-color-ab-white));
|
|
@@ -275,6 +276,7 @@
|
|
|
275
276
|
--kol-oq-ab-inverse-80: color-mix(in srgb, var(--kol-color-ab-black) 80%, var(--kol-color-ab-white));
|
|
276
277
|
--kol-oq-ab-inverse-88: color-mix(in srgb, var(--kol-color-ab-black) 88%, var(--kol-color-ab-white));
|
|
277
278
|
--kol-oq-ab-inverse-96: color-mix(in srgb, var(--kol-color-ab-black) 96%, var(--kol-color-ab-white));
|
|
279
|
+
--kol-oq-ab-inverse-100: var(--kol-color-ab-black);
|
|
278
280
|
}
|
|
279
281
|
|
|
280
282
|
/* DARK — the ground is black, so `ab` starts from black */
|
|
@@ -294,6 +296,7 @@
|
|
|
294
296
|
--kol-oq-ab-80: color-mix(in srgb, var(--kol-color-ab-black) 80%, var(--kol-color-ab-white));
|
|
295
297
|
--kol-oq-ab-88: color-mix(in srgb, var(--kol-color-ab-black) 88%, var(--kol-color-ab-white));
|
|
296
298
|
--kol-oq-ab-96: color-mix(in srgb, var(--kol-color-ab-black) 96%, var(--kol-color-ab-white));
|
|
299
|
+
--kol-oq-ab-100: var(--kol-color-ab-black);
|
|
297
300
|
|
|
298
301
|
--kol-oq-ab-inverse-01: color-mix(in srgb, var(--kol-color-ab-white) 1%, var(--kol-color-ab-black));
|
|
299
302
|
--kol-oq-ab-inverse-02: color-mix(in srgb, var(--kol-color-ab-white) 2%, var(--kol-color-ab-black));
|
|
@@ -310,6 +313,7 @@
|
|
|
310
313
|
--kol-oq-ab-inverse-80: color-mix(in srgb, var(--kol-color-ab-white) 80%, var(--kol-color-ab-black));
|
|
311
314
|
--kol-oq-ab-inverse-88: color-mix(in srgb, var(--kol-color-ab-white) 88%, var(--kol-color-ab-black));
|
|
312
315
|
--kol-oq-ab-inverse-96: color-mix(in srgb, var(--kol-color-ab-white) 96%, var(--kol-color-ab-black));
|
|
316
|
+
--kol-oq-ab-inverse-100: var(--kol-color-ab-white);
|
|
313
317
|
}
|
|
314
318
|
|
|
315
319
|
/* system-follow: the block a user who never touched the toggle gets */
|
|
@@ -330,6 +334,7 @@
|
|
|
330
334
|
--kol-oq-ab-80: color-mix(in srgb, var(--kol-color-ab-black) 80%, var(--kol-color-ab-white));
|
|
331
335
|
--kol-oq-ab-88: color-mix(in srgb, var(--kol-color-ab-black) 88%, var(--kol-color-ab-white));
|
|
332
336
|
--kol-oq-ab-96: color-mix(in srgb, var(--kol-color-ab-black) 96%, var(--kol-color-ab-white));
|
|
337
|
+
--kol-oq-ab-100: var(--kol-color-ab-black);
|
|
333
338
|
|
|
334
339
|
--kol-oq-ab-inverse-01: color-mix(in srgb, var(--kol-color-ab-white) 1%, var(--kol-color-ab-black));
|
|
335
340
|
--kol-oq-ab-inverse-02: color-mix(in srgb, var(--kol-color-ab-white) 2%, var(--kol-color-ab-black));
|
|
@@ -346,6 +351,7 @@
|
|
|
346
351
|
--kol-oq-ab-inverse-80: color-mix(in srgb, var(--kol-color-ab-white) 80%, var(--kol-color-ab-black));
|
|
347
352
|
--kol-oq-ab-inverse-88: color-mix(in srgb, var(--kol-color-ab-white) 88%, var(--kol-color-ab-black));
|
|
348
353
|
--kol-oq-ab-inverse-96: color-mix(in srgb, var(--kol-color-ab-white) 96%, var(--kol-color-ab-black));
|
|
354
|
+
--kol-oq-ab-inverse-100: var(--kol-color-ab-white);
|
|
349
355
|
}
|
|
350
356
|
}
|
|
351
357
|
/* CLASSES — absolute tiers */
|
|
@@ -364,6 +370,7 @@
|
|
|
364
370
|
.bg-oq-ab-80 { background-color: var(--kol-oq-ab-80); }
|
|
365
371
|
.bg-oq-ab-88 { background-color: var(--kol-oq-ab-88); }
|
|
366
372
|
.bg-oq-ab-96 { background-color: var(--kol-oq-ab-96); }
|
|
373
|
+
.bg-oq-ab-100 { background-color: var(--kol-oq-ab-100); }
|
|
367
374
|
|
|
368
375
|
.bg-oq-ab-inverse-01 { background-color: var(--kol-oq-ab-inverse-01); }
|
|
369
376
|
.bg-oq-ab-inverse-02 { background-color: var(--kol-oq-ab-inverse-02); }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.110.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",
|