@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.
- package/kol-components-atoms.css +13 -17
- package/kol-components-molecules.css +8 -18
- package/kol-components-workshop.css +30 -7
- package/package.json +1 -1
package/kol-components-atoms.css
CHANGED
|
@@ -777,32 +777,28 @@ a:hover .icon-hover,
|
|
|
777
777
|
|
|
778
778
|
/* ─────────────────────────────────────────────────────────────────────
|
|
779
779
|
* CopyButton — atoms/CopyButton.jsx
|
|
780
|
-
*
|
|
781
|
-
*
|
|
782
|
-
* .
|
|
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
|
-
|
|
788
|
-
padding:
|
|
789
|
-
background: color-mix(in srgb, var(--kol-surface-primary)
|
|
790
|
-
border:
|
|
791
|
-
border-radius:
|
|
792
|
-
color: var(--kol-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
/*
|
|
561
|
-
*
|
|
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
|
|
569
|
-
*
|
|
570
|
-
*
|
|
571
|
-
*
|
|
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-09 — per-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.
|
|
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",
|