@kolkrabbi/kol-theme 0.122.0 → 0.124.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.
@@ -0,0 +1,36 @@
1
+ /* ---------------------------------------------------------------------------
2
+ * KOL CONTROLS — the token layer for @kolkrabbi/kol-controls (KolControlsPackage,
3
+ * kol-monitor 2026-09-01). Hardware panel controls for instruments: the values
4
+ * are kol-monitor's `monitor-overrides.css`, renamed `--monitor-*` → `--kol-ctl-*`
5
+ * on the way in — the values are the ruling, the prefix is the package's.
6
+ *
7
+ * HARDWARE IS THEME-INVARIANT: a knob cap is black on a white panel too, so the
8
+ * caps derive from `--kol-color-ab-black` / `-white` — the `oq-ab` / `fg-ab`
9
+ * tiers flip with `[data-theme]` and could not carry them.
10
+ *
11
+ * LEDs are the set's own emitters, deliberately NOT `--kol-palette-*` (user
12
+ * ruling: "leds and the colors should stay, they are unique to this set").
13
+ *
14
+ * `JackSocket` appends a hex alpha to its role colour for the glow, so the two
15
+ * jack roles must resolve to HEX on :root — a consumer overriding them binds a
16
+ * hex, never a var().
17
+ * --------------------------------------------------------------------------- */
18
+ :root {
19
+ /* hardware */
20
+ --kol-ctl-hw-cap: color-mix(in srgb, var(--kol-color-ab-black) 90%, transparent);
21
+ --kol-ctl-hw-well: color-mix(in srgb, var(--kol-color-ab-black) 95%, transparent);
22
+ --kol-ctl-hw-shade: color-mix(in srgb, var(--kol-color-ab-black) 40%, transparent);
23
+ --kol-ctl-hw-cap-edge: color-mix(in srgb, var(--kol-color-ab-white) 16%, transparent);
24
+ --kol-ctl-hw-on-cap: color-mix(in srgb, var(--kol-color-ab-white) 72%, transparent);
25
+ --kol-ctl-hw-rail: linear-gradient(180deg, #8a8680 0%, #7a7670 50%, #6a6660 100%);
26
+ --kol-ctl-hw-case: #141414;
27
+ --kol-ctl-cable: #f59e0b;
28
+ /* LEDs */
29
+ --kol-ctl-led-red: #e74c3c;
30
+ --kol-ctl-led-green: #2ecc71;
31
+ --kol-ctl-led-yellow: #f1c40f;
32
+ --kol-ctl-led-blue: #3b82f6;
33
+ /* jack roles — HEX, see above */
34
+ --kol-ctl-signal-input: #4ade80;
35
+ --kol-ctl-cv-attenuate: #497DA2;
36
+ }
@@ -134,3 +134,46 @@
134
134
  z-index: calc(var(--kol-z-sticky) - 1);
135
135
  background: color-mix(in srgb, var(--kol-color-ab-black) 48%, transparent);
136
136
  }
137
+
138
+ /* ── THE TAP OPENER (ShellRailCollapsedWithTapOpen, kol-mirror 2026-09-01) ──
139
+ * `touch="shell"` keeps the collapsed 48px rail visible — the user's ruling
140
+ * for a home that is navigation — but its only opener was the grab strip: 8px
141
+ * on the line, a pill that wakes on pointer PROXIMITY. A thumb never hovers,
142
+ * so on a phone the rail could not be opened. The strip is a <button> now
143
+ * (kol-shell 0.38.0) carrying `.kol-rail-grab-tap`, a 24px disc on the line
144
+ * that exists ONLY under a coarse pointer: fine pointers keep the ruled grab
145
+ * (RailFlatGrabOpen, OneGrabGestureBothRails) and never see this. The strip
146
+ * already toggles on a press with no travel; this gives that press a target.
147
+ * Geometry lives here, the pill's motion stays in kol-animation.css. */
148
+ .kol-rail-grab {
149
+ appearance: none;
150
+ background: transparent;
151
+ border: 0;
152
+ padding: 0;
153
+ color: inherit;
154
+ }
155
+ .kol-rail-grab-tap { display: none; }
156
+ @media (pointer: coarse) {
157
+ .kol-rail-grab {
158
+ width: 24px;
159
+ right: -12px;
160
+ cursor: pointer;
161
+ }
162
+ /* no proximity on touch — the pill would never wake; the disc is the affordance */
163
+ .kol-rail-grab::before { display: none; }
164
+ .kol-rail-grab-tap {
165
+ display: flex;
166
+ align-items: center;
167
+ justify-content: center;
168
+ position: absolute;
169
+ left: 50%;
170
+ top: 50%;
171
+ translate: -50% -50%;
172
+ width: 24px;
173
+ height: 24px;
174
+ border-radius: var(--kol-radius-full);
175
+ background: var(--kol-surface-secondary);
176
+ border: 1px solid var(--kol-fg-16);
177
+ color: var(--kol-oq-96);
178
+ }
179
+ }
package/kol-theme.css CHANGED
@@ -48,6 +48,7 @@
48
48
  @import "./kol-components-foundry.css" layer(components);
49
49
  @import "./kol-components-styleguide.css" layer(components);
50
50
  @import "./kol-components-shell.css" layer(components);
51
+ @import "./kol-components-controls.css" layer(components);
51
52
 
52
53
  /* Theme-level design tokens — LAST, as they always were (lifted into their own
53
54
  * file 2026-08-27 so kol-core.css shares them; emitted CSS unchanged). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kolkrabbi/kol-theme",
3
- "version": "0.122.0",
3
+ "version": "0.124.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",