@xsynaptic/sonic-ui 0.3.0 → 0.4.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/dist/default/elements/dial.js +5 -3
- package/dist/default/elements/key.js +29 -4
- package/dist/default/elements/meter.js +63 -9
- package/dist/default/elements/number.js +1 -1
- package/dist/default/elements/range-element.js +134 -21
- package/dist/default/elements/slider.js +49 -3
- package/dist/default/lib/detent.js +17 -0
- package/dist/default/lib/math.js +16 -0
- package/dist/default/lib/number-list.js +14 -0
- package/dist/default/lib/taper.js +17 -7
- package/dist/dev/elements/dial.js +5 -3
- package/dist/dev/elements/dial.js.map +1 -1
- package/dist/dev/elements/key.d.ts +4 -0
- package/dist/dev/elements/key.js +29 -4
- package/dist/dev/elements/key.js.map +1 -1
- package/dist/dev/elements/meter.d.ts +6 -0
- package/dist/dev/elements/meter.js +63 -9
- package/dist/dev/elements/meter.js.map +1 -1
- package/dist/dev/elements/number.js +1 -1
- package/dist/dev/elements/range-element.d.ts +8 -0
- package/dist/dev/elements/range-element.js +134 -21
- package/dist/dev/elements/range-element.js.map +1 -1
- package/dist/dev/elements/slider.d.ts +6 -0
- package/dist/dev/elements/slider.js +49 -3
- package/dist/dev/elements/slider.js.map +1 -1
- package/dist/dev/lib/detent.js +18 -0
- package/dist/dev/lib/detent.js.map +1 -0
- package/dist/dev/lib/math.js +17 -0
- package/dist/dev/lib/math.js.map +1 -0
- package/dist/dev/lib/number-list.js +15 -0
- package/dist/dev/lib/number-list.js.map +1 -0
- package/dist/dev/lib/taper.js +17 -7
- package/dist/dev/lib/taper.js.map +1 -1
- package/dist/styles/dial.css +43 -3
- package/dist/styles/key.css +60 -15
- package/dist/styles/led.css +8 -1
- package/dist/styles/material.css +50 -1
- package/dist/styles/meter.css +101 -5
- package/dist/styles/segmented.css +2 -7
- package/dist/styles/slider.css +94 -32
- package/package.json +1 -1
package/dist/styles/meter.css
CHANGED
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
--_sonic-meter-toward: to top;
|
|
58
58
|
--_sonic-meter-inset: calc(var(--_sonic-meter-size) * 0.125);
|
|
59
59
|
--_sonic-meter-lens: calc(var(--_sonic-meter-size) - 2 * var(--_sonic-meter-inset));
|
|
60
|
+
--_sonic-meter-clip-space: calc(var(--_sonic-meter-inset) + var(--_sonic-meter-lens));
|
|
60
61
|
--_sonic-meter-gap: calc(var(--_sonic-meter-pitch) * var(--_sonic-meter-gap-ratio));
|
|
61
62
|
--_sonic-meter-segment: calc(var(--_sonic-meter-pitch) - var(--_sonic-meter-gap));
|
|
62
63
|
--_sonic-meter-segment-radius: calc(
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
);
|
|
65
66
|
--_sonic-meter-segments: round(
|
|
66
67
|
down,
|
|
67
|
-
var(--_sonic-meter-length) -
|
|
68
|
+
var(--_sonic-meter-length) - 2 * var(--_sonic-meter-inset) - var(--_sonic-meter-clip-space) +
|
|
68
69
|
var(--_sonic-meter-gap),
|
|
69
70
|
var(--_sonic-meter-pitch)
|
|
70
71
|
);
|
|
@@ -93,6 +94,26 @@
|
|
|
93
94
|
block-size: var(--_sonic-meter-size);
|
|
94
95
|
}
|
|
95
96
|
|
|
97
|
+
/* No clip on either, so the lights take the lens's room */
|
|
98
|
+
:is([scale='linear'], :state(ladder)) > .sonic-meter {
|
|
99
|
+
--_sonic-meter-clip-space: 0px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
:state(ladder) > .sonic-meter {
|
|
103
|
+
--_sonic-meter-pitch: calc(
|
|
104
|
+
(var(--_sonic-meter-length) - 2 * var(--_sonic-meter-inset)) / var(--_sonic-meter-count, 1)
|
|
105
|
+
);
|
|
106
|
+
--_sonic-meter-gap: 0px;
|
|
107
|
+
--_sonic-meter-segments: calc(var(--_sonic-meter-length) - 2 * var(--_sonic-meter-inset));
|
|
108
|
+
--_sonic-meter-light-radius: calc(
|
|
109
|
+
min(
|
|
110
|
+
var(--_sonic-meter-lens),
|
|
111
|
+
var(--_sonic-meter-pitch) * (1 - var(--_sonic-meter-gap-ratio))
|
|
112
|
+
) /
|
|
113
|
+
2
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
96
117
|
/* Snapped to whole lights, so none is split between two colours */
|
|
97
118
|
:is(.sonic-meter-segments, .sonic-meter-level) {
|
|
98
119
|
--_sonic-meter-span: calc(var(--_sonic-meter-max, 0) - var(--_sonic-meter-min, -60));
|
|
@@ -108,7 +129,9 @@
|
|
|
108
129
|
--_sonic-meter-clip-at: round(
|
|
109
130
|
clamp(
|
|
110
131
|
0,
|
|
111
|
-
|
|
132
|
+
/* fallow-ignore-next-line code-duplication -- each zone snaps its own threshold by the same rule */
|
|
133
|
+
(var(--_sonic-meter-clip-from) - var(--_sonic-meter-min, -60)) /
|
|
134
|
+
var(--_sonic-meter-span),
|
|
112
135
|
1
|
|
113
136
|
) *
|
|
114
137
|
var(--_sonic-meter-segments),
|
|
@@ -144,6 +167,7 @@
|
|
|
144
167
|
0 100% / 100% var(--_sonic-meter-pitch) no-repeat repeat,
|
|
145
168
|
radial-gradient(
|
|
146
169
|
circle var(--_sonic-meter-segment-radius) at left var(--_sonic-meter-segment-radius)
|
|
170
|
+
/* fallow-ignore-next-line code-duplication -- one gradient per segment corner is geometry, not copied logic */
|
|
147
171
|
bottom calc(var(--_sonic-meter-segment) - var(--_sonic-meter-segment-radius)),
|
|
148
172
|
#000 calc(100% - 0.5px),
|
|
149
173
|
transparent
|
|
@@ -164,6 +188,23 @@
|
|
|
164
188
|
mask-composite: add;
|
|
165
189
|
}
|
|
166
190
|
|
|
191
|
+
:state(ladder) > .sonic-meter > :is(.sonic-meter-segments, .sonic-meter-level) {
|
|
192
|
+
--_sonic-meter-hot-at: calc(var(--_sonic-meter-hot-lights, 0) * var(--_sonic-meter-pitch));
|
|
193
|
+
--_sonic-meter-clip-at: calc(var(--_sonic-meter-clip-lights, 0) * var(--_sonic-meter-pitch));
|
|
194
|
+
--_sonic-meter-lights: radial-gradient(
|
|
195
|
+
circle var(--_sonic-meter-light-radius),
|
|
196
|
+
#000 calc(100% - 0.5px),
|
|
197
|
+
transparent
|
|
198
|
+
)
|
|
199
|
+
0 100% / 100% var(--_sonic-meter-pitch) no-repeat repeat;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* The zones are dBFS, which a linear level is not */
|
|
203
|
+
[scale='linear'] > .sonic-meter > :is(.sonic-meter-segments, .sonic-meter-level) {
|
|
204
|
+
--_sonic-meter-hot-at: var(--_sonic-meter-segments);
|
|
205
|
+
--_sonic-meter-clip-at: var(--_sonic-meter-segments);
|
|
206
|
+
}
|
|
207
|
+
|
|
167
208
|
[orientation='horizontal'] > .sonic-meter > :is(.sonic-meter-segments, .sonic-meter-level) {
|
|
168
209
|
--_sonic-meter-lights:
|
|
169
210
|
linear-gradient(to right, #000 var(--_sonic-meter-segment), transparent 0) 0
|
|
@@ -194,6 +235,7 @@
|
|
|
194
235
|
radial-gradient(
|
|
195
236
|
circle var(--_sonic-meter-segment-radius) at left
|
|
196
237
|
calc(var(--_sonic-meter-segment) - var(--_sonic-meter-segment-radius)) top
|
|
238
|
+
/* fallow-ignore-next-line code-duplication -- one gradient per segment corner is geometry, not copied logic */
|
|
197
239
|
var(--_sonic-meter-segment-radius),
|
|
198
240
|
#000 calc(100% - 0.5px),
|
|
199
241
|
transparent
|
|
@@ -213,6 +255,42 @@
|
|
|
213
255
|
block-size: auto;
|
|
214
256
|
}
|
|
215
257
|
|
|
258
|
+
[orientation='horizontal']:state(ladder)
|
|
259
|
+
> .sonic-meter
|
|
260
|
+
> :is(.sonic-meter-segments, .sonic-meter-level) {
|
|
261
|
+
--_sonic-meter-lights: radial-gradient(
|
|
262
|
+
circle var(--_sonic-meter-light-radius),
|
|
263
|
+
#000 calc(100% - 0.5px),
|
|
264
|
+
transparent
|
|
265
|
+
)
|
|
266
|
+
0 0 / var(--_sonic-meter-pitch) 100% repeat no-repeat;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
:state(ladder) > .sonic-meter > :is(.sonic-meter-segments, .sonic-meter-level)::after {
|
|
270
|
+
position: absolute;
|
|
271
|
+
inset: 0;
|
|
272
|
+
content: '';
|
|
273
|
+
background: linear-gradient(var(--_sonic-light-fall), rgb(255 255 255 / 10%), transparent 60%) 0
|
|
274
|
+
100% / 100% var(--_sonic-meter-pitch) repeat-y;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
:state(ladder) > .sonic-meter > .sonic-meter-level::after {
|
|
278
|
+
background: radial-gradient(
|
|
279
|
+
circle var(--_sonic-meter-light-radius),
|
|
280
|
+
rgb(255 255 255 / 45%),
|
|
281
|
+
transparent
|
|
282
|
+
)
|
|
283
|
+
0 100% / 100% var(--_sonic-meter-pitch) repeat-y;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
[orientation='horizontal']:state(ladder)
|
|
287
|
+
> .sonic-meter
|
|
288
|
+
> :is(.sonic-meter-segments, .sonic-meter-level)::after {
|
|
289
|
+
background-repeat: repeat-x;
|
|
290
|
+
background-position: 0 0;
|
|
291
|
+
background-size: var(--_sonic-meter-pitch) 100%;
|
|
292
|
+
}
|
|
293
|
+
|
|
216
294
|
.sonic-meter-segments {
|
|
217
295
|
background: linear-gradient(
|
|
218
296
|
var(--_sonic-meter-toward),
|
|
@@ -223,15 +301,24 @@
|
|
|
223
301
|
}
|
|
224
302
|
|
|
225
303
|
/* One mask for the bar and peak, so a frame repaints without layout */
|
|
304
|
+
|
|
305
|
+
/* The hair of slack keeps an exact fraction from losing a light to float error */
|
|
226
306
|
.sonic-meter-level {
|
|
307
|
+
--_sonic-meter-lit-from: round(
|
|
308
|
+
up,
|
|
309
|
+
min(var(--_sonic-meter-origin, 0), var(--_sonic-meter-level, 0)) *
|
|
310
|
+
var(--_sonic-meter-segments) - 0.01px,
|
|
311
|
+
var(--_sonic-meter-pitch)
|
|
312
|
+
);
|
|
227
313
|
--_sonic-meter-lit: round(
|
|
228
314
|
down,
|
|
229
|
-
var(--_sonic-meter-
|
|
315
|
+
max(var(--_sonic-meter-origin, 0), var(--_sonic-meter-level, 0)) *
|
|
316
|
+
var(--_sonic-meter-segments) + 0.01px,
|
|
230
317
|
var(--_sonic-meter-pitch)
|
|
231
318
|
);
|
|
232
319
|
--_sonic-meter-held: round(
|
|
233
320
|
down,
|
|
234
|
-
var(--_sonic-meter-peak, 0) * var(--_sonic-meter-segments),
|
|
321
|
+
var(--_sonic-meter-peak, 0) * var(--_sonic-meter-segments) + 0.01px,
|
|
235
322
|
var(--_sonic-meter-pitch)
|
|
236
323
|
);
|
|
237
324
|
|
|
@@ -244,7 +331,8 @@
|
|
|
244
331
|
mask:
|
|
245
332
|
linear-gradient(
|
|
246
333
|
var(--_sonic-meter-toward),
|
|
247
|
-
|
|
334
|
+
transparent var(--_sonic-meter-lit-from),
|
|
335
|
+
#000 0 var(--_sonic-meter-lit),
|
|
248
336
|
transparent 0 calc(var(--_sonic-meter-held) - var(--_sonic-meter-pitch)),
|
|
249
337
|
#000 0 var(--_sonic-meter-held),
|
|
250
338
|
transparent 0
|
|
@@ -274,6 +362,10 @@
|
|
|
274
362
|
}
|
|
275
363
|
}
|
|
276
364
|
|
|
365
|
+
:is([scale='linear'], :state(ladder)) > .sonic-meter > .sonic-meter-clip {
|
|
366
|
+
display: none;
|
|
367
|
+
}
|
|
368
|
+
|
|
277
369
|
[orientation='horizontal'] > .sonic-meter > .sonic-meter-clip {
|
|
278
370
|
inset: var(--_sonic-meter-inset) var(--_sonic-meter-inset) var(--_sonic-meter-inset) auto;
|
|
279
371
|
inline-size: var(--_sonic-meter-lens);
|
|
@@ -303,5 +395,9 @@
|
|
|
303
395
|
.sonic-meter-clip::after {
|
|
304
396
|
background: Mark;
|
|
305
397
|
}
|
|
398
|
+
|
|
399
|
+
:state(ladder) > .sonic-meter > :is(.sonic-meter-segments, .sonic-meter-level)::after {
|
|
400
|
+
display: none;
|
|
401
|
+
}
|
|
306
402
|
}
|
|
307
403
|
}
|
|
@@ -51,11 +51,7 @@
|
|
|
51
51
|
padding: var(--_sonic-segmented-gap);
|
|
52
52
|
touch-action: pan-y;
|
|
53
53
|
user-select: none;
|
|
54
|
-
background:
|
|
55
|
-
var(--_sonic-light-fall),
|
|
56
|
-
color-mix(in oklab, var(--_sonic-unlit) 55%, #000),
|
|
57
|
-
color-mix(in oklab, var(--_sonic-unlit) 85%, #000)
|
|
58
|
-
);
|
|
54
|
+
background: var(--_sonic-well-floor);
|
|
59
55
|
border-radius: var(--_sonic-segmented-corner);
|
|
60
56
|
box-shadow: var(--_sonic-well);
|
|
61
57
|
}
|
|
@@ -85,8 +81,7 @@
|
|
|
85
81
|
.sonic-segmented-segment[aria-checked='true'] {
|
|
86
82
|
--_sonic-segmented-shift: calc(var(--_sonic-segmented-depth) / 2);
|
|
87
83
|
--_sonic-segmented-scale: var(--_sonic-segmented-press-scale);
|
|
88
|
-
--_sonic-segmented-drop:
|
|
89
|
-
var(--_sonic-unit) var(--_sonic-drop-shade);
|
|
84
|
+
--_sonic-segmented-drop: var(--_sonic-press-drop);
|
|
90
85
|
}
|
|
91
86
|
|
|
92
87
|
.sonic-segmented-segment[aria-checked='true'] {
|
package/dist/styles/slider.css
CHANGED
|
@@ -23,9 +23,11 @@
|
|
|
23
23
|
|
|
24
24
|
sonic-slider:not(:defined, [hidden]) {
|
|
25
25
|
display: block;
|
|
26
|
+
visibility: hidden;
|
|
26
27
|
flex-shrink: 0;
|
|
27
28
|
inline-size: var(--_sonic-slider-length);
|
|
28
29
|
block-size: var(--_sonic-slider-size);
|
|
30
|
+
overflow: hidden;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
sonic-slider[orientation='vertical']:not(:defined, [hidden]) {
|
|
@@ -42,13 +44,23 @@
|
|
|
42
44
|
--_sonic-slider-radius-ratio: var(--sonic-slider-radius-ratio, 0.15);
|
|
43
45
|
--_sonic-slider-bevel-ratio: var(--sonic-slider-bevel-ratio, 0.075);
|
|
44
46
|
--_sonic-slider-pointer-ratio: var(--sonic-slider-pointer-ratio, 0.07);
|
|
45
|
-
--_sonic-
|
|
47
|
+
--_sonic-slider-scale-ratio: var(--sonic-slider-scale-ratio, 0.4);
|
|
48
|
+
--_sonic-slider-scale-font-ratio: var(--sonic-slider-scale-font-ratio, 0.18);
|
|
49
|
+
--_sonic-slider-scale-band: 0px;
|
|
50
|
+
|
|
51
|
+
/* Across the travel beside the legend, so a legend widens the box without restyling the fader */
|
|
52
|
+
--_sonic-slider-track: calc(var(--_sonic-slider-size) - var(--_sonic-slider-scale-band));
|
|
53
|
+
--_sonic-unit: calc(var(--_sonic-slider-track) / 32);
|
|
46
54
|
--_sonic-slider-lit: var(--_sonic-lit);
|
|
55
|
+
--_sonic-slider-buffered: var(
|
|
56
|
+
--sonic-buffered,
|
|
57
|
+
color-mix(in oklab, var(--_sonic-ink) 18%, var(--_sonic-unlit))
|
|
58
|
+
);
|
|
47
59
|
--_sonic-slider-toward: to right;
|
|
48
60
|
--_sonic-slider-across: to bottom;
|
|
49
61
|
--_sonic-slider-cursor: ew-resize;
|
|
50
|
-
--_sonic-slider-groove: calc(var(--_sonic-slider-
|
|
51
|
-
--_sonic-slider-cap: calc(var(--_sonic-slider-
|
|
62
|
+
--_sonic-slider-groove: calc(var(--_sonic-slider-track) * var(--_sonic-slider-groove-ratio));
|
|
63
|
+
--_sonic-slider-cap: calc(var(--_sonic-slider-track) * var(--_sonic-slider-cap-ratio));
|
|
52
64
|
--_sonic-slider-travel: calc(var(--_sonic-slider-length) - var(--_sonic-slider-cap));
|
|
53
65
|
--_sonic-slider-offset: calc(var(--_sonic-slider-value, 0) * var(--_sonic-slider-travel));
|
|
54
66
|
|
|
@@ -83,6 +95,10 @@
|
|
|
83
95
|
--_sonic-slider-cursor: default;
|
|
84
96
|
}
|
|
85
97
|
|
|
98
|
+
:has(> [data-sonic-value]) > .sonic-slider {
|
|
99
|
+
--_sonic-slider-scale-band: calc(var(--_sonic-slider-size) * var(--_sonic-slider-scale-ratio));
|
|
100
|
+
}
|
|
101
|
+
|
|
86
102
|
[groove-press='none']:not(:state(dragging)) > .sonic-slider {
|
|
87
103
|
cursor: default;
|
|
88
104
|
}
|
|
@@ -92,11 +108,12 @@
|
|
|
92
108
|
var(--_sonic-slider-travel) / (var(--_sonic-slider-positions, 2) - 1)
|
|
93
109
|
);
|
|
94
110
|
--_sonic-slider-mark-lip: calc(
|
|
95
|
-
var(--_sonic-slider-groove) / 2 + var(--_sonic-slider-
|
|
111
|
+
var(--_sonic-slider-groove) / 2 + var(--_sonic-slider-track) * 0.1
|
|
96
112
|
);
|
|
97
113
|
|
|
98
114
|
position: absolute;
|
|
99
|
-
inset:
|
|
115
|
+
inset: var(--_sonic-slider-scale-band) calc((var(--_sonic-slider-cap) - var(--_sonic-unit)) / 2)
|
|
116
|
+
0;
|
|
100
117
|
background: repeating-linear-gradient(
|
|
101
118
|
var(--_sonic-slider-toward),
|
|
102
119
|
var(--_sonic-etch) 0 var(--_sonic-unit),
|
|
@@ -113,43 +130,80 @@
|
|
|
113
130
|
}
|
|
114
131
|
|
|
115
132
|
[orientation='vertical'] > .sonic-slider > .sonic-slider-marks {
|
|
116
|
-
inset: calc((var(--_sonic-slider-cap) - var(--_sonic-unit)) / 2) 0
|
|
133
|
+
inset: calc((var(--_sonic-slider-cap) - var(--_sonic-unit)) / 2) 0
|
|
134
|
+
calc((var(--_sonic-slider-cap) - var(--_sonic-unit)) / 2) var(--_sonic-slider-scale-band);
|
|
117
135
|
}
|
|
118
136
|
|
|
119
137
|
:not([notched]) > .sonic-slider > .sonic-slider-marks {
|
|
120
138
|
display: none;
|
|
121
139
|
}
|
|
122
140
|
|
|
141
|
+
.sonic-slider-scale {
|
|
142
|
+
font-size: calc(var(--_sonic-slider-size) * var(--_sonic-slider-scale-font-ratio));
|
|
143
|
+
|
|
144
|
+
& > * {
|
|
145
|
+
--_sonic-slider-scale-along: calc(
|
|
146
|
+
var(--_sonic-slider-cap) / 2 + var(--_sonic-scale-at, 0) * var(--_sonic-slider-travel)
|
|
147
|
+
);
|
|
148
|
+
--_sonic-slider-scale-edge: calc(100% - var(--_sonic-slider-scale-band) + var(--_sonic-unit));
|
|
149
|
+
|
|
150
|
+
inset: auto auto var(--_sonic-slider-scale-edge) var(--_sonic-slider-scale-along);
|
|
151
|
+
translate: -50% 0;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
& > .sonic-scale-tick {
|
|
155
|
+
inline-size: var(--_sonic-unit);
|
|
156
|
+
block-size: calc(var(--_sonic-slider-scale-band) * 0.4);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
[orientation='vertical'] > .sonic-slider > .sonic-slider-scale {
|
|
161
|
+
& > * {
|
|
162
|
+
inset: auto var(--_sonic-slider-scale-edge) var(--_sonic-slider-scale-along) auto;
|
|
163
|
+
translate: 0 50%;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
& > .sonic-scale-tick {
|
|
167
|
+
inline-size: calc(var(--_sonic-slider-scale-band) * 0.4);
|
|
168
|
+
block-size: var(--_sonic-unit);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
123
172
|
.sonic-slider-groove {
|
|
124
173
|
--_sonic-slider-lit-low: min(var(--_sonic-slider-origin, 0), var(--_sonic-slider-value, 0));
|
|
125
174
|
--_sonic-slider-lit-high: max(var(--_sonic-slider-origin, 0), var(--_sonic-slider-value, 0));
|
|
126
175
|
|
|
127
176
|
position: absolute;
|
|
128
|
-
inset: calc(50% - var(--_sonic-slider-groove) / 2)
|
|
129
|
-
calc((var(--_sonic-slider-cap) - var(--_sonic-slider-groove)) / 2)
|
|
177
|
+
inset: calc(50% + var(--_sonic-slider-scale-band) / 2 - var(--_sonic-slider-groove) / 2)
|
|
178
|
+
calc((var(--_sonic-slider-cap) - var(--_sonic-slider-groove)) / 2)
|
|
179
|
+
calc(50% - var(--_sonic-slider-scale-band) / 2 - var(--_sonic-slider-groove) / 2);
|
|
130
180
|
|
|
131
181
|
/* At either end of the travel the light runs on to the groove's rounded end */
|
|
132
|
-
background:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
var(--_sonic-slider-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
182
|
+
background:
|
|
183
|
+
linear-gradient(
|
|
184
|
+
var(--_sonic-slider-toward),
|
|
185
|
+
transparent
|
|
186
|
+
calc(
|
|
187
|
+
var(--_sonic-slider-lit-low) * var(--_sonic-slider-travel) +
|
|
188
|
+
var(--_sonic-slider-groove) / 2 * sign(var(--_sonic-slider-lit-low))
|
|
189
|
+
),
|
|
190
|
+
var(--_sonic-slider-lit) 0
|
|
191
|
+
calc(
|
|
192
|
+
var(--_sonic-slider-lit-high) * var(--_sonic-slider-travel) +
|
|
193
|
+
var(--_sonic-slider-groove) / 2 * (2 - sign(1 - var(--_sonic-slider-lit-high)))
|
|
194
|
+
),
|
|
195
|
+
transparent 0
|
|
196
|
+
),
|
|
197
|
+
var(--_sonic-slider-buffered-ranges, none), var(--_sonic-unlit);
|
|
146
198
|
border-radius: calc(var(--_sonic-slider-groove) / 2);
|
|
147
199
|
box-shadow: var(--_sonic-groove);
|
|
148
200
|
}
|
|
149
201
|
|
|
150
202
|
[orientation='vertical'] > .sonic-slider > .sonic-slider-groove {
|
|
151
203
|
inset: calc((var(--_sonic-slider-cap) - var(--_sonic-slider-groove)) / 2)
|
|
152
|
-
calc(50% - var(--_sonic-slider-groove) / 2)
|
|
204
|
+
calc(50% - var(--_sonic-slider-scale-band) / 2 - var(--_sonic-slider-groove) / 2)
|
|
205
|
+
calc((var(--_sonic-slider-cap) - var(--_sonic-slider-groove)) / 2)
|
|
206
|
+
calc(50% + var(--_sonic-slider-scale-band) / 2 - var(--_sonic-slider-groove) / 2);
|
|
153
207
|
}
|
|
154
208
|
|
|
155
209
|
.sonic-slider-modulation {
|
|
@@ -168,8 +222,10 @@
|
|
|
168
222
|
);
|
|
169
223
|
|
|
170
224
|
position: absolute;
|
|
171
|
-
inset: calc(
|
|
172
|
-
|
|
225
|
+
inset: calc(
|
|
226
|
+
50% + var(--_sonic-slider-scale-band) / 2 - var(--_sonic-slider-modulation-band) / 2
|
|
227
|
+
)
|
|
228
|
+
auto auto var(--_sonic-slider-modulation-start);
|
|
173
229
|
inline-size: var(--_sonic-slider-modulation-length);
|
|
174
230
|
block-size: var(--_sonic-slider-modulation-band);
|
|
175
231
|
background: var(--_sonic-slider-modulation);
|
|
@@ -178,7 +234,7 @@
|
|
|
178
234
|
|
|
179
235
|
[orientation='vertical'] > .sonic-slider > .sonic-slider-modulation {
|
|
180
236
|
inset: auto auto var(--_sonic-slider-modulation-start)
|
|
181
|
-
calc(50% - var(--_sonic-slider-modulation-band) / 2);
|
|
237
|
+
calc(50% + var(--_sonic-slider-scale-band) / 2 - var(--_sonic-slider-modulation-band) / 2);
|
|
182
238
|
inline-size: var(--_sonic-slider-modulation-band);
|
|
183
239
|
block-size: var(--_sonic-slider-modulation-length);
|
|
184
240
|
}
|
|
@@ -189,14 +245,16 @@
|
|
|
189
245
|
|
|
190
246
|
.sonic-slider-cap {
|
|
191
247
|
--_sonic-slider-pointer-width: calc(
|
|
192
|
-
var(--_sonic-slider-
|
|
248
|
+
var(--_sonic-slider-track) * var(--_sonic-slider-pointer-ratio)
|
|
249
|
+
);
|
|
250
|
+
--_sonic-slider-bevel: calc(var(--_sonic-slider-track) * var(--_sonic-slider-bevel-ratio));
|
|
251
|
+
--_sonic-slider-corner: calc(var(--_sonic-slider-track) * var(--_sonic-slider-radius-ratio));
|
|
252
|
+
--_sonic-slider-index-inset: calc(
|
|
253
|
+
var(--_sonic-slider-bevel) + var(--_sonic-slider-track) * 0.1
|
|
193
254
|
);
|
|
194
|
-
--_sonic-slider-bevel: calc(var(--_sonic-slider-size) * var(--_sonic-slider-bevel-ratio));
|
|
195
|
-
--_sonic-slider-corner: calc(var(--_sonic-slider-size) * var(--_sonic-slider-radius-ratio));
|
|
196
|
-
--_sonic-slider-index-inset: calc(var(--_sonic-slider-bevel) + var(--_sonic-slider-size) * 0.1);
|
|
197
255
|
|
|
198
256
|
position: absolute;
|
|
199
|
-
inset:
|
|
257
|
+
inset: var(--_sonic-slider-scale-band) auto 0 0;
|
|
200
258
|
inline-size: var(--_sonic-slider-cap);
|
|
201
259
|
background: var(--_sonic-skirt);
|
|
202
260
|
border-radius: var(--_sonic-slider-corner);
|
|
@@ -230,7 +288,7 @@
|
|
|
230
288
|
}
|
|
231
289
|
|
|
232
290
|
[orientation='vertical'] > .sonic-slider > .sonic-slider-cap {
|
|
233
|
-
inset: auto 0 0;
|
|
291
|
+
inset: auto 0 0 var(--_sonic-slider-scale-band);
|
|
234
292
|
inline-size: auto;
|
|
235
293
|
block-size: var(--_sonic-slider-cap);
|
|
236
294
|
translate: 0 calc(-1 * var(--_sonic-slider-offset));
|
|
@@ -257,6 +315,10 @@
|
|
|
257
315
|
--_sonic-slider-modulation: CanvasText;
|
|
258
316
|
}
|
|
259
317
|
|
|
318
|
+
.sonic-slider {
|
|
319
|
+
--_sonic-slider-buffered: color-mix(in srgb, CanvasText 50%, GrayText);
|
|
320
|
+
}
|
|
321
|
+
|
|
260
322
|
.sonic-slider-groove {
|
|
261
323
|
box-shadow: none;
|
|
262
324
|
}
|