@kolkrabbi/kol-theme 0.81.0 → 0.82.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.
@@ -1327,32 +1327,58 @@
1327
1327
  }
1328
1328
 
1329
1329
  /* ─────────────────────────────────────────────────────────────────────
1330
- * TONE — inverse (ControlToneInverse, kol-website 2026-08-27; user on brand's
1331
- * /icons over a `pageWash` of fg-04: "a flipped version of this color scheme,
1332
- * where the darker is background and grey is the active it would fit better
1333
- * on the light grey" "that would also need to be a variant for the dropdown
1334
- * and the input" — "the active grey can be lighter"). On a washed plane the
1335
- * default grey well reads as a second plate. `tone="inverse"` on ViewToggle
1336
- * (icon) · Dropdown · Input · SearchInput stamps `.kol-tone-inverse`; the rules
1337
- * live HERE, after every default they out-rank, so a consumer never restates
1338
- * them (brand's stopgap did).
1330
+ * TONE — sunken (ControlToneSunken, kol-website 2026-08-28; was "inverse",
1331
+ * ControlToneInverse 2026-08-27). User, on brand's /icons over a `pageWash`:
1332
+ * "a flipped version of this color scheme, where the darker is background and
1333
+ * grey is the active it would fit better on the light grey" and then, on
1334
+ * the name: the control does not INVERT anything, it sits BELOW the plane it
1335
+ * is on `sunken`. ("inverse" already meant four things: `tone` here,
1336
+ * `variant` on Tag/Pill, `theme` on Section, a boolean on Divider.) On a
1337
+ * washed plane the default grey well reads as a second plate, so the set takes
1338
+ * ONE tone: `tone="sunken"` (`inverse` aliased) on ViewToggle (icon) ·
1339
+ * Dropdown · Input · SearchInput · Button · IconFrame · ThemeToggle stamps
1340
+ * `.kol-tone-sunken`; the rules live HERE, after every default they out-rank,
1341
+ * so a consumer never restates them (brand hand-wrote the fill and GUESSED
1342
+ * the ink for its two icon buttons — that fork is what widening the set ends).
1339
1343
  *
1340
- * The chip is `fg-absolute-24` theme-invariant black, as the icon well's
1341
- * active state already was so it darkens on either theme; the active chip
1342
- * is the fg-16 ink wash (ruled on the page); a dark well wants a LIGHTER hover,
1343
- * so the inactive hover is an absolute-white wash.
1344
+ * THE SET: well `fg-absolute-24` (theme-invariant black, darkens either
1345
+ * theme) · active chip `fg-08` (user ruling 2026-08-28, down from the 0.78.1
1346
+ * fg-16) · inactive hover absolute-white @ 8% (a dark well wants a LIGHTER
1347
+ * hover) · ink `fg-96`. `.kol-tone-inverse` stays selected for any class
1348
+ * hand-stamped on the old name.
1344
1349
  * ───────────────────────────────────────────────────────────────────── */
1345
- .kol-view-toggle.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1346
- /* the active chip is the fg-16 INK WASH (user ruling 2026-08-27 on the live page — "why are you using
1347
- * absolute transparent? just use bg-fg-16"; surface-tertiary sat BELOW secondary on the dark ramp):
1348
- * it lifts off the fg-absolute-24 well on both themes */
1349
- .kol-view-toggle.kol-tone-inverse > button[aria-pressed="true"] { background-color: var(--kol-fg-16); }
1350
- .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); }
1351
- .kol-control.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1352
- .kol-expand.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1350
+ .kol-view-toggle.kol-tone-sunken, .kol-view-toggle.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1351
+ .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); }
1352
+ .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); }
1353
+ .kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1354
+ .kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1353
1355
  /* the trigger: rest and open are its only states — the pin-back rules above
1354
- * paint surface-secondary on hover/active, so the inverse pins its own chip */
1355
- .kol-dd-trigger.kol-tone-inverse,
1356
- .kol-dd-trigger.kol-tone-inverse:not(:disabled):hover,
1357
- .kol-dd-trigger.kol-tone-inverse:not(:disabled):active { background-color: var(--kol-fg-absolute-24); }
1358
- .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1356
+ * paint surface-secondary on hover/active, so the tone pins its own chip */
1357
+ .kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse,
1358
+ .kol-dd-trigger.kol-tone-sunken:not(:disabled):hover, .kol-dd-trigger.kol-tone-inverse:not(:disabled):hover,
1359
+ .kol-dd-trigger.kol-tone-sunken:not(:disabled):active, .kol-dd-trigger.kol-tone-inverse:not(:disabled):active { background-color: var(--kol-fg-absolute-24); }
1360
+ .kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
1361
+ /* the rest of the set — Button (icon-only especially), IconFrame, ThemeToggle:
1362
+ * the well, transparent edge, fg-96 ink; hover the white wash, pressed the
1363
+ * fg-08 chip — both LAYERED over the well (a gradient image over the fill),
1364
+ * since one background cannot stack two translucent colours */
1365
+ .kol-btn.kol-tone-sunken,
1366
+ .kol-icon-frame.kol-tone-sunken,
1367
+ .kol-theme-toggle.kol-tone-sunken {
1368
+ background-color: var(--kol-fg-absolute-24);
1369
+ border-color: transparent;
1370
+ color: var(--kol-fg-96);
1371
+ }
1372
+ @media (hover: hover) {
1373
+ .kol-btn.kol-tone-sunken:not(.kol-btn-animate):not(:disabled):hover {
1374
+ background-color: var(--kol-fg-absolute-24);
1375
+ background-image: linear-gradient(color-mix(in srgb, var(--kol-color-absolute-white) 8%, transparent), color-mix(in srgb, var(--kol-color-absolute-white) 8%, transparent));
1376
+ color: var(--kol-fg-96);
1377
+ }
1378
+ }
1379
+ .kol-btn.kol-tone-sunken.kol-btn-pressed,
1380
+ .kol-btn.kol-tone-sunken:not(:disabled):active {
1381
+ background-color: var(--kol-fg-absolute-24);
1382
+ background-image: linear-gradient(var(--kol-fg-08), var(--kol-fg-08));
1383
+ color: var(--kol-fg-96);
1384
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.81.0",
3
+ "version": "0.82.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",