@kolkrabbi/kol-theme 0.89.0 → 0.91.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-components-atoms.css +21 -15
- package/kol-components-molecules.css +23 -25
- package/package.json +1 -1
package/kol-components-atoms.css
CHANGED
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
border: 1px solid transparent;
|
|
244
244
|
}
|
|
245
245
|
@media (hover: hover) {
|
|
246
|
-
.kol-btn-primary:not(.kol-btn-animate):hover {
|
|
246
|
+
.kol-btn-primary:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
247
247
|
background-color: var(--kol-oq-08);
|
|
248
248
|
color: var(--kol-surface-on-primary);
|
|
249
249
|
}
|
|
@@ -256,7 +256,7 @@
|
|
|
256
256
|
font-weight: 500;
|
|
257
257
|
}
|
|
258
258
|
@media (hover: hover) {
|
|
259
|
-
.kol-btn-secondary:not(.kol-btn-animate):hover {
|
|
259
|
+
.kol-btn-secondary:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
260
260
|
background-color: var(--kol-oq-inverse-40);
|
|
261
261
|
color: var(--kol-surface-primary);
|
|
262
262
|
border-color: transparent;
|
|
@@ -270,7 +270,7 @@
|
|
|
270
270
|
font-weight: 500;
|
|
271
271
|
}
|
|
272
272
|
@media (hover: hover) {
|
|
273
|
-
.kol-btn-accent:not(.kol-btn-animate):hover {
|
|
273
|
+
.kol-btn-accent:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
274
274
|
background-color: var(--kol-accent-primary-strong);
|
|
275
275
|
color: var(--kol-accent-on-primary);
|
|
276
276
|
}
|
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
border: 1px solid var(--kol-oq-08);
|
|
287
287
|
}
|
|
288
288
|
@media (hover: hover) {
|
|
289
|
-
.kol-btn-outline:not(.kol-btn-animate):hover {
|
|
289
|
+
.kol-btn-outline:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
290
290
|
background-color: var(--kol-oq-02);
|
|
291
291
|
border-color: color-mix(in srgb, var(--kol-surface-on-primary) 25%, var(--kol-surface-primary));
|
|
292
292
|
color: var(--kol-surface-on-primary);
|
|
@@ -299,7 +299,7 @@
|
|
|
299
299
|
border: 1px solid transparent;
|
|
300
300
|
}
|
|
301
301
|
@media (hover: hover) {
|
|
302
|
-
.kol-btn-ghost:not(.kol-btn-animate):hover {
|
|
302
|
+
.kol-btn-ghost:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
303
303
|
background-color: var(--kol-oq-04);
|
|
304
304
|
color: var(--kol-surface-on-primary);
|
|
305
305
|
}
|
|
@@ -318,7 +318,7 @@
|
|
|
318
318
|
border: 1px solid transparent;
|
|
319
319
|
}
|
|
320
320
|
@media (hover: hover) {
|
|
321
|
-
.kol-btn-nav:not(.kol-btn-animate):hover {
|
|
321
|
+
.kol-btn-nav:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
322
322
|
background-color: var(--kol-oq-04);
|
|
323
323
|
color: var(--kol-surface-on-primary);
|
|
324
324
|
}
|
|
@@ -343,7 +343,7 @@
|
|
|
343
343
|
border: 1px solid transparent;
|
|
344
344
|
}
|
|
345
345
|
@media (hover: hover) {
|
|
346
|
-
.kol-btn-grey:not(.kol-btn-animate):hover {
|
|
346
|
+
.kol-btn-grey:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
347
347
|
background-color: var(--kol-oq-16);
|
|
348
348
|
color: var(--kol-surface-on-primary);
|
|
349
349
|
}
|
|
@@ -360,7 +360,7 @@
|
|
|
360
360
|
font-weight: 500;
|
|
361
361
|
}
|
|
362
362
|
@media (hover: hover) {
|
|
363
|
-
.kol-btn-danger:not(.kol-btn-animate):hover {
|
|
363
|
+
.kol-btn-danger:not(.kol-btn-animate):not(.kol-dd-trigger):hover {
|
|
364
364
|
background-color: color-mix(in srgb, var(--ui-error) 80%, var(--kol-surface-primary));
|
|
365
365
|
color: var(--kol-color-absolute-white);
|
|
366
366
|
}
|
|
@@ -372,13 +372,19 @@
|
|
|
372
372
|
|
|
373
373
|
/* Press feedback — one stop past hover (2026-07-08 button-states spec).
|
|
374
374
|
* Outside the hover guard: :active fires on touch too. */
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
.kol-btn-
|
|
375
|
+
/* NO HOVER, NO PRESS ON A DROPDOWN TRIGGER (user ruling 2026-08-28). Every
|
|
376
|
+
* variant excludes `.kol-dd-trigger` at the SOURCE. It used to be cancelled
|
|
377
|
+
* downstream — kol-components-molecules re-stated each variant's rest colours
|
|
378
|
+
* on :hover — and that restatement was specificity (0,4,0) against the sunken
|
|
379
|
+
* tone's (0,2,0), so hovering a SUNKEN trigger repainted it in the untoned
|
|
380
|
+
* fill: a light box beside two icon controls that stayed dark. */
|
|
381
|
+
.kol-btn-primary:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):active { background-color: var(--kol-oq-16); }
|
|
382
|
+
.kol-btn-secondary:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):active { background-color: var(--kol-oq-inverse-48); color: var(--kol-surface-primary); }
|
|
383
|
+
.kol-btn-accent:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):active { background-color: color-mix(in srgb, var(--kol-accent-primary) 70%, var(--kol-surface-primary)); }
|
|
384
|
+
.kol-btn-outline:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):active,
|
|
385
|
+
.kol-btn-ghost:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):active { background-color: var(--kol-oq-08); }
|
|
386
|
+
.kol-btn-danger:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):active { background-color: color-mix(in srgb, var(--ui-error) 70%, var(--kol-surface-primary)); }
|
|
387
|
+
.kol-btn-grey:not(.kol-btn-animate):not(:disabled):not(.kol-dd-trigger):active { background-color: var(--kol-oq-24); }
|
|
382
388
|
|
|
383
389
|
.kol-btn:disabled,
|
|
384
390
|
.kol-btn[disabled] {
|
|
@@ -36,23 +36,27 @@
|
|
|
36
36
|
gap: var(--kol-spacing-1);
|
|
37
37
|
width: 100%;
|
|
38
38
|
}
|
|
39
|
-
/*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
.kol-dd-trigger.kol-btn-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
39
|
+
/* THE TRIGGER IS ON THE ICON LADDER (DropdownHeightAndHover, kol-fxr 2026-08-28).
|
|
40
|
+
* A text button takes its height from padding — `.kol-btn-sm` is `4px 12px` on
|
|
41
|
+
* mono-12, about 24 — while every icon control beside it is PINNED
|
|
42
|
+
* (`.kol-btn-icon.kol-btn-sm` is 28×28, the 2026-07-28 law: "the box never
|
|
43
|
+
* moves"). So a `sm` Dropdown sat 4px short of the `IconFrame` and `ThemeToggle`
|
|
44
|
+
* on its own row — the picker-then-icon-cluster header that kol-r2b2 draws and
|
|
45
|
+
* the estate is copying. The trigger is the one text control that always sits in
|
|
46
|
+
* an icon row, so it takes the icon rungs: 28 / 32 / 36. Horizontal padding is
|
|
47
|
+
* untouched; the vertical goes, because the flex box centres the label. */
|
|
48
|
+
.kol-dd-trigger.kol-btn-sm { height: 28px; padding-block: 0; }
|
|
49
|
+
.kol-dd-trigger.kol-btn-md { height: 32px; padding-block: 0; }
|
|
50
|
+
.kol-dd-trigger.kol-btn-lg { height: 36px; padding-block: 0; }
|
|
51
|
+
/* REST AND OPEN ARE THE ONLY STATES (2026-07-15, re-called 2026-08-09 and
|
|
52
|
+
* 2026-08-28). No :hover or :active rules for the trigger live here any more —
|
|
53
|
+
* kol-components-atoms.css excludes `.kol-dd-trigger` from every variant's
|
|
54
|
+
* hover and press instead. The pin-backs that stood here restated each
|
|
55
|
+
* variant's REST colours to cancel the button's, and that failed twice: one
|
|
56
|
+
* went stale when `.kol-btn-outline`'s rest border moved (2026-08-26), and a
|
|
57
|
+
* pin-back out-specifies the tone, so a sunken trigger hovered into the
|
|
58
|
+
* untoned fill. "No state" is an absence now, not a mirror. */
|
|
59
|
+
|
|
56
60
|
/* ONE PIECE MEANS ONE WIDTH (2026-08-09 user call — "they are connected").
|
|
57
61
|
* The trigger reserves the widest option's width by stacking every label in
|
|
58
62
|
* one grid cell (hidden ghosts), so the panel — pinned to the trigger by
|
|
@@ -1263,14 +1267,8 @@
|
|
|
1263
1267
|
.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-absolute-white) 8%, transparent); }
|
|
1264
1268
|
.kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-fg-inverse-96); }
|
|
1265
1269
|
.kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-fg-inverse-96); }
|
|
1266
|
-
/*
|
|
1267
|
-
|
|
1268
|
-
* `.kol-dd-trigger:hover/:active` rules paint surface-secondary, so the tone
|
|
1269
|
-
* re-states its own fill on all three and nothing moves. Deleting them gives
|
|
1270
|
-
* the hover back. */
|
|
1271
|
-
.kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse,
|
|
1272
|
-
.kol-dd-trigger.kol-tone-sunken:not(:disabled):hover, .kol-dd-trigger.kol-tone-inverse:not(:disabled):hover,
|
|
1273
|
-
.kol-dd-trigger.kol-tone-sunken:not(:disabled):active, .kol-dd-trigger.kol-tone-inverse:not(:disabled):active { background-color: var(--kol-fg-inverse-96); }
|
|
1270
|
+
/* the tone's fill, one selector — nothing left to cancel (2026-08-28) */
|
|
1271
|
+
.kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse { background-color: var(--kol-fg-inverse-96); }
|
|
1274
1272
|
/* THE PANEL IS OPAQUE (user 2026-08-28: "transparent doesn't work for
|
|
1275
1273
|
* dropdown") — it floats over page content, and every `fg-*` stop is an alpha
|
|
1276
1274
|
* wash that the content reads through. `oq-inverse-*`, the opaque tier, bakes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.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",
|