@kolkrabbi/kol-theme 0.7.5 → 0.8.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.
package/kol-color.css CHANGED
@@ -80,6 +80,14 @@
80
80
 
81
81
  /* =============================================================================
82
82
  * SYSTEM PREFERENCE (Automatic Dark Mode)
83
+ *
84
+ * KEPT deliberately (ruling applied 2026-07-15, ledger-2.0 #2.4): KOL policy
85
+ * is light-first + FOLLOW-SYSTEM — an undecided page respects the visitor's
86
+ * OS preference; an explicit choice (app-set data-theme or a saved toggle)
87
+ * always wins because [data-theme="light"] opts out of this block and
88
+ * [data-theme="dark"] doesn't need it. A repo wanting hard light-always
89
+ * stamps data-theme="light" at boot — that's the per-repo seam, not a theme
90
+ * edit. ThemeToggle + useTheme implement the same policy JS-side.
83
91
  * ============================================================================= */
84
92
 
85
93
  @media (prefers-color-scheme: dark) {
@@ -225,6 +225,14 @@
225
225
  outline-offset: 2px;
226
226
  }
227
227
 
228
+ /* Icon-only buttons — was an inline style in Button.jsx, which beat every
229
+ * consumer display utility (`lg:hidden` could never hide an iconOnly button).
230
+ * Chrome belongs here, layered, so utilities stay sovereign. The flex
231
+ * centering comes from .kol-btn; the icon-only extra is only line-height. */
232
+ .kol-btn-icon {
233
+ line-height: 0;
234
+ }
235
+
228
236
  .kol-btn-primary {
229
237
  background: var(--kol-surface-secondary);
230
238
  color: var(--kol-surface-on-primary);
@@ -14,6 +14,14 @@
14
14
  * ─────────────────────────────────────────────────────────────────────
15
15
  */
16
16
 
17
+ /* Every floating node (PopoverPanel root, with or without panel chrome).
18
+ * Floats must top overlay chrome (.kol-overlay is z-100) — without this a
19
+ * dropdown/menu/tooltip opened INSIDE a FullscreenOverlay stacks under the
20
+ * sheet and its options intercept nothing. */
21
+ .kol-popover-float {
22
+ z-index: 110;
23
+ }
24
+
17
25
  /* Popover — default chrome for floating-ui-positioned panels.
18
26
  * Used by molecules/Popover.jsx PopoverPanel. */
19
27
  .kol-popover {
@@ -198,6 +206,27 @@
198
206
  margin: 0 12px;
199
207
  }
200
208
 
209
+ /* The option list — chrome, not consumer utilities (brief-2.0 defect 2: a
210
+ * consumer without @source got an uncapped, unscrollable panel). */
211
+ .kol-dd-list {
212
+ display: flex;
213
+ flex-direction: column;
214
+ align-items: stretch;
215
+ max-height: 300px;
216
+ overflow-y: auto;
217
+ }
218
+
219
+ /* The trigger chevron — pushed to the trailing edge, flips on open state.
220
+ * Replaces the ml-auto utility + inline rotate style in Dropdown.jsx. */
221
+ .kol-dd-caret {
222
+ margin-left: auto;
223
+ transition: transform 300ms;
224
+ }
225
+
226
+ .kol-dd-trigger[data-state="open"] .kol-dd-caret {
227
+ transform: rotate(180deg);
228
+ }
229
+
201
230
  .tag-control:hover {
202
231
  background-color: var(--kol-oq-12);
203
232
  color: var(--kol-surface-on-primary);
@@ -88,6 +88,10 @@
88
88
 
89
89
  /* Sidebar toggle buttons (collapsible section headers) — layout only.
90
90
  * Type/color carried in JSX (kol-helper-10 text-meta). */
91
+ /* Vertical rhythm matches .shell-nav-group-header (6px rows) — ledger-2.0
92
+ * #2.6 ruling (final, user-reviewed 2026-07-15): the rail keeps its quieter
93
+ * 10px label scale (deliberate hierarchy vs the nav's 14px), row rhythm is
94
+ * shared. */
91
95
  .shell-sidebar-toggle {
92
96
  display: flex;
93
97
  align-items: center;
@@ -96,7 +100,7 @@
96
100
  width: 100%;
97
101
  border: none;
98
102
  background: transparent;
99
- padding: 0;
103
+ padding: 6px 0;
100
104
  transition: color 0.15s ease;
101
105
  }
102
106
 
@@ -0,0 +1,31 @@
1
+ /**
2
+ * kol-sources.css — the @source manifest for every raw-JSX @kolkrabbi package.
3
+ *
4
+ * KOL packages publish raw .jsx, and Tailwind v4 skips node_modules during
5
+ * auto-detection — so utilities used INSIDE package components are never
6
+ * generated unless the consumer declares each package as a source. Forgetting
7
+ * one is silent breakage (unstyled chrome). This manifest carries the line for
8
+ * every raw-JSX package; the consumer imports it ONCE:
9
+ *
10
+ * @import "tailwindcss";
11
+ * @import "@kolkrabbi/kol-theme";
12
+ * @import "@kolkrabbi/kol-theme/kol-sources.css";
13
+ *
14
+ * `@source` resolves relative to THIS file (node_modules/@kolkrabbi/kol-theme/),
15
+ * so sibling package paths work from inside node_modules. A path that doesn't
16
+ * exist (package not installed) matches nothing — installing a subset is fine.
17
+ * New raw-JSX packages get their line added here, DS-side, so consumers never
18
+ * chase the footgun again.
19
+ */
20
+
21
+ @source "../kol-brand/src";
22
+ @source "../kol-chess/src";
23
+ @source "../kol-component/src";
24
+ @source "../kol-content/src";
25
+ @source "../kol-dashboards/src";
26
+ @source "../kol-foundry/src";
27
+ @source "../kol-framework/src";
28
+ @source "../kol-icons/src";
29
+ @source "../kol-store/src";
30
+ @source "../kol-styleguide/src";
31
+ @source "../kol-workshop/src";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.7.5",
3
+ "version": "0.8.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",