@kolkrabbi/kol-theme 0.9.2 → 0.10.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.
Files changed (2) hide show
  1. package/kol-typography.css +80 -9
  2. package/package.json +1 -1
@@ -772,6 +772,14 @@
772
772
  --kol-text-body-01: 16px;
773
773
  --kol-text-body-02: 14px;
774
774
  --kol-text-body-03: 12px;
775
+
776
+ /* Display Tight — the condensed-caps display voice (lobbied from the
777
+ * website's elder type system 2026-07-16). Own ladder with a 1024px step —
778
+ * deliberately NOT the sans-display ladder: values preserve the lobbied
779
+ * rendering exactly. */
780
+ --kol-text-display-tight-01: 48px;
781
+ --kol-text-display-tight-02: 40px;
782
+ --kol-text-display-tight-03: 32px;
775
783
  }
776
784
 
777
785
  @media (min-width: 768px) {
@@ -780,6 +788,18 @@
780
788
  --kol-text-display-02: 56px;
781
789
  --kol-text-display-03: 42px;
782
790
  --kol-text-heading-01: 56px;
791
+ --kol-text-display-tight-01: 64px;
792
+ --kol-text-display-tight-02: 48px;
793
+ --kol-text-display-tight-03: 40px;
794
+ }
795
+ }
796
+
797
+ /* Display Tight tops out at 1024, not 1280 — the lobbied ladder's own step. */
798
+ @media (min-width: 1024px) {
799
+ :root {
800
+ --kol-text-display-tight-01: 96px;
801
+ --kol-text-display-tight-02: 64px;
802
+ --kol-text-display-tight-03: 48px;
783
803
  }
784
804
  }
785
805
 
@@ -813,6 +833,53 @@
813
833
  /* .kol-sans-display-03 deferred — orphan in current consumers. Token defined.
814
834
  * Add the class when a consumer needs it. */
815
835
 
836
+ /* =============================================================================
837
+ * DISPLAY TIGHT — the condensed-caps display voice: base sans + the variable
838
+ * width axis (font-stretch), weight 470. Uppercase BY CONTRACT — display
839
+ * classes are the one type family that carries text-transform; the display
840
+ * voice is caps by design language.
841
+ * Lobbied verbatim from the website's elder type system (2026-07-16) so call
842
+ * sites migrate without renames. `kol-heading-display` was a byte-identical
843
+ * duplicate of `kol-display-lg` and was not carried — map it to display-lg.
844
+ * ============================================================================= */
845
+
846
+ .kol-display-lg {
847
+ font-family: var(--kol-font-family-sans);
848
+ font-stretch: extra-condensed;
849
+ font-weight: 470;
850
+ font-size: var(--kol-text-display-tight-01);
851
+ line-height: 100%;
852
+ text-transform: uppercase;
853
+ color: var(--kol-fg-emphasis);
854
+ }
855
+
856
+ .kol-display-section {
857
+ font-family: var(--kol-font-family-sans);
858
+ font-stretch: extra-condensed;
859
+ font-weight: 470;
860
+ font-size: var(--kol-text-display-tight-02);
861
+ line-height: 100%;
862
+ text-transform: uppercase;
863
+ }
864
+
865
+ .kol-display-section-sm {
866
+ font-family: var(--kol-font-family-sans);
867
+ font-stretch: extra-condensed;
868
+ font-weight: 470;
869
+ font-size: var(--kol-text-display-tight-03);
870
+ line-height: 100%;
871
+ text-transform: uppercase;
872
+ }
873
+
874
+ /* subsection — the Narrow face, one voice quieter than section-sm */
875
+ .kol-display-subsection {
876
+ font-family: var(--kol-font-family-sans-narrow);
877
+ font-weight: 470;
878
+ font-size: var(--kol-text-display-tight-03);
879
+ line-height: 100%;
880
+ text-transform: uppercase;
881
+ }
882
+
816
883
  /* =============================================================================
817
884
  * HEADINGS — H1 sans Narrow, H2-H5 sans Compact, weight 500.
818
885
  * 01 = H1 anchor (matches prose H1). 02-06 use Compact for visual rhythm
@@ -897,7 +964,9 @@
897
964
  font-weight: 300;
898
965
  line-height: 24px;
899
966
  letter-spacing: 0.02em;
900
- color: var(--kol-fg-80);
967
+ /* Text-role contract (kol-opacity roles): body copy sits at the body role;
968
+ * emphasis/strong/headings climb the ladder from there. */
969
+ color: var(--kol-fg-body);
901
970
  }
902
971
 
903
972
  .kol-prose > :first-child { margin-top: 0; }
@@ -970,7 +1039,7 @@
970
1039
  line-height: 16px;
971
1040
  letter-spacing: 0.14em;
972
1041
  text-transform: uppercase;
973
- color: var(--kol-fg-64);
1042
+ color: var(--kol-fg-body);
974
1043
  margin: 0;
975
1044
  }
976
1045
 
@@ -987,7 +1056,7 @@
987
1056
  .kol-prose h5,
988
1057
  .kol-prose h6 {
989
1058
  font-weight: 500;
990
- color: var(--kol-surface-on-primary);
1059
+ color: var(--kol-fg-emphasis);
991
1060
  }
992
1061
 
993
1062
  .kol-prose h1 { font-family: var(--kol-font-family-sans-narrow); font-size: var(--kol-text-heading-01); line-height: 52px; margin: 0 0 24px; }
@@ -1010,8 +1079,10 @@
1010
1079
 
1011
1080
  /* ─── Inline ─── */
1012
1081
 
1013
- .kol-prose em { font-style: italic; }
1014
- .kol-prose strong { font-weight: 700; }
1082
+ /* Inline emphasis climbs the role ladder out of the body color:
1083
+ * em stresses at the strong role, strong lands on full-ink emphasis. */
1084
+ .kol-prose em { font-style: italic; color: var(--kol-fg-strong); }
1085
+ .kol-prose strong { font-weight: 700; color: var(--kol-fg-emphasis); }
1015
1086
 
1016
1087
  /* ─── Code (inline + block) — JetBrains Mono via the mono token. Same family
1017
1088
  * as `.kol-mono-N` so a future swap cascades. Body weight 400. ─── */
@@ -1058,7 +1129,7 @@
1058
1129
  margin: 0 0 8px;
1059
1130
  font-size: 24px;
1060
1131
  line-height: 32px;
1061
- color: var(--kol-surface-on-primary);
1132
+ color: var(--kol-fg-emphasis);
1062
1133
  }
1063
1134
 
1064
1135
  .kol-prose blockquote cite {
@@ -1069,7 +1140,7 @@
1069
1140
  font-weight: 500;
1070
1141
  line-height: 16px;
1071
1142
  letter-spacing: 0.04em;
1072
- color: var(--kol-fg-48);
1143
+ color: var(--kol-fg-meta);
1073
1144
  }
1074
1145
 
1075
1146
  .kol-prose blockquote cite::before { content: '— '; opacity: 0.6; }
@@ -1106,7 +1177,7 @@
1106
1177
  .kol-segment-title {
1107
1178
  font-family: var(--kol-font-family-sans-compact);
1108
1179
  font-weight: 500;
1109
- color: var(--kol-surface-on-primary);
1180
+ color: var(--kol-fg-emphasis);
1110
1181
  }
1111
1182
 
1112
1183
  /* standalone caption block (the `caption` block type) */
@@ -1116,7 +1187,7 @@
1116
1187
  font-size: 12px;
1117
1188
  line-height: 16px;
1118
1189
  letter-spacing: 0.02em;
1119
- color: var(--kol-fg-48, color-mix(in srgb, var(--kol-surface-on-primary) 48%, transparent));
1190
+ color: var(--kol-fg-meta);
1120
1191
  }
1121
1192
 
1122
1193
  /* inline links (the `link` mark) */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.9.2",
3
+ "version": "0.10.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",