@kolkrabbi/kol-theme 0.98.0 → 0.100.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.
@@ -995,15 +995,21 @@
995
995
  color: var(--kol-fg-emphasis);
996
996
  text-align: right;
997
997
  }
998
- /* THE THUMB IS A FIXED SQUARE BOX (ContentRowsAndPrintCard, kol-website
999
- * 2026-08-27 — user: "the image should not control height, image should fit
1000
- * the row image placeholder"). Verbatim from the /stack + /prints tune: the
1001
- * box is `--kol-row-thumb` wide and square, sits at the top of the row, and
1002
- * whatever is inside fills it (ContentMedia object-covers). Row height =
1003
- * max(thumb, text) — an image's intrinsic height never sizes a row again. */
998
+ /* THE THUMB IS A FIXED BOX (ContentRowsAndPrintCard, kol-website 2026-08-27 —
999
+ * user: "the image should not control height, image should fit the row image
1000
+ * placeholder"). The box is `--kol-row-thumb` wide, sits at the top of the row,
1001
+ * and whatever is inside fills it (ContentMedia object-covers). Row height =
1002
+ * max(thumb, text) an image's intrinsic height never sizes a row again.
1003
+ *
1004
+ * SQUARE IS THE DEFAULT, NOT THE LAW (RowThumbRatioDead, kol-website
1005
+ * 2026-08-30). `aspect-ratio: 1 / 1` was hard-coded here, and ContentRow passed
1006
+ * `ratio={null}` to ContentMedia, so the component's own documented `ratio`
1007
+ * prop reached nothing — /prints set `1 / 1.41421` for its A-series posters and
1008
+ * the render did not move. Now a variable with `1 / 1` as the fallback: every
1009
+ * existing consumer is pixel-identical, and the prop works. */
1004
1010
  .kol-row > .kol-row-thumb {
1005
1011
  width: var(--kol-row-thumb);
1006
- aspect-ratio: 1 / 1;
1012
+ aspect-ratio: var(--kol-row-thumb-ratio, 1 / 1);
1007
1013
  align-self: flex-start;
1008
1014
  }
1009
1015
  .kol-row > .kol-row-thumb > * {
@@ -1011,8 +1017,31 @@
1011
1017
  width: 100%;
1012
1018
  }
1013
1019
  /* `thumb="fill"` (WorkListingRowsAndFilters, 2026-08-27): the row publishes
1014
- * `--kol-row-thumb` as the rung minus its vertical padding, so the square above
1015
- * IS the content height — `/work`: 136 in a 168 row at 16 padding. */
1020
+ * `--kol-row-thumb` as the rung minus its vertical padding `/work`: 136 in a
1021
+ * 168 row at 16 padding.
1022
+ *
1023
+ * RULED 2026-08-30 (the ask's third box): under `fill`, that number is the
1024
+ * HEIGHT, not the width. "Fill" means fill the row's content height — that is
1025
+ * the whole promise of the value — so a non-square ratio has to widen the
1026
+ * thumb, never grow the row past its rung. Keeping it as the width would make
1027
+ * an A-series fill thumb 1.41× taller than the row it is filling, which is the
1028
+ * one thing the 08-27 ruling exists to prevent. Square is unaffected: at
1029
+ * `1 / 1` width and height are the same number either way. */
1030
+ .kol-row > .kol-row-thumb.is-fill {
1031
+ width: auto;
1032
+ height: var(--kol-row-thumb);
1033
+ }
1034
+ /* WHICH AXIS PAYS for a non-square ratio (RowRungAndFillThumb, kol-website
1035
+ * 2026-08-30). The 08-30 ruling above made the rung the HEIGHT unconditionally,
1036
+ * so an A-series thumb on a 168 row went 136×136 → 96×136: the ratio came out
1037
+ * of the width, and the width is what sets a listing's rhythm against the rest
1038
+ * of the page. That was a ruling where a choice belonged — `ratioAxis="height"`
1039
+ * holds the width at the rung and lets the thumb grow taller instead
1040
+ * (136×192). Default is unchanged, so nothing that exists moves. */
1041
+ .kol-row > .kol-row-thumb.is-fill.pays-height {
1042
+ width: var(--kol-row-thumb);
1043
+ height: auto;
1044
+ }
1016
1045
 
1017
1046
  /* CONTAINER query, not a viewport one (2026-08-15). The row steps on the width
1018
1047
  * of the WALL it sits in, for exactly the reason the card-wall law gives: the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.98.0",
3
+ "version": "0.100.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",