@kolkrabbi/kol-theme 0.81.0 → 0.83.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-molecules.css +61 -36
- package/package.json +1 -1
|
@@ -1116,8 +1116,11 @@
|
|
|
1116
1116
|
* happening reads as a photograph breathing; a fast one reads as a
|
|
1117
1117
|
* glitch.
|
|
1118
1118
|
* ───────────────────────────────────────────────────────────────────── */
|
|
1119
|
-
|
|
1120
|
-
|
|
1119
|
+
/* THE TARGET IS THE WRAPPER'S CHILD, WHATEVER IT IS (CatalogCardFrameAndZoom,
|
|
1120
|
+
* kol-website 2026-08-28): a catalog card whose media is an SVG glyph on a
|
|
1121
|
+
* specimen plate resolves `zoom` true and got the class, the transition and no
|
|
1122
|
+
* motion while this named img/video. Everything but the ring hairline. */
|
|
1123
|
+
.kol-media-zoom > :not(.kol-media-ring) {
|
|
1121
1124
|
transition: transform 600ms var(--kol-ease-house);
|
|
1122
1125
|
/* THE ANCHOR IS THE CONSUMER'S (ContentMediaFocusBinding, kol-monitor
|
|
1123
1126
|
* 2026-08-27): `--kol-media-focus`, bound once on a repo's :root, is where
|
|
@@ -1128,16 +1131,14 @@
|
|
|
1128
1131
|
}
|
|
1129
1132
|
|
|
1130
1133
|
@media (hover: hover) {
|
|
1131
|
-
.group:hover .kol-media-zoom >
|
|
1132
|
-
.group:hover .kol-media-zoom > video {
|
|
1134
|
+
.group:hover .kol-media-zoom > :not(.kol-media-ring) {
|
|
1133
1135
|
transform: scale(1.06);
|
|
1134
1136
|
}
|
|
1135
1137
|
/* the HERO rung (StackCardHover, 2026-08-27 — user: "that is TOO MUCH
|
|
1136
1138
|
* ZOOM"): 1.06 on a ~1500px featured thumb is 90px of travel where the
|
|
1137
1139
|
* 500px list thumbs move 30. 1.02 on the hero is the same pixel travel.
|
|
1138
1140
|
* `ListingCard size="hero"` wears it; ContentMedia takes zoom="hero". */
|
|
1139
|
-
.group:hover .kol-media-zoom.is-hero >
|
|
1140
|
-
.group:hover .kol-media-zoom.is-hero > video {
|
|
1141
|
+
.group:hover .kol-media-zoom.is-hero > :not(.kol-media-ring) {
|
|
1141
1142
|
transform: scale(1.02);
|
|
1142
1143
|
}
|
|
1143
1144
|
}
|
|
@@ -1176,12 +1177,10 @@
|
|
|
1176
1177
|
}
|
|
1177
1178
|
|
|
1178
1179
|
@media (prefers-reduced-motion: reduce) {
|
|
1179
|
-
.kol-media-zoom >
|
|
1180
|
-
.kol-media-zoom > video {
|
|
1180
|
+
.kol-media-zoom > :not(.kol-media-ring) {
|
|
1181
1181
|
transition: none;
|
|
1182
1182
|
}
|
|
1183
|
-
.group:hover .kol-media-zoom >
|
|
1184
|
-
.group:hover .kol-media-zoom > video {
|
|
1183
|
+
.group:hover .kol-media-zoom > :not(.kol-media-ring) {
|
|
1185
1184
|
transform: none;
|
|
1186
1185
|
}
|
|
1187
1186
|
}
|
|
@@ -1327,32 +1326,58 @@
|
|
|
1327
1326
|
}
|
|
1328
1327
|
|
|
1329
1328
|
/* ─────────────────────────────────────────────────────────────────────
|
|
1330
|
-
* TONE —
|
|
1331
|
-
* /icons over a `pageWash
|
|
1332
|
-
*
|
|
1333
|
-
*
|
|
1334
|
-
*
|
|
1335
|
-
*
|
|
1336
|
-
*
|
|
1337
|
-
*
|
|
1338
|
-
*
|
|
1329
|
+
* TONE — sunken (ControlToneSunken, kol-website 2026-08-28; was "inverse",
|
|
1330
|
+
* ControlToneInverse 2026-08-27). User, on brand's /icons over a `pageWash`:
|
|
1331
|
+
* "a flipped version of this color scheme, where the darker is background and
|
|
1332
|
+
* grey is the active … it would fit better on the light grey" — and then, on
|
|
1333
|
+
* the name: the control does not INVERT anything, it sits BELOW the plane it
|
|
1334
|
+
* is on — `sunken`. ("inverse" already meant four things: `tone` here,
|
|
1335
|
+
* `variant` on Tag/Pill, `theme` on Section, a boolean on Divider.) On a
|
|
1336
|
+
* washed plane the default grey well reads as a second plate, so the set takes
|
|
1337
|
+
* ONE tone: `tone="sunken"` (`inverse` aliased) on ViewToggle (icon) ·
|
|
1338
|
+
* Dropdown · Input · SearchInput · Button · IconFrame · ThemeToggle stamps
|
|
1339
|
+
* `.kol-tone-sunken`; the rules live HERE, after every default they out-rank,
|
|
1340
|
+
* so a consumer never restates them (brand hand-wrote the fill and GUESSED
|
|
1341
|
+
* the ink for its two icon buttons — that fork is what widening the set ends).
|
|
1339
1342
|
*
|
|
1340
|
-
*
|
|
1341
|
-
*
|
|
1342
|
-
*
|
|
1343
|
-
*
|
|
1343
|
+
* THE SET: well `fg-absolute-24` (theme-invariant black, darkens either
|
|
1344
|
+
* theme) · active chip `fg-08` (user ruling 2026-08-28, down from the 0.78.1
|
|
1345
|
+
* fg-16) · inactive hover absolute-white @ 8% (a dark well wants a LIGHTER
|
|
1346
|
+
* hover) · ink `fg-96`. `.kol-tone-inverse` stays selected for any class
|
|
1347
|
+
* hand-stamped on the old name.
|
|
1344
1348
|
* ───────────────────────────────────────────────────────────────────── */
|
|
1345
|
-
.kol-view-toggle.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
.kol-
|
|
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); }
|
|
1349
|
+
.kol-view-toggle.kol-tone-sunken, .kol-view-toggle.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
|
|
1350
|
+
.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); }
|
|
1351
|
+
.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); }
|
|
1352
|
+
.kol-control.kol-tone-sunken, .kol-control.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
|
|
1353
|
+
.kol-expand.kol-tone-sunken, .kol-expand.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
|
|
1353
1354
|
/* the trigger: rest and open are its only states — the pin-back rules above
|
|
1354
|
-
* paint surface-secondary on hover/active, so the
|
|
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); }
|
|
1355
|
+
* paint surface-secondary on hover/active, so the tone pins its own chip */
|
|
1356
|
+
.kol-dd-trigger.kol-tone-sunken, .kol-dd-trigger.kol-tone-inverse,
|
|
1357
|
+
.kol-dd-trigger.kol-tone-sunken:not(:disabled):hover, .kol-dd-trigger.kol-tone-inverse:not(:disabled):hover,
|
|
1358
|
+
.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); }
|
|
1359
|
+
.kol-dd-panel.kol-tone-sunken, .kol-dd-panel.kol-tone-inverse { background-color: var(--kol-fg-absolute-24); }
|
|
1360
|
+
/* the rest of the set — Button (icon-only especially), IconFrame, ThemeToggle:
|
|
1361
|
+
* the well, transparent edge, fg-96 ink; hover the white wash, pressed the
|
|
1362
|
+
* fg-08 chip — both LAYERED over the well (a gradient image over the fill),
|
|
1363
|
+
* since one background cannot stack two translucent colours */
|
|
1364
|
+
.kol-btn.kol-tone-sunken,
|
|
1365
|
+
.kol-icon-frame.kol-tone-sunken,
|
|
1366
|
+
.kol-theme-toggle.kol-tone-sunken {
|
|
1367
|
+
background-color: var(--kol-fg-absolute-24);
|
|
1368
|
+
border-color: transparent;
|
|
1369
|
+
color: var(--kol-fg-96);
|
|
1370
|
+
}
|
|
1371
|
+
@media (hover: hover) {
|
|
1372
|
+
.kol-btn.kol-tone-sunken:not(.kol-btn-animate):not(:disabled):hover {
|
|
1373
|
+
background-color: var(--kol-fg-absolute-24);
|
|
1374
|
+
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));
|
|
1375
|
+
color: var(--kol-fg-96);
|
|
1376
|
+
}
|
|
1377
|
+
}
|
|
1378
|
+
.kol-btn.kol-tone-sunken.kol-btn-pressed,
|
|
1379
|
+
.kol-btn.kol-tone-sunken:not(:disabled):active {
|
|
1380
|
+
background-color: var(--kol-fg-absolute-24);
|
|
1381
|
+
background-image: linear-gradient(var(--kol-fg-08), var(--kol-fg-08));
|
|
1382
|
+
color: var(--kol-fg-96);
|
|
1383
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.83.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",
|