@kolkrabbi/kol-theme 0.58.1 → 0.60.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.
@@ -321,13 +321,19 @@
321
321
  color: var(--kol-accent-primary);
322
322
  }
323
323
 
324
+ /* the section family's body voice is MONO (SectionTextBodyMono, kol-website
325
+ * 2026-08-27 — user: "I don't want the sans anywhere, I want the text on the
326
+ * cards to default mono, with props to change it if I feel like it"). Was
327
+ * sans 16 / 1.6; now the mono-16 rung (16 / 22) — the section scale, where the
328
+ * Stack hero's lede already sat. Sans is opt-in through `bodyClass` /
329
+ * `slotClass`. The 72% ink is unchanged. */
324
330
  .kol-feature-split-body,
325
331
  .kol-section-text-body {
326
332
  margin: 0;
327
- font-family: var(--kol-font-family-sans);
333
+ font-family: var(--kol-font-family-mono);
328
334
  font-weight: 400;
329
335
  font-size: 16px;
330
- line-height: 1.6;
336
+ line-height: 22px;
331
337
  color: color-mix(in srgb, var(--kol-surface-on-primary) 72%, transparent);
332
338
  }
333
339
 
@@ -729,7 +729,7 @@
729
729
  :root {
730
730
  /* Sans family tokens — four cuts loaded. Editor convention used in prose:
731
731
  * Narrow for top-of-scale (display, large headings), Compact for mid (smaller
732
- * headings, lede), base for body, Tight for the display-tight voice.
732
+ * headings, lede), base for body, Tight for display 01–04 (since 0.59.0).
733
733
  * Atomic classes follow the same convention. */
734
734
  --kol-font-family-sans: 'Right Grotesk', sans-serif;
735
735
  --kol-font-family-sans-narrow: 'Right Grotesk Narrow', 'Right Grotesk', sans-serif;
@@ -744,6 +744,7 @@
744
744
  --kol-text-display-01: 56px;
745
745
  --kol-text-display-02: 44px;
746
746
  --kol-text-display-03: 36px;
747
+ --kol-text-display-04: 32px;
747
748
 
748
749
  /* Heading — H1 → H6 (6 stops) */
749
750
  --kol-text-heading-01: 48px;
@@ -758,10 +759,9 @@
758
759
  --kol-text-body-02: 14px;
759
760
  --kol-text-body-03: 12px;
760
761
 
761
- /* Display Tight — the condensed-caps display voice (lobbied from the
762
- * website's elder type system 2026-07-16). Own ladder with a 1024px step —
763
- * deliberately NOT the sans-display ladder: values preserve the lobbied
764
- * rendering exactly. */
762
+ /* Display Tight — the ELDER display ladder (lobbied 2026-07-16, 1024px
763
+ * step). Retired as classes 2026-08-27 (DisplayTightRamp); the tokens stay,
764
+ * nothing in the theme reads them since 0.59.0. */
765
765
  --kol-text-display-tight-01: 48px;
766
766
  --kol-text-display-tight-02: 40px;
767
767
  --kol-text-display-tight-03: 32px;
@@ -772,6 +772,7 @@
772
772
  --kol-text-display-01: 80px;
773
773
  --kol-text-display-02: 56px;
774
774
  --kol-text-display-03: 42px;
775
+ --kol-text-display-04: 36px;
775
776
  --kol-text-heading-01: 56px;
776
777
  --kol-text-display-tight-01: 64px;
777
778
  --kol-text-display-tight-02: 48px;
@@ -793,94 +794,110 @@
793
794
  --kol-text-display-01: 96px;
794
795
  --kol-text-display-02: 64px;
795
796
  --kol-text-display-03: 48px;
797
+ --kol-text-display-04: 40px;
796
798
  --kol-text-heading-01: 64px;
797
799
  }
798
800
  }
799
801
 
800
802
  /* =============================================================================
801
- * DISPLAY — sans Narrow, weight 600. Numbered 01 (largest) → 03 (smallest).
803
+ * DISPLAY — Right Grotesk TIGHT, weight 500. Numbered 01 (largest) → 04.
804
+ * ONE face for the whole ramp (DisplayTightRamp, user ruling 2026-08-27: "the
805
+ * lg is correct, MORE correct than the numbered ramp … make 01 and 02 tight
806
+ * 500, replace the lg and retire lg … so we only have one system"). Until
807
+ * 0.59.0 this ramp was Narrow and the Tight cut lived in a second, size-named
808
+ * system lobbied from the website's elder type (`kol-display-lg` + section /
809
+ * section-sm / subsection) — those four are aliases below, on the retirement
810
+ * clock.
811
+ *
812
+ * The Tight cut by NAME (--kol-font-family-sans-tight): the loaded faces are
813
+ * static and carry no stretch descriptors, so font-stretch selection silently
814
+ * renders the wide base cut (bug found 2026-07-28).
815
+ *
816
+ * 500, NOT 600 (user ruling 2026-08-15): 600 clogs at display size, and 500 is
817
+ * every `kol-sans-heading-*` weight, so the two families read as one voice at
818
+ * two volumes. NO tracking: the 0.04em added 2026-08-15 was the Narrow cut's
819
+ * sidebearing fix; the Tight cut is the elder `kol-display-lg` rendering the
820
+ * user called correct, and that carried none.
821
+ *
822
+ * Case is a ROLE, not a transform on the class — `uppercase` at the call site,
823
+ * `headlineCase="upper"` on SectionText.
824
+ *
825
+ * display-04 shipped 2026-08-27: SectionHero's media headline has defaulted to
826
+ * the role since component 0.80.0 with NO rule behind it (browser default h2).
827
+ * 32 → 36 → 40 lands at desktop where the pre-0.80 remap to heading-02 sat.
802
828
  * ============================================================================= */
803
829
 
804
830
  .kol-sans-display-01 {
805
- font-family: var(--kol-font-family-sans-narrow);
831
+ font-family: var(--kol-font-family-sans-tight);
806
832
  font-size: var(--kol-text-display-01);
807
833
  line-height: 100%;
808
834
  font-weight: 500;
809
- letter-spacing: 0.04em;
810
835
  }
811
836
 
812
837
  .kol-sans-display-02 {
813
- font-family: var(--kol-font-family-sans-narrow);
838
+ font-family: var(--kol-font-family-sans-tight);
814
839
  font-size: var(--kol-text-display-02);
815
840
  line-height: 100%;
816
841
  font-weight: 500;
817
- letter-spacing: 0.04em;
818
842
  }
819
843
 
820
- /* THE DISPLAY RUNGS ARE 500, NOT 600 (user ruling 2026-08-15). All three sat a
821
- * weight above the heading family they open — the narrow grotesk at 600 clogs
822
- * at display size, where the counters are already the first thing to close. 500
823
- * is the weight every `kol-sans-heading-*` uses, so the two families now read as
824
- * one voice at two volumes.
825
- *
826
- * And 0.04em of TRACKING on all three: a narrow face set large has almost no
827
- * sidebearing left, so the letters run together into a wall. The tracking is
828
- * what lets a display line be read as words rather than a texture. */
829
-
830
- /* display-03 shipped 2026-08-15 — its consumer arrived: ContentText's `work`
831
- * row title (the ruled size-only step down from display-02). */
832
844
  .kol-sans-display-03 {
833
- font-family: var(--kol-font-family-sans-narrow);
845
+ font-family: var(--kol-font-family-sans-tight);
834
846
  font-size: var(--kol-text-display-03);
835
847
  line-height: 100%;
836
848
  font-weight: 500;
837
- letter-spacing: 0.04em;
849
+ }
850
+
851
+ .kol-sans-display-04 {
852
+ font-family: var(--kol-font-family-sans-tight);
853
+ font-size: var(--kol-text-display-04);
854
+ line-height: 100%;
855
+ font-weight: 500;
838
856
  }
839
857
 
840
858
  /* =============================================================================
841
- * DISPLAY TIGHT — the condensed-caps display voice: the Tight cut by NAME
842
- * (--kol-font-family-sans-tight), weight 500 (TightMedium). Never select the
843
- * cut via font-stretch: the loaded faces are static, carry no stretch
844
- * descriptors, so stretch-based selection silently renders the wide base cut
845
- * (bug found 2026-07-28). Uppercase BY CONTRACT display classes are the one
846
- * type family that carries text-transform; the display voice is caps by
847
- * design language.
848
- * Lobbied verbatim from the website's elder type system (2026-07-16) so call
849
- * sites migrate without renames. `kol-heading-display` was a byte-identical
850
- * duplicate of `kol-display-lg` and was not carried — map it to display-lg.
859
+ * RETIRED — the elder display voice (DisplayTightRamp, 2026-08-27). Four
860
+ * aliases onto the ramp above, each keeping the uppercase its contract baked
861
+ * in so nothing un-caps on the bump; the swap adds `uppercase` at the call
862
+ * site. Tracked in docs/operations/01-release/04-retirements.md dropped when
863
+ * no repo uses them (`pnpm retirements`), the gate fails at 30 days unimported.
864
+ * Elder `kol-heading-display` (never carried) → kol-sans-display-01 likewise.
851
865
  * ============================================================================= */
852
866
 
867
+ /* @deprecated 2026-08-27 → kol-sans-display-01 */
853
868
  .kol-display-lg {
854
869
  font-family: var(--kol-font-family-sans-tight);
855
- font-weight: 500;
856
- font-size: var(--kol-text-display-tight-01);
870
+ font-size: var(--kol-text-display-01);
857
871
  line-height: 100%;
872
+ font-weight: 500;
858
873
  text-transform: uppercase;
859
874
  color: var(--kol-fg-emphasis);
860
875
  }
861
876
 
877
+ /* @deprecated 2026-08-27 → kol-sans-display-02 */
862
878
  .kol-display-section {
863
879
  font-family: var(--kol-font-family-sans-tight);
864
- font-weight: 500;
865
- font-size: var(--kol-text-display-tight-02);
880
+ font-size: var(--kol-text-display-02);
866
881
  line-height: 100%;
882
+ font-weight: 500;
867
883
  text-transform: uppercase;
868
884
  }
869
885
 
886
+ /* @deprecated 2026-08-27 → kol-sans-display-03 */
870
887
  .kol-display-section-sm {
871
888
  font-family: var(--kol-font-family-sans-tight);
872
- font-weight: 500;
873
- font-size: var(--kol-text-display-tight-03);
889
+ font-size: var(--kol-text-display-03);
874
890
  line-height: 100%;
891
+ font-weight: 500;
875
892
  text-transform: uppercase;
876
893
  }
877
894
 
878
- /* subsection the Narrow face, one voice quieter than section-sm */
895
+ /* @deprecated 2026-08-27 kol-sans-display-03 */
879
896
  .kol-display-subsection {
880
- font-family: var(--kol-font-family-sans-narrow);
881
- font-weight: 470;
882
- font-size: var(--kol-text-display-tight-03);
897
+ font-family: var(--kol-font-family-sans-tight);
898
+ font-size: var(--kol-text-display-03);
883
899
  line-height: 100%;
900
+ font-weight: 500;
884
901
  text-transform: uppercase;
885
902
  }
886
903
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.58.1",
3
+ "version": "0.60.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",