@kolkrabbi/kol-theme 0.50.1 → 0.51.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.
@@ -474,10 +474,28 @@
474
474
  background-color: transparent;
475
475
  color: var(--kol-surface-on-primary);
476
476
  cursor: pointer;
477
+ position: relative; /* the bare variant's hit extent below anchors here */
477
478
  transition: background-color var(--kol-transition-base),
478
479
  border-color var(--kol-transition-base);
479
480
  }
480
481
 
482
+ /* THE TOUCH FLOOR (MobileTouchFloor, user ruling 2026-08-26): every pressable
483
+ * control clears a 24px hit box (WCAG 2.5.8 AA) and the DRAWN size never
484
+ * moves. No type floor — 10px chrome is the ruled helper/mono-10 voice. Two
485
+ * controls sat under 24: this bare switch (a 12px track in a 1px border, 14px
486
+ * tall) and the Slider's range input below (a 2px track was the whole target).
487
+ * The shells ride button geometry (26/32/40) and already clear it. The extent
488
+ * is a pseudo-element, so the layout box, the label and the track stay where
489
+ * they are; hit-testing on a pseudo lands on its originating button. */
490
+ .toggle-switch--bare::before {
491
+ content: '';
492
+ position: absolute;
493
+ inset-inline: 0;
494
+ top: 50%;
495
+ height: 24px;
496
+ translate: 0 -50%;
497
+ }
498
+
481
499
  .toggle-switch:focus-visible {
482
500
  outline: 2px solid var(--kol-focus-ring);
483
501
  outline-offset: 2px;
@@ -626,7 +644,12 @@
626
644
  appearance: none;
627
645
  background: transparent;
628
646
  cursor: pointer;
629
- height: 2px;
647
+ /* 24px, not 2px (the touch floor, user ruling 2026-08-26 — see ToggleSwitch
648
+ * above). The INPUT is the hit target and it was exactly the track's 2px;
649
+ * the drawing is unchanged: the 2px track centres inside the box by the UA's
650
+ * own `align-self: center` on the runnable track, and the thumb stays pinned
651
+ * to the track. The row (.control-slider) is already 24px, so nothing moves. */
652
+ height: 24px;
630
653
  }
631
654
 
632
655
  .slider-black::-webkit-slider-runnable-track {
@@ -707,6 +707,20 @@
707
707
  margin-block-end: 0.75rem;
708
708
  }
709
709
 
710
+ /* THE CONTROL'S LANE (CodeBlockMobileOverflow, kol-website 2026-08-25). The
711
+ * copy button floats in the frame's top-right corner (.kol-frame-control), and
712
+ * the chip row is the lane it sits in — when there IS a chip. A block with no
713
+ * chip (a `text` fence, an unlabelled CMS block) starts its code on the row
714
+ * the control occupies, and once the block is narrower than ~600px the first
715
+ * line runs underneath it (measured: control y 3729–3761, line 1 y 3735–3756).
716
+ * The first line reserves the control's column in that case and only that
717
+ * case — 2rem is the control's box (.kol-copy-btn: 16px glyph + 0.5rem pad)
718
+ * plus its inset; every other line, and every chipped block, is untouched.
719
+ * `.kol-codeblock-line` is stamped per line by CodeBlock.jsx. */
720
+ .kol-codeblock:not(:has(.kol-codeblock-filename)) .kol-codeblock-line:first-child {
721
+ padding-inline-end: calc(2rem + var(--kol-spacing-3));
722
+ }
723
+
710
724
  /* ─────────────────────────────────────────────────────────────────────
711
725
  * FRAME CONTROL — a control that floats in a host frame's corner
712
726
  * (user ruling 2026-08-15).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.50.1",
3
+ "version": "0.51.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",