@kolkrabbi/kol-theme 0.126.0 → 0.128.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.
@@ -538,6 +538,7 @@
538
538
  .toggle-switch--outline { border-color: var(--kol-oq-08); }
539
539
 
540
540
  /* shells take button padding; bare stays padding 0 */
541
+ .toggle-switch--primary.toggle-switch--xs, .toggle-switch--outline.toggle-switch--xs { padding: 4px 8px; }
541
542
  .toggle-switch--primary.toggle-switch--sm, .toggle-switch--outline.toggle-switch--sm { padding: 4px 12px; }
542
543
  .toggle-switch--primary.toggle-switch--md, .toggle-switch--outline.toggle-switch--md { padding: 6px 16px; }
543
544
  .toggle-switch--primary.toggle-switch--lg, .toggle-switch--outline.toggle-switch--lg { padding: 8px 20px; }
@@ -574,6 +575,8 @@
574
575
  cursor: not-allowed;
575
576
  }
576
577
 
578
+ .toggle-switch--xs .toggle-switch-indicator { width: 12px; height: 8px; }
579
+ .toggle-switch--xs .toggle-switch-indicator::after { width: 4px; height: 4px; }
577
580
  .toggle-switch--sm .toggle-switch-indicator { width: 16px; height: 10px; }
578
581
  .toggle-switch--sm .toggle-switch-indicator::after { width: 6px; height: 6px; }
579
582
  .toggle-switch--lg .toggle-switch-indicator { width: 24px; height: 14px; }
@@ -588,6 +591,7 @@
588
591
  background-color: var(--kol-surface-primary);
589
592
  }
590
593
 
594
+ .toggle-switch--xs[data-state='on'] .toggle-switch-indicator::after { transform: translateX(4px); }
591
595
  .toggle-switch--sm[data-state='on'] .toggle-switch-indicator::after { transform: translateX(6px); }
592
596
  .toggle-switch--lg[data-state='on'] .toggle-switch-indicator::after { transform: translateX(10px); }
593
597
 
@@ -1218,6 +1222,8 @@ a.kol-icon-frame {
1218
1222
  .kol-btn-radius-full { border-radius: 9999px; }
1219
1223
 
1220
1224
  /* pinned squares — the box never moves with glyph size (user law 2026-07-28) */
1225
+ /* xs — the panel rung; the ladder is one ladder (user ruling 2026-09-01: "obviously we apply xs as an option") */
1226
+ .kol-icon-frame-xs { width: 20px; height: 20px; }
1221
1227
  .kol-icon-frame-sm { width: 28px; height: 28px; }
1222
1228
  .kol-icon-frame-md { width: 32px; height: 32px; }
1223
1229
  .kol-icon-frame-lg { width: 36px; height: 36px; }
@@ -279,6 +279,8 @@
279
279
  * paying for; the class owns the type, the rule owns the box. */
280
280
  /* the SIZE carries its type (WorkListingRowsAndFilters, 2026-08-27): the helper
281
281
  * rung that rode beside it in the atom (sm → 10 · md → 12 · lg → 14) lives here. */
282
+ /* xs — the panel rung (2026-09-01): one ladder, every family */
283
+ .kol-tag--xs { padding: 1px 8px; font-family: var(--kol-font-family-mono); font-size: 8px; line-height: 1; font-weight: 500; letter-spacing: 0.10em; }
282
284
  .kol-tag--sm { padding: 2px 10px; font-family: var(--kol-font-family-mono); font-size: 10px; line-height: 1; font-weight: 500; letter-spacing: 0.10em; }
283
285
  .kol-tag--md { padding: 4px 16px; font-family: var(--kol-font-family-mono); font-size: 12px; line-height: 1; font-weight: 500; letter-spacing: 0.06em; }
284
286
  .kol-tag--lg { padding: 6px 20px; font-family: var(--kol-font-family-mono); font-size: 14px; line-height: 1; font-weight: 500; letter-spacing: 0.06em; }
@@ -497,6 +499,11 @@
497
499
  border: 1px solid transparent;
498
500
  }
499
501
 
502
+ .kol-badge-xs {
503
+ height: 16px;
504
+ padding: 0 4px;
505
+ font-size: 8px;
506
+ }
500
507
  .kol-badge-sm {
501
508
  height: 20px;
502
509
  padding: 0 6px;
@@ -545,8 +552,10 @@
545
552
 
546
553
  /* Sizes mirror .kol-btn-{sm,md,lg} exactly: pinned height above + cell
547
554
  * padding per size (below) + mono type (12/14/16) applied in JSX. */
555
+ .kol-seg--xs { height: 22px; }
548
556
  .kol-seg--sm { height: 26px; }
549
557
  .kol-seg--lg { height: 40px; }
558
+ .kol-seg--xs .kol-seg-cell { padding: 4px 8px; }
550
559
  .kol-seg--sm .kol-seg-cell { padding: 4px 12px; }
551
560
  .kol-seg--lg .kol-seg-cell { padding: 8px 20px; }
552
561
 
@@ -135,15 +135,17 @@
135
135
  background: color-mix(in srgb, var(--kol-color-ab-black) 48%, transparent);
136
136
  }
137
137
 
138
- /* ── THE TAP OPENER (ShellRailCollapsedWithTapOpen, kol-mirror 2026-09-01) ──
139
- * `touch="shell"` keeps the collapsed 48px rail visible the user's ruling
140
- * for a home that is navigation but its only opener was the grab strip: 8px
141
- * on the line, a pill that wakes on pointer PROXIMITY. A thumb never hovers,
142
- * so on a phone the rail could not be opened. The strip is a <button> now
143
- * (kol-shell 0.38.0) carrying `.kol-rail-grab-tap`, a 24px disc on the line
144
- * that exists ONLY under a coarse pointer: fine pointers keep the ruled grab
145
- * (RailFlatGrabOpen, OneGrabGestureBothRails) and never see this. The strip
146
- * already toggles on a press with no travel; this gives that press a target.
138
+ /* ── THE TAP OPENER IS THE LINE (ShellRailCollapsedWithTapOpen, kol-mirror
139
+ * 2026-09-01; corrected by RailGrabTapIsALine, kol-monitor 2026-09-02 — user:
140
+ * "it was a thicker line" · "who decided it should be a chevron?"). `touch=
141
+ * "shell"` keeps the collapsed 48px rail visible, and its only opener is the
142
+ * grab strip: 8px on the line, a pill that wakes on pointer PROXIMITY. A thumb
143
+ * never hovers, so 0.38.0 put a 24px disc with a chevron on the line — the DS
144
+ * agent's shape, not the ruling. The ruling is the strip ITSELF, thicker: under
145
+ * a coarse pointer the strip widens to a thumb-sized hit and its pill sits at
146
+ * rest, twice as thick the same affordance a fine pointer drags, no glyph.
147
+ * Fine pointers keep the ruled grab (RailFlatGrabOpen, OneGrabGestureBothRails)
148
+ * and never see this; the strip already toggles on a press with no travel.
147
149
  * Geometry lives here, the pill's motion stays in kol-animation.css. */
148
150
  .kol-rail-grab {
149
151
  appearance: none;
@@ -152,28 +154,16 @@
152
154
  padding: 0;
153
155
  color: inherit;
154
156
  }
155
- .kol-rail-grab-tap { display: none; }
156
157
  @media (pointer: coarse) {
157
158
  .kol-rail-grab {
158
159
  width: 24px;
159
160
  right: -12px;
160
161
  cursor: pointer;
161
162
  }
162
- /* no proximity on touch — the pill would never wake; the disc is the affordance */
163
- .kol-rail-grab::before { display: none; }
164
- .kol-rail-grab-tap {
165
- display: flex;
166
- align-items: center;
167
- justify-content: center;
168
- position: absolute;
169
- left: 50%;
170
- top: 50%;
171
- translate: -50% -50%;
172
- width: 24px;
173
- height: 24px;
174
- border-radius: var(--kol-radius-full);
175
- background: var(--kol-surface-secondary);
176
- border: 1px solid var(--kol-fg-16);
177
- color: var(--kol-oq-96);
163
+ /* no proximity on touch — the pill is simply THERE, and thicker */
164
+ .kol-rail-grab::before {
165
+ opacity: 1;
166
+ width: 0.25rem;
167
+ transition: none;
178
168
  }
179
169
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.126.0",
3
+ "version": "0.128.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",