@kolkrabbi/kol-theme 0.52.1 → 0.54.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.
@@ -533,6 +533,14 @@
533
533
  }
534
534
 
535
535
  /* track scales with size */
536
+ /* disabled (SettingsPanel, 2026-08-26): the switch had no disabled treatment
537
+ * at all — a control that cannot act in this context read exactly like one
538
+ * that can. Same pair .kol-control:disabled wears. */
539
+ .toggle-switch:disabled {
540
+ opacity: var(--kol-opacity-disabled);
541
+ cursor: not-allowed;
542
+ }
543
+
536
544
  .toggle-switch--sm .toggle-switch-indicator { width: 16px; height: 10px; }
537
545
  .toggle-switch--sm .toggle-switch-indicator::after { width: 6px; height: 6px; }
538
546
  .toggle-switch--lg .toggle-switch-indicator { width: 24px; height: 14px; }
@@ -262,15 +262,22 @@
262
262
  */
263
263
 
264
264
  /* =============================================================================
265
- * FeatureSplit
265
+ * SectionSplit + SectionText (the section family, SectionSet 2026-08-26)
266
+ *
267
+ * `.kol-section-text-{label,pull,body}` are the text block's classes and
268
+ * `.kol-section-split-*` the split's; every `.kol-feature-split-*` selector
269
+ * below is the same rule under the old name, kept ONE release for a consumer's
270
+ * own CSS still pointing at it — dropped at the next major.
266
271
  * ============================================================================= */
267
272
 
268
- .kol-feature-split {
273
+ .kol-feature-split,
274
+ .kol-section-split {
269
275
  background: var(--kol-surface-primary);
270
276
  color: var(--kol-surface-on-primary);
271
277
  }
272
278
 
273
- .kol-feature-split-kicker {
279
+ .kol-feature-split-kicker,
280
+ .kol-section-text-label {
274
281
  font-family: var(--kol-font-family-mono, monospace);
275
282
  font-size: 18px;
276
283
  font-weight: 600;
@@ -278,7 +285,8 @@
278
285
  color: var(--kol-accent-primary);
279
286
  }
280
287
 
281
- .kol-feature-split-pull {
288
+ .kol-feature-split-pull,
289
+ .kol-section-text-pull {
282
290
  margin: 0;
283
291
  font-family: var(--kol-font-family-sans);
284
292
  font-weight: 700;
@@ -288,7 +296,8 @@
288
296
  color: var(--kol-surface-on-primary);
289
297
  }
290
298
 
291
- .kol-feature-split-pull em {
299
+ .kol-feature-split-pull em,
300
+ .kol-section-text-pull em {
292
301
  font-family: var(--kol-font-family-sans);
293
302
  font-feature-settings: "liga", "dlig";
294
303
  font-weight: 700;
@@ -296,7 +305,8 @@
296
305
  color: var(--kol-accent-primary);
297
306
  }
298
307
 
299
- .kol-feature-split-body {
308
+ .kol-feature-split-body,
309
+ .kol-section-text-body {
300
310
  margin: 0;
301
311
  font-family: var(--kol-font-family-sans);
302
312
  font-weight: 400;
@@ -305,11 +315,13 @@
305
315
  color: color-mix(in srgb, var(--kol-surface-on-primary) 72%, transparent);
306
316
  }
307
317
 
308
- .kol-feature-split-meta {
318
+ .kol-feature-split-meta,
319
+ .kol-section-split-meta {
309
320
  border-top: 1px solid color-mix(in srgb, var(--kol-surface-on-primary) 8%, transparent);
310
321
  }
311
322
 
312
- .kol-feature-split-meta-num {
323
+ .kol-feature-split-meta-num,
324
+ .kol-section-split-meta-num {
313
325
  font-family: var(--kol-font-family-sans);
314
326
  font-weight: 900;
315
327
  font-size: 32px;
@@ -318,7 +330,8 @@
318
330
  color: var(--kol-surface-on-primary);
319
331
  }
320
332
 
321
- .kol-feature-split-meta-label {
333
+ .kol-feature-split-meta-label,
334
+ .kol-section-split-meta-label {
322
335
  font-family: var(--kol-font-family-mono, monospace);
323
336
  font-size: 10px;
324
337
  font-weight: 600;
@@ -326,7 +339,8 @@
326
339
  color: color-mix(in srgb, var(--kol-surface-on-primary) 48%, transparent);
327
340
  }
328
341
 
329
- .kol-feature-split-visual img {
342
+ .kol-feature-split-visual img,
343
+ .kol-section-split-visual img {
330
344
  width: 100%;
331
345
  height: 100%;
332
346
  object-fit: cover;
@@ -341,20 +355,25 @@
341
355
  * 2026-08-12) — one motion vocabulary, not two. Motion chrome is DS CSS, never
342
356
  * a JSX utility (the ComponentTailwindSourceTrap law). The frame's own
343
357
  * overflow-hidden + radius clip the scale. */
344
- .kol-feature-split-visual.is-hoverable > :first-child {
358
+ .kol-feature-split-visual.is-hoverable > :first-child,
359
+ .kol-section-split-visual.is-hoverable > :first-child {
345
360
  transition: transform 300ms ease;
346
361
  }
347
362
 
348
- .kol-feature-split-visual.is-hoverable:hover > :first-child {
363
+ .kol-feature-split-visual.is-hoverable:hover > :first-child,
364
+ .kol-section-split-visual.is-hoverable:hover > :first-child {
349
365
  transform: scale(1.03);
350
366
  }
351
367
 
352
368
  @media (prefers-reduced-motion: reduce) {
353
- .kol-feature-split-visual.is-hoverable > :first-child { transition: none; }
354
- .kol-feature-split-visual.is-hoverable:hover > :first-child { transform: none; }
369
+ .kol-feature-split-visual.is-hoverable > :first-child,
370
+ .kol-section-split-visual.is-hoverable > :first-child { transition: none; }
371
+ .kol-feature-split-visual.is-hoverable:hover > :first-child,
372
+ .kol-section-split-visual.is-hoverable:hover > :first-child { transform: none; }
355
373
  }
356
374
 
357
- .kol-feature-split-visual-veil {
375
+ .kol-feature-split-visual-veil,
376
+ .kol-section-split-visual-veil {
358
377
  position: absolute;
359
378
  inset: 0;
360
379
  background: linear-gradient(
@@ -366,7 +385,8 @@
366
385
  pointer-events: none;
367
386
  }
368
387
 
369
- .kol-feature-split-visual-caption {
388
+ .kol-feature-split-visual-caption,
389
+ .kol-section-split-visual-caption {
370
390
  position: absolute;
371
391
  left: 24px;
372
392
  bottom: 24px;
@@ -480,19 +500,20 @@
480
500
  background: var(--kol-surface-primary);
481
501
  }
482
502
 
483
- /* The browser is the same body with no card around it — it fills whatever
484
- * box the consumer gives it, so a page can host it full-bleed. */
503
+ /* The browser is the same body with no card around it — in flow, it takes the
504
+ * width the consumer gives it. Tiles at 260 (MediaLibraryReconcile, kol-r2b2
505
+ * 2026-08-26 — FileList's `minmax(260px, 1fr)`; the picker keeps 10rem
506
+ * because its card is 64rem wide). */
485
507
  .kol-media-browser {
486
508
  display: flex;
487
509
  flex-direction: column;
488
510
  width: 100%;
489
- height: 100%;
490
- --kol-media-tile-min: 10rem;
511
+ --kol-media-tile-min: 16.25rem;
491
512
  }
492
513
 
493
514
  .kol-media-grid {
494
515
  display: grid;
495
- gap: var(--kol-spacing-4);
516
+ gap: var(--kol-spacing-3);
496
517
  grid-template-columns: repeat(auto-fill, minmax(var(--kol-media-tile-min), 1fr));
497
518
  list-style: none;
498
519
  margin: 0;
@@ -507,25 +528,26 @@
507
528
  padding: 0;
508
529
  }
509
530
 
510
- /* One folder row in the tree. Finder's list model: the chevron discloses in
511
- * place, so the parent never leaves the screen and there is no breadcrumb
512
- * stacked above a divider. Same row idiom as the rails a drill-down and a
513
- * nav row are the same gesture. */
531
+ /* One folder row CLICK-TO-ENTER (MediaLibraryReconcile, 2026-08-26): the
532
+ * row is FileList's icon box · name · trailing chevron-right over a
533
+ * hairline and clicking it enters the prefix; the breadcrumb steps back.
534
+ * Finder's disclose-in-place chevron (2026-08-01) is gone, not a variant. */
514
535
  .kol-media-folder {
515
536
  display: flex;
516
537
  align-items: center;
517
- gap: var(--kol-spacing-2);
518
- padding-block: var(--kol-pad-rail-row-y);
538
+ gap: var(--kol-spacing-3);
539
+ padding: var(--kol-spacing-2) var(--kol-spacing-1);
540
+ border-bottom: 1px solid var(--kol-fg-08);
519
541
  border-radius: var(--kol-radius-sm);
520
542
  cursor: pointer;
521
543
  transition: background-color var(--kol-transition-fast);
522
544
  }
523
545
 
524
546
  .kol-media-folder:hover {
525
- background: var(--kol-oq-04);
547
+ background: var(--kol-fg-04);
526
548
  }
527
549
 
528
- /* The path bar rides the FOOT, where Finder puts it. */
550
+ /* The picker's path bar rides the FOOT of its card. */
529
551
  .kol-media-pathbar {
530
552
  display: flex;
531
553
  align-items: center;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.52.1",
3
+ "version": "0.54.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",