@kolkrabbi/kol-component 0.91.2 → 0.92.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.
|
|
3
|
+
"version": "0.92.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",
|
|
@@ -125,9 +125,9 @@ export default function ContentCard({
|
|
|
125
125
|
const metaChips = isHero && heroMeta != null ? (Array.isArray(heroMeta) ? heroMeta : [heroMeta]) : null
|
|
126
126
|
const heroHeader = isHero && (label != null || metaChips?.length) ? (
|
|
127
127
|
<div className="kol-card-hero-header flex items-center justify-between" style={{ marginBottom: 'var(--kol-spacing-4)' }}>
|
|
128
|
-
{label != null && <div className="kol-helper-14 text-
|
|
128
|
+
{label != null && <div className="kol-helper-14 text-fg-64">{label}</div>}
|
|
129
129
|
{metaChips?.length > 0 && (
|
|
130
|
-
<div className="flex gap-3 kol-helper-12 text-
|
|
130
|
+
<div className="flex gap-3 kol-helper-12 text-fg-48">
|
|
131
131
|
{metaChips.map((item, i) => <span key={i}>{item}</span>)}
|
|
132
132
|
</div>
|
|
133
133
|
)}
|
|
@@ -66,13 +66,12 @@ const RAMP = {
|
|
|
66
66
|
card: { kicker: 'kol-mono-12 text-meta', title: 'kol-sans-heading-03 text-emphasis kol-content-title-dim', body: 'kol-mono-14 text-body', date: 'kol-mono-12 text-meta', size: 'kol-mono-12 text-meta', tags: 'flex flex-wrap gap-2' },
|
|
67
67
|
row: { kicker: 'kol-mono-12 text-meta', title: 'kol-sans-heading-04 text-emphasis kol-content-title-dim', body: 'kol-mono-12 text-body', date: 'kol-mono-12 text-meta', size: 'kol-mono-12 text-meta', tags: 'flex flex-wrap gap-2' },
|
|
68
68
|
/* HERO — the featured card riding a page's fold (ContentCard `hero`,
|
|
69
|
-
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
|
|
73
|
-
*
|
|
74
|
-
|
|
75
|
-
hero: { kicker: 'kol-mono-12 text-meta', title: 'kol-sans-display-03 text-emphasis uppercase kol-content-title-dim', body: 'kol-mono-14 text-body', date: 'kol-mono-12 text-meta', size: 'kol-mono-12 text-meta', tags: 'flex flex-wrap gap-2' },
|
|
69
|
+
/* THE OLD FEATURED CARD, VERBATIM — ListingCard size="hero" as Stack
|
|
70
|
+
* rendered it (user 2026-08-27: "everything was correct in the old featured
|
|
71
|
+
* card … the only thing you had to do was carry it through"): kicker
|
|
72
|
+
* `kol-card-kicker tracking-wide text-fg-64`, title display-section-sm →
|
|
73
|
+
* display-03 uppercase, clamp 2, dim on hover; body mono-14 fg-48 clamp 2. */
|
|
74
|
+
hero: { kicker: 'kol-card-kicker tracking-wide text-fg-64', title: 'kol-sans-display-03 uppercase line-clamp-2 kol-content-title-dim', body: 'kol-mono-14 text-fg-48 line-clamp-2', date: 'kol-mono-12 text-meta', size: 'kol-mono-12 text-meta', tags: 'flex flex-wrap gap-2' },
|
|
76
75
|
},
|
|
77
76
|
work: {
|
|
78
77
|
/* INVERSE ink — the card's plate is the drawer, `surface-inverse`. Leaving
|
|
@@ -120,7 +120,7 @@ function MediaLayer({ media }) {
|
|
|
120
120
|
* @param {ReactNode|{src, kind, poster, srcSet, alt}|Array} media background (media) / the half (split) / an ARRAY of slides → carousel
|
|
121
121
|
* @param {number} overlayOpacity 0–100 surface-primary scrim over the media (default 0)
|
|
122
122
|
* @param {boolean} veil bottom-heavy gradient over the media
|
|
123
|
-
* @param {'center'|'end'} justify content vertically centred, or pinned to the foot (with `foot
|
|
123
|
+
* @param {'center'|'end'} justify content vertically centred, or pinned to the foot (with `foot`: `overlap` + 32px, 48 from md — the text sits just above the card; without: the pb ramp)
|
|
124
124
|
* @param {ReactNode} foot a node rendered across the hero's bottom edge
|
|
125
125
|
* @param {number} overlap how far `foot` rises into the hero, px (default 250); published on the section as `--kol-section-foot-overlap`
|
|
126
126
|
* @param {boolean} autoPlay · {number} autoPlayInterval · {'stack'|'header'} navPosition carousel only
|
|
@@ -321,8 +321,14 @@ export default function SectionHero({
|
|
|
321
321
|
/* the bottom inset is never the `p-*` shorthand: `md:p-10` sits in a later
|
|
322
322
|
* media query than a bare `pb-*` and would win it back at ≥768 (measured —
|
|
323
323
|
* the old `pb-32 sm:pb-40` ramp lost to it between 768 and 1023 too). */
|
|
324
|
+
/* WITH a foot the inset is `overlap` + one small gap — 32px, 48 from md
|
|
325
|
+
* (SectionHeroFootGap, kol-website 2026-08-27: 0.86.0's ramp + overlap
|
|
326
|
+
* floated the lede ~474px above the card; live sat it ~50px above). No
|
|
327
|
+
* foot → the padding ramp, as before. */
|
|
324
328
|
const justifyCls = justify === 'end'
|
|
325
|
-
?
|
|
329
|
+
? (foot
|
|
330
|
+
? 'items-end pb-[calc(var(--kol-section-foot-overlap)+2rem)] md:pb-[calc(var(--kol-section-foot-overlap)+3rem)]'
|
|
331
|
+
: 'items-end pb-32 sm:pb-40 lg:pb-48 xl:pb-56')
|
|
326
332
|
: 'items-center pb-6 md:pb-10'
|
|
327
333
|
const footVar = foot ? { '--kol-section-foot-overlap': `${overlap}px` } : undefined
|
|
328
334
|
|