@kolkrabbi/kol-theme 0.72.0 → 0.74.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.
@@ -1112,7 +1112,12 @@
1112
1112
  .kol-media-zoom > img,
1113
1113
  .kol-media-zoom > video {
1114
1114
  transition: transform 600ms var(--kol-ease-house);
1115
- transform-origin: center;
1115
+ /* THE ANCHOR IS THE CONSUMER'S (ContentMediaFocusBinding, kol-monitor
1116
+ * 2026-08-27): `--kol-media-focus`, bound once on a repo's :root, is where
1117
+ * the image pins for the fit (ContentMedia natural / compact read the same
1118
+ * token, default top left) and from where the zoom grows. Unset = center,
1119
+ * today's value. Monitor binds `top left`. */
1120
+ transform-origin: var(--kol-media-focus, center);
1116
1121
  }
1117
1122
 
1118
1123
  @media (hover: hover) {
@@ -1178,6 +1183,42 @@
1178
1183
  * 2026-08-27): in the 320px column preview a document scaled to the frame; in
1179
1184
  * the overlay a readable sheet, not full-bleed over the page. */
1180
1185
  .kol-column-browser-preview .kol-prose { zoom: 0.5; }
1186
+
1187
+ /* ColumnBrowser resize handles (ColumnBrowserResize, kol-r2b2 2026-08-27 —
1188
+ * Finder's edge handles, user ruling "that should be a set in ds"; native CSS
1189
+ * `resize:` rejected). The column border already there is the visual; the
1190
+ * strip is the HIT AREA — 8px, invisible at rest, fg-08 on hover and while the
1191
+ * pointer is captured. The x handle is a flex sibling pulled back over the
1192
+ * column's right edge (net zero width); the y handle rides the root's bottom
1193
+ * edge, above the horizontal scroll box so it spans the visible width. */
1194
+ .kol-column-browser-resize-x {
1195
+ position: relative;
1196
+ z-index: 1;
1197
+ flex: none;
1198
+ align-self: stretch;
1199
+ width: 8px;
1200
+ margin-left: -8px;
1201
+ cursor: col-resize;
1202
+ touch-action: none;
1203
+ transition: background-color var(--kol-transition-fast);
1204
+ }
1205
+ .kol-column-browser-resize-y {
1206
+ position: absolute;
1207
+ left: 0;
1208
+ right: 0;
1209
+ bottom: 0;
1210
+ z-index: 1;
1211
+ height: 8px;
1212
+ cursor: row-resize;
1213
+ touch-action: none;
1214
+ transition: background-color var(--kol-transition-fast);
1215
+ }
1216
+ .kol-column-browser-resize-x:hover,
1217
+ .kol-column-browser-resize-x.is-dragging,
1218
+ .kol-column-browser-resize-y:hover,
1219
+ .kol-column-browser-resize-y.is-dragging {
1220
+ background-color: var(--kol-fg-08);
1221
+ }
1181
1222
  .kol-overlay .kol-prose {
1182
1223
  max-width: var(--kol-content-measure);
1183
1224
  margin-inline: auto;
@@ -678,6 +678,27 @@
678
678
  .kol-table-sort:hover svg { opacity: 0.6; }
679
679
  [aria-sort] .kol-table-sort svg { opacity: 1; }
680
680
 
681
+ /* ─────────────────────────────────────────────────────────────────────
682
+ * ContentFilters — the FIRST group's column (ContentFiltersFirstGroupFixedWidth,
683
+ * kol-monitor 2026-08-27 — user ruling: "nope not hug, fix a size … if columns,
684
+ * maybe just use one?"). ONE CATALOG COLUMN: the `1fr` of `repeat(6, 1fr)` gap
685
+ * 24 — `(width − 5 × 24px) / 6`, a fraction, never a px — so the first group
686
+ * sits over the first card and the flowing groups start over the second. The
687
+ * header row is the CONTAINER (`100cqw`): the count + LIST/GRID strip beside
688
+ * the groups narrows the groups' box, and a `%` measured inside it came out
689
+ * short by the strip + gap. A page without a 6-column catalog (/work, a list)
690
+ * gets the same fraction of its own row, so the number is one everywhere.
691
+ * Components layer — a consumer's `group.className` width utility still wins
692
+ * on the odd page. Overrules the WIDTH of the 0.104.3 hug; by-position stands.
693
+ * ───────────────────────────────────────────────────────────────────── */
694
+ .kol-filters-row {
695
+ container-type: inline-size;
696
+ }
697
+ .kol-filters-first {
698
+ flex: none;
699
+ width: calc((100cqw - 120px) / 6);
700
+ }
701
+
681
702
  /* ─────────────────────────────────────────────────────────────────────
682
703
  * ContentCollection — src/organisms/ContentCollection.jsx (2026-08-15)
683
704
  * The enter stagger the collection owns; cards never animate themselves.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.72.0",
3
+ "version": "0.74.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",