@kolkrabbi/kol-theme 0.58.1 → 0.59.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/kol-typography.css +61 -44
- package/package.json +1 -1
package/kol-typography.css
CHANGED
|
@@ -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
|
|
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
|
|
762
|
-
*
|
|
763
|
-
*
|
|
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 —
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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
|
-
*
|
|
842
|
-
*
|
|
843
|
-
*
|
|
844
|
-
*
|
|
845
|
-
*
|
|
846
|
-
*
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
/*
|
|
895
|
+
/* @deprecated 2026-08-27 → kol-sans-display-03 */
|
|
879
896
|
.kol-display-subsection {
|
|
880
|
-
font-family: var(--kol-font-family-sans-
|
|
881
|
-
font-
|
|
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.
|
|
3
|
+
"version": "0.59.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",
|