@kolkrabbi/kol-theme 0.118.0 → 0.120.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-components-atoms.css
CHANGED
|
@@ -173,12 +173,16 @@
|
|
|
173
173
|
* 2026-08-01 — it brings its own box, border, colour set and states, so this
|
|
174
174
|
* class stopped painting one. It used to hand-draw a bordered square around a
|
|
175
175
|
* literal `×` CHARACTER, which is why the button had no hover, no focus ring
|
|
176
|
-
* and no glyph.
|
|
177
|
-
*
|
|
176
|
+
* and no glyph.
|
|
177
|
+
* `right: 0` (FullscreenOverlayCloseIdiom, kol-chess 2026-09-01): the sheet
|
|
178
|
+
* hugs the consumer's panel, so a --kol-spacing-3 inset floated the X 12px
|
|
179
|
+
* inside the content column's right edge — lined up with nothing the fields
|
|
180
|
+
* below it establish. On the edge, the button's box sits on the same vertical
|
|
181
|
+
* as the controls under it. */
|
|
178
182
|
.kol-overlay-close {
|
|
179
183
|
position: absolute;
|
|
180
184
|
top: var(--kol-spacing-3);
|
|
181
|
-
right:
|
|
185
|
+
right: 0;
|
|
182
186
|
z-index: 10;
|
|
183
187
|
}
|
|
184
188
|
|
package/kol-components-chess.css
CHANGED
|
@@ -354,8 +354,15 @@
|
|
|
354
354
|
text-transform: uppercase;
|
|
355
355
|
}
|
|
356
356
|
|
|
357
|
+
/* sans-narrow BY NAME, not --kol-font-family-heading
|
|
358
|
+
* (ChessHeadingFontVarUndefined, kol-chess 2026-09-01): `heading` is a
|
|
359
|
+
* framework-tier brand seam (kol-brand-color.css) the theme never ships, so
|
|
360
|
+
* an app-shell consumer resolved it to nothing and every hero metric, title
|
|
361
|
+
* and chart heading fell to the inherited body font. sans-narrow is what the
|
|
362
|
+
* brand seam bound it to — same face where it worked, fixed where it did not.
|
|
363
|
+
* This applies to all 10 heading rules in this pack. */
|
|
357
364
|
.board-playback__title {
|
|
358
|
-
font-family: var(--kol-font-family-
|
|
365
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
359
366
|
font-size: 1.2rem;
|
|
360
367
|
letter-spacing: 0.06em;
|
|
361
368
|
margin: 6px 0 4px;
|
|
@@ -422,7 +429,7 @@
|
|
|
422
429
|
}
|
|
423
430
|
|
|
424
431
|
.board-playback__value {
|
|
425
|
-
font-family: var(--kol-font-family-
|
|
432
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
426
433
|
font-size: 1.1rem;
|
|
427
434
|
letter-spacing: 0.04em;
|
|
428
435
|
}
|
|
@@ -530,7 +537,7 @@
|
|
|
530
537
|
}
|
|
531
538
|
|
|
532
539
|
.board-playback__avatar-name {
|
|
533
|
-
font-family: var(--kol-font-family-
|
|
540
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
534
541
|
font-size: 0.9rem;
|
|
535
542
|
letter-spacing: 0.06em;
|
|
536
543
|
}
|
|
@@ -590,7 +597,7 @@
|
|
|
590
597
|
}
|
|
591
598
|
|
|
592
599
|
.analysis-table__result {
|
|
593
|
-
font-family: var(--kol-font-family-
|
|
600
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
594
601
|
font-size: 0.85rem;
|
|
595
602
|
letter-spacing: 0.08em;
|
|
596
603
|
text-transform: uppercase;
|
|
@@ -750,7 +757,7 @@
|
|
|
750
757
|
}
|
|
751
758
|
|
|
752
759
|
.chess-hero-metric__value {
|
|
753
|
-
font-family: var(--kol-font-family-
|
|
760
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
754
761
|
font-size: 2rem;
|
|
755
762
|
font-weight: 600;
|
|
756
763
|
letter-spacing: -0.02em;
|
|
@@ -810,7 +817,7 @@
|
|
|
810
817
|
}
|
|
811
818
|
|
|
812
819
|
.chess-hero__title {
|
|
813
|
-
font-family: var(--kol-font-family-
|
|
820
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
814
821
|
font-size: 1rem;
|
|
815
822
|
letter-spacing: 0.08em;
|
|
816
823
|
text-transform: uppercase;
|
|
@@ -825,7 +832,7 @@
|
|
|
825
832
|
}
|
|
826
833
|
|
|
827
834
|
.chess-hero__value {
|
|
828
|
-
font-family: var(--kol-font-family-
|
|
835
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
829
836
|
font-size: 2.25rem;
|
|
830
837
|
font-weight: 600;
|
|
831
838
|
letter-spacing: -0.02em;
|
|
@@ -939,7 +946,7 @@
|
|
|
939
946
|
}
|
|
940
947
|
|
|
941
948
|
.chess-hero__side-value {
|
|
942
|
-
font-family: var(--kol-font-family-
|
|
949
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
943
950
|
font-size: 1.75rem;
|
|
944
951
|
font-weight: 600;
|
|
945
952
|
letter-spacing: -0.02em;
|
|
@@ -1065,7 +1072,7 @@
|
|
|
1065
1072
|
}
|
|
1066
1073
|
|
|
1067
1074
|
.chess-donut-chart__title {
|
|
1068
|
-
font-family: var(--kol-font-family-
|
|
1075
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
1069
1076
|
font-size: 0.85rem;
|
|
1070
1077
|
letter-spacing: 0.08em;
|
|
1071
1078
|
text-transform: capitalize;
|
|
@@ -1199,7 +1206,7 @@
|
|
|
1199
1206
|
}
|
|
1200
1207
|
|
|
1201
1208
|
.chess-stacked-bar-chart__title {
|
|
1202
|
-
font-family: var(--kol-font-family-
|
|
1209
|
+
font-family: var(--kol-font-family-sans-narrow);
|
|
1203
1210
|
font-size: 1.5rem;
|
|
1204
1211
|
font-weight: 600;
|
|
1205
1212
|
letter-spacing: -0.02em;
|
|
@@ -158,6 +158,25 @@
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
+
/* Card subtitles — the WRAPPING secondary line (DashDetailWrapsWithoutLeading,
|
|
162
|
+
* kol-chess 2026-09-01). `.dash-detail` is line-height 1 — single-line chrome
|
|
163
|
+
* by the type protocol's fault line — and CardHeader was handing it full
|
|
164
|
+
* sentences that wrapped to three leading-less lines at 390. Same ramp and
|
|
165
|
+
* step, real leading; footers and labels keep `.dash-detail`. */
|
|
166
|
+
.dash-subtitle {
|
|
167
|
+
font-family: var(--kol-font-family-mono);
|
|
168
|
+
font-weight: 400;
|
|
169
|
+
font-size: 10px;
|
|
170
|
+
line-height: 1.5;
|
|
171
|
+
color: var(--kol-surface-on-primary);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
@container (min-width: 768px) {
|
|
175
|
+
.dash-subtitle {
|
|
176
|
+
font-size: 12px;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
161
180
|
/* Chart axes, compact items, legends — 8px → 11px, regular weight */
|
|
162
181
|
.dash-caption {
|
|
163
182
|
font-family: var(--kol-font-family-mono);
|
package/kol-components-shell.css
CHANGED
|
@@ -97,8 +97,11 @@
|
|
|
97
97
|
* be a second source of truth for it. And no `!important`: the rail reads its
|
|
98
98
|
* own `--kol-shell-drawer-width` in drawer mode instead of the live rail token,
|
|
99
99
|
* so nothing here is fighting an inline style. */
|
|
100
|
+
/* FROM THE RIGHT (ShellDrawerOnRight, kol-chess 2026-09-01, user ruling: the
|
|
101
|
+
* close must not land mid-screen). NavRail pins itself right-0 in drawer mode;
|
|
102
|
+
* off-canvas is +100%. */
|
|
100
103
|
[data-rail-drawer] .kol-shell-rail {
|
|
101
|
-
transform: translateX(
|
|
104
|
+
transform: translateX(100%);
|
|
102
105
|
transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
103
106
|
}
|
|
104
107
|
[data-rail-drawer="open"] .kol-shell-rail {
|
|
@@ -109,34 +112,17 @@
|
|
|
109
112
|
}
|
|
110
113
|
|
|
111
114
|
/* Above the rail, so it stays tappable with the drawer open. */
|
|
115
|
+
/* TOP-RIGHT, both states (ShellDrawerOnRight): with the drawer on the right
|
|
116
|
+
* the trigger and the open X share one corner at the screen edge — where the
|
|
117
|
+
* thumb is — so the 2026-08-31 travel rule is gone; it was the cure for the
|
|
118
|
+
* left side and nothing needs to move any more. */
|
|
112
119
|
.kol-shell-drawer-trigger {
|
|
113
120
|
position: fixed;
|
|
114
121
|
top: 12px;
|
|
115
|
-
|
|
122
|
+
right: 12px;
|
|
116
123
|
z-index: calc(var(--kol-z-sticky) + 2);
|
|
117
124
|
width: 32px;
|
|
118
125
|
height: 32px;
|
|
119
|
-
transition: transform 220ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/* THE TRIGGER RIDES THE DRAWER'S TRAILING EDGE WHEN OPEN (device report from
|
|
123
|
-
* kol-chess, 2026-08-31 — user: "menu is on the wrong side it overlaps close
|
|
124
|
-
* button when open"). Fixed at 12/12 it sat INSIDE the drawer it opens: the
|
|
125
|
-
* drawer spans 0–240 from the same edge, so the close × was drawn on top of the
|
|
126
|
-
* rail's own logomark row, both in the same 32px. It stayed clickable — z-order
|
|
127
|
-
* was right, and the scrim and Escape both closed — so it read as "the close
|
|
128
|
-
* button is gone" rather than as a trap. Unreadable, not unusable.
|
|
129
|
-
*
|
|
130
|
-
* One transform, no new markup: the control stays where the thumb last touched
|
|
131
|
-
* it and does not need NavRail to grow a close row of its own. Not moved to the
|
|
132
|
-
* right permanently — a trigger that changes corner between states is worse than
|
|
133
|
-
* one that travels. */
|
|
134
|
-
[data-rail-drawer="open"] .kol-shell-drawer-trigger {
|
|
135
|
-
transform: translateX(var(--kol-shell-drawer-width, 240px));
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
@media (prefers-reduced-motion: reduce) {
|
|
139
|
-
.kol-shell-drawer-trigger { transition: none; }
|
|
140
126
|
}
|
|
141
127
|
|
|
142
128
|
.kol-shell-drawer-scrim {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolkrabbi/kol-theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.120.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",
|