@kolkrabbi/kol-theme 0.31.1 → 0.31.3

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.
@@ -777,32 +777,28 @@ a:hover .icon-hover,
777
777
 
778
778
  /* ─────────────────────────────────────────────────────────────────────
779
779
  * CopyButton — atoms/CopyButton.jsx
780
- * Copy-to-clipboard chip: clipboard icon + Copy/Copied label.
781
- * Look extracted from CodeBlock's inline copy button; CodeBlock's
782
- * .kol-codeblock-copy (kol-framework) now only positions it.
780
+ * THE copy-to-clipboard control (2026-08-09 user ruling): the 32×32
781
+ * icon button CodeBlock carried privately since the 2026-07-28 elder
782
+ * replication — 16px icon + 0.5rem padding. The old Copy/Copied label
783
+ * chip (one-off SVGs, auto-uppercase) is retired; CodeBlock composes
784
+ * this atom and .kol-codeblock-copy only positions it in-frame.
783
785
  * ───────────────────────────────────────────────────────────────────── */
784
786
  .kol-copy-btn {
785
787
  display: inline-flex;
786
788
  align-items: center;
787
- gap: 6px;
788
- padding: 6px 10px;
789
- background: color-mix(in srgb, var(--kol-surface-primary) 80%, transparent);
790
- border: 1px solid var(--kol-fg-16);
791
- border-radius: 3px;
792
- color: var(--kol-fg-64);
789
+ justify-content: center;
790
+ padding: 0.5rem;
791
+ background: color-mix(in srgb, var(--kol-surface-on-primary) 2%, transparent);
792
+ border: none;
793
+ border-radius: var(--kol-radius-sm);
794
+ color: color-mix(in srgb, var(--kol-surface-on-primary) 72%, transparent);
793
795
  cursor: pointer;
794
- font-family: var(--kol-font-family-mono, monospace);
795
- font-size: 10px;
796
- font-weight: 600;
797
- letter-spacing: 0.08em;
798
- line-height: 1;
799
- text-transform: uppercase;
800
- transition: color 150ms ease, border-color 150ms ease, background 150ms ease;
796
+ transition: background-color var(--kol-transition-base), color var(--kol-transition-base);
801
797
  }
802
798
 
803
799
  .kol-copy-btn:hover {
800
+ background: color-mix(in srgb, var(--kol-surface-on-primary) 8%, transparent);
804
801
  color: var(--kol-surface-on-primary);
805
- border-color: var(--kol-fg-48);
806
802
  }
807
803
 
808
804
  /* ─────────────────────────────────────────────────────────────────────
@@ -55,7 +55,11 @@
55
55
  * The trigger reserves the widest option's width by stacking every label in
56
56
  * one grid cell (hidden ghosts), so the panel — pinned to the trigger by
57
57
  * matchReferenceWidth — is exactly as wide as the trigger at every value. */
58
- .kol-dd-label { display: inline-grid; min-width: 0; }
58
+ /* text-align: the trigger is a real <button>, and the UA stylesheet centers
59
+ * button text — the stretched label span then centers inside the widest-ghost
60
+ * cell (a value floating at a random indent per list). Pin it to the leading
61
+ * edge, Input's model. */
62
+ .kol-dd-label { display: inline-grid; min-width: 0; text-align: start; }
59
63
  .kol-dd-label > span { grid-area: 1 / 1; white-space: nowrap; }
60
64
  .kol-dd-ghost { visibility: hidden; }
61
65
  .kol-dd-caret {
@@ -557,27 +561,13 @@
557
561
  margin-block-end: 0.75rem;
558
562
  }
559
563
 
560
- /* icon copy buttonVERBATIM from the live reference build: 16px icon +
561
- * 0.5rem padding = the 32×32 box, offset 0.75rem into the 1rem pad. */
564
+ /* in-frame position only — the button IS the CopyButton atom (.kol-copy-btn
565
+ * carries the 32×32 look, promoted there 2026-08-09); offset 0.75rem into
566
+ * the 1rem pad. */
562
567
  .kol-codeblock-copy {
563
568
  position: absolute;
564
569
  top: 0.75rem;
565
570
  right: 0.75rem;
566
- padding: 0.5rem;
567
- display: flex;
568
- align-items: center;
569
- justify-content: center;
570
- background: color-mix(in srgb, var(--kol-surface-on-primary) 2%, transparent);
571
- border: none;
572
- border-radius: 4px;
573
- color: color-mix(in srgb, var(--kol-surface-on-primary) 72%, transparent);
574
- cursor: pointer;
575
- transition: all 0.15s;
576
- }
577
-
578
- .kol-codeblock-copy:hover {
579
- background: color-mix(in srgb, var(--kol-surface-on-primary) 8%, transparent);
580
- color: var(--kol-surface-on-primary);
581
571
  }
582
572
 
583
573
  /* ─────────────────────────────────────────────────────────────────────
@@ -565,19 +565,42 @@
565
565
  overflow-wrap: anywhere;
566
566
  }
567
567
 
568
- /* A MULTI-VALUE FIELD IS A LIST WITH A CEILING (2026-08-01). Stacked one per
569
- * line, and capped at roughly eight rows before it scrolls in place a doc
570
- * with fifteen `sources` would otherwise push its own article fifteen lines
571
- * down and turn the metadata panel into the page. */
568
+ /* A MULTI-VALUE FIELD IS A LIST, one per line. Its 2026-08-01 scroll ceiling
569
+ * (11rem + overscroll contain per field) is REPEALED 2026-08-09per-field
570
+ * scrollboxes captured the page wheel on the way down; the cap lives on the
571
+ * WHOLE panel now (.docs-frontmatter-body--capped below). */
572
572
  .docs-frontmatter-list {
573
573
  display: flex;
574
574
  flex-direction: column;
575
575
  gap: var(--kol-spacing-1);
576
- max-height: 11rem;
577
- overflow-y: auto;
578
- overscroll-behavior: contain;
579
576
  }
580
577
 
578
+ /* THE PANEL COLLAPSES, THE PAGE SCROLLS (2026-08-09 user call). One cap on
579
+ * the whole panel behind a fade, expanded in normal flow via the toggle —
580
+ * zero scroll regions inside the panel. */
581
+ .docs-frontmatter-body { position: relative; }
582
+ .docs-frontmatter-body--capped {
583
+ max-height: 20rem;
584
+ overflow: hidden;
585
+ }
586
+ .docs-frontmatter-fade {
587
+ position: absolute;
588
+ inset-inline: 0;
589
+ bottom: 0;
590
+ height: 4rem;
591
+ background: linear-gradient(to bottom, transparent, var(--kol-surface-primary));
592
+ pointer-events: none;
593
+ }
594
+ /* Toggle layout only — type/color ride kol-helper-12 text-meta in JSX. */
595
+ .docs-frontmatter-toggle {
596
+ display: flex;
597
+ align-items: center;
598
+ gap: var(--kol-spacing-2);
599
+ margin-block-start: var(--kol-spacing-2);
600
+ cursor: pointer;
601
+ }
602
+ .docs-frontmatter-toggle:hover { color: var(--kol-surface-on-primary); }
603
+
581
604
  /* `.tag` was the Tag component's base class until it was rebuilt on Pill's
582
605
  * model (2026-08-01) and the scheme became `kol-tag`. The selector has matched
583
606
  * nothing since. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.31.1",
3
+ "version": "0.31.3",
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",