@kolkrabbi/kol-component 0.98.0 → 0.99.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-component",
3
- "version": "0.98.0",
3
+ "version": "0.99.0",
4
4
  "description": "KOL design-system components — atoms through organisms, emitting canonical kol-* classes. Pairs with @kolkrabbi/kol-theme for styling.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,13 +24,13 @@
24
24
  "framer-motion": "^12.0.0",
25
25
  "gsap": "^3.13.0",
26
26
  "hls.js": "^1.6.0",
27
- "opentype.js": "^1.3.4",
27
+ "opentype.js": "^1.3.4 || ^2.0.0",
28
28
  "react": "^18.3.0 || ^19.0.0",
29
29
  "react-dom": "^18.3.0 || ^19.0.0",
30
30
  "react-router-dom": "^6.0.0 || ^7.0.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@kolkrabbi/kol-icons": "^0.19.0"
33
+ "@kolkrabbi/kol-icons": "^0.20.0"
34
34
  },
35
35
  "files": [
36
36
  "src",
@@ -44,7 +44,8 @@ const BOX = {
44
44
  * like I've said that before" — the ListingCardThumbBorder ruling): the selected
45
45
  * state reads from the checked ToggleCheckbox, not a fg-64 border */
46
46
  default: { layout: 'stack', border: null, bg: 'var(--kol-fg-02)', pad: 'var(--kol-pad-card-sm)' },
47
- catalog: { layout: 'fill-card', border: 'var(--kol-fg-04)', bg: 'var(--kol-fg-04)', pad: 'var(--kol-pad-card-sm) var(--kol-pad-card-md)', plateTop: true, plateBg: 'var(--kol-surface-primary)' },
47
+ /* frameHover: the frame steps fg-04 fg-16 on hover (ShellHomeSystem, 2026-08-27 the tertiary fill alone drowned the fg-04 border) */
48
+ catalog: { layout: 'fill-card', border: 'var(--kol-fg-04)', bg: 'var(--kol-fg-04)', pad: 'var(--kol-pad-card-sm) var(--kol-pad-card-md)', plateTop: true, plateBg: 'var(--kol-surface-primary)', frameHover: 'var(--kol-fg-16)' },
48
49
  /* flip: PrintGridCard's 3D turn on `isFlipped` → `selected` (ContentRowsAndPrintCard, 2026-08-27) */
49
50
  print: { layout: 'fill-card', border: null, bg: 'var(--kol-surface-secondary)', pad: 'var(--kol-pad-card-sm) var(--kol-pad-card-md)', plateTop: true, flip: true },
50
51
  article: { layout: 'stack', border: null, bg: null, pad: '0', mediaGap: 'var(--kol-spacing-4)' },
@@ -196,7 +197,8 @@ export default function ContentCard({
196
197
  frame: frame ?? MEDIA[variant]?.frame ?? false,
197
198
  ring: ring ?? MEDIA[variant]?.ring ?? false,
198
199
  borderHover: MEDIA[variant]?.borderHover ?? false,
199
- zoom: zoom ?? (isHero ? 'hero' : MEDIA[variant]?.zoom ?? false),
200
+ /* a catalog card with REAL media is image-led: it zooms (ShellHomeSystem) */
201
+ zoom: zoom ?? (isHero ? 'hero' : variant === 'catalog' ? media != null : MEDIA[variant]?.zoom ?? false),
200
202
  fade: MEDIA[variant]?.fade ?? false,
201
203
  }
202
204
 
@@ -301,7 +303,7 @@ export default function ContentCard({
301
303
 
302
304
  const common = {
303
305
  'data-tags': isHero && Array.isArray(text.tags) && text.tags.length ? text.tags.join(' ') : undefined,
304
- className: `kol-card group flex ${box.layout === 'canvas' && reveal != null ? 'has-reveal' : ''} ${expanded ? 'flex-row-reverse' : 'flex-col'} ${box.layout === 'drawer' ? 'relative overflow-hidden rounded-[var(--kol-radius-sm)]' : ''} ${framed ? 'overflow-hidden rounded-[var(--kol-radius-sm)]' : ''} ${box.border ? 'border' : ''} ${box.layout === 'canvas' ? 'relative' : ''} ${interactive ? 'cursor-pointer select-none' : ''} ${hoverBg && interactive ? 'kol-content-hover' : ''} ${className}`.trim(),
306
+ className: `kol-card group flex ${box.layout === 'canvas' && reveal != null ? 'has-reveal' : ''} ${expanded ? 'flex-row-reverse' : 'flex-col'} ${box.layout === 'drawer' ? 'relative overflow-hidden rounded-[var(--kol-radius-sm)]' : ''} ${framed ? 'overflow-hidden rounded-[var(--kol-radius-sm)]' : ''} ${box.border ? 'border' : ''} ${box.layout === 'canvas' ? 'relative' : ''} ${interactive ? 'cursor-pointer select-none' : ''} ${hoverBg && interactive ? 'kol-content-hover' : ''} ${interactive && box.frameHover ? 'kol-content-hover-frame' : ''} ${className}`.trim(),
305
307
  style: {
306
308
  /* same reason as ContentRow: rest colours are PROPERTIES, because an
307
309
  * inline background/borderColor outranks the hover class and the step
@@ -309,6 +311,7 @@ export default function ContentCard({
309
311
  '--kol-card-bg': box.bg ?? undefined,
310
312
  '--kol-card-border': box.border ? (selected ? 'var(--kol-fg-64)' : box.border) : undefined,
311
313
  '--kol-content-hover-bg': hoverBg ?? undefined,
314
+ '--kol-content-hover-border': box.frameHover ?? undefined,
312
315
  aspectRatio: box.height || expanded ? undefined : (box.layout !== 'stack' ? r : undefined),
313
316
  height: box.height,
314
317
  gridColumn: expanded ? 'span 2' : undefined,
@@ -52,7 +52,9 @@ const RAMP = {
52
52
  row: { title: 'kol-sans-heading-05 text-emphasis truncate', date: 'kol-mono-12 text-meta', size: 'kol-mono-12 text-meta' },
53
53
  },
54
54
  catalog: {
55
- card: { title: 'kol-mono-14 text-emphasis', detail: 'kol-mono-10 text-meta' },
55
+ /* detail truncates (ShellHomeSystem, 2026-08-27): a wrapping blurb set three
56
+ * cards' plates at three heights and misaligned the media */
57
+ card: { title: 'kol-mono-14 text-emphasis', detail: 'kol-mono-10 text-meta truncate' },
56
58
  row: { title: 'kol-mono-12 text-emphasis', detail: 'kol-mono-10 text-meta' },
57
59
  },
58
60
  print: {