@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.
- package/kol-components-controls.css +36 -0
- package/kol-components-shell.css +43 -0
- package/kol-theme.css +1 -0
- package/package.json +1 -1
|
@@ -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
|
+
}
|
package/kol-components-shell.css
CHANGED
|
@@ -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.
|
|
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",
|