@xsynaptic/sonic-ui 0.5.0 → 0.6.1
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/README.md +3 -1
- package/dist/default/dat.js +5 -4
- package/dist/default/define/button.js +1 -1
- package/dist/default/define.js +2 -2
- package/dist/default/elements/button.js +6 -5
- package/dist/default/elements/dial.js +5 -1
- package/dist/default/elements/envelope.js +46 -18
- package/dist/default/elements/meter.js +12 -8
- package/dist/default/elements/number.js +1 -1
- package/dist/default/elements/radio-group.js +46 -47
- package/dist/default/elements/readout-claim.js +0 -29
- package/dist/default/elements/readout.js +1 -1
- package/dist/default/elements/scale.js +43 -0
- package/dist/default/elements/slider.js +16 -3
- package/dist/default/elements/sonic-element.js +17 -55
- package/dist/default/elements/switch.js +33 -39
- package/dist/default/elements/value-element.js +142 -187
- package/dist/default/elements/wave-element.js +5 -2
- package/dist/default/elements/waveform.js +35 -12
- package/dist/default/elements/wavestrip.js +59 -18
- package/dist/default/elements/xy.js +34 -19
- package/dist/default/index.js +2 -2
- package/dist/default/lib/adsr-shape.js +5 -0
- package/dist/default/lib/ballistics.js +2 -2
- package/dist/default/lib/canvas-surface.js +13 -2
- package/dist/default/lib/distribute.js +1 -1
- package/dist/default/lib/drag-step.js +4 -4
- package/dist/default/lib/frame-timeline.js +2 -1
- package/dist/default/lib/marker-band.js +54 -10
- package/dist/default/lib/marker-rider.js +10 -4
- package/dist/default/lib/math.js +6 -1
- package/dist/default/lib/mirror-children.js +64 -0
- package/dist/default/lib/owned-control.js +10 -0
- package/dist/default/lib/pointer-drag.js +8 -5
- package/dist/default/lib/resample-peaks.js +11 -1
- package/dist/default/lib/time-regions.js +4 -1
- package/dist/default/lib/write-attribute.js +1 -0
- package/dist/dev/dat.d.ts +2 -2
- package/dist/dev/dat.js +5 -4
- package/dist/dev/dat.js.map +1 -1
- package/dist/dev/define/button.js +1 -1
- package/dist/dev/define.d.ts +4 -4
- package/dist/dev/define.js +2 -2
- package/dist/dev/elements/button.js +6 -5
- package/dist/dev/elements/button.js.map +1 -1
- package/dist/dev/elements/dial.d.ts +1 -1
- package/dist/dev/elements/dial.js +5 -1
- package/dist/dev/elements/dial.js.map +1 -1
- package/dist/dev/elements/envelope.js +46 -18
- package/dist/dev/elements/envelope.js.map +1 -1
- package/dist/dev/elements/meter.d.ts +1 -1
- package/dist/dev/elements/meter.js +12 -8
- package/dist/dev/elements/meter.js.map +1 -1
- package/dist/dev/elements/number.js +1 -1
- package/dist/dev/elements/number.js.map +1 -1
- package/dist/dev/elements/radio-group.js +46 -47
- package/dist/dev/elements/radio-group.js.map +1 -1
- package/dist/dev/elements/readout-claim.js +0 -29
- package/dist/dev/elements/readout-claim.js.map +1 -1
- package/dist/dev/elements/readout.js +1 -1
- package/dist/dev/elements/readout.js.map +1 -1
- package/dist/dev/elements/scale.js +44 -0
- package/dist/dev/elements/scale.js.map +1 -0
- package/dist/dev/elements/slider.d.ts +4 -1
- package/dist/dev/elements/slider.js +16 -3
- package/dist/dev/elements/slider.js.map +1 -1
- package/dist/dev/elements/sonic-element.d.ts +2 -8
- package/dist/dev/elements/sonic-element.js +18 -55
- package/dist/dev/elements/sonic-element.js.map +1 -1
- package/dist/dev/elements/switch.js +33 -39
- package/dist/dev/elements/switch.js.map +1 -1
- package/dist/dev/elements/value-element.d.ts +6 -8
- package/dist/dev/elements/value-element.js +142 -187
- package/dist/dev/elements/value-element.js.map +1 -1
- package/dist/dev/elements/wave-element.d.ts +1 -0
- package/dist/dev/elements/wave-element.js +5 -2
- package/dist/dev/elements/wave-element.js.map +1 -1
- package/dist/dev/elements/waveform.d.ts +1 -1
- package/dist/dev/elements/waveform.js +35 -12
- package/dist/dev/elements/waveform.js.map +1 -1
- package/dist/dev/elements/wavestrip.d.ts +4 -0
- package/dist/dev/elements/wavestrip.js +59 -18
- package/dist/dev/elements/wavestrip.js.map +1 -1
- package/dist/dev/elements/xy.d.ts +3 -3
- package/dist/dev/elements/xy.js +34 -19
- package/dist/dev/elements/xy.js.map +1 -1
- package/dist/dev/index.d.ts +2 -2
- package/dist/dev/index.js +2 -2
- package/dist/dev/lib/adsr-shape.js +5 -0
- package/dist/dev/lib/adsr-shape.js.map +1 -1
- package/dist/dev/lib/ballistics.js +2 -2
- package/dist/dev/lib/ballistics.js.map +1 -1
- package/dist/dev/lib/canvas-surface.d.ts +1 -0
- package/dist/dev/lib/canvas-surface.js +13 -2
- package/dist/dev/lib/canvas-surface.js.map +1 -1
- package/dist/dev/lib/distribute.js +1 -1
- package/dist/dev/lib/distribute.js.map +1 -1
- package/dist/dev/lib/drag-step.js +4 -4
- package/dist/dev/lib/drag-step.js.map +1 -1
- package/dist/dev/lib/frame-timeline.js +2 -1
- package/dist/dev/lib/frame-timeline.js.map +1 -1
- package/dist/dev/lib/marker-band.js +54 -10
- package/dist/dev/lib/marker-band.js.map +1 -1
- package/dist/dev/lib/marker-rider.js +10 -4
- package/dist/dev/lib/marker-rider.js.map +1 -1
- package/dist/dev/lib/math.js +6 -1
- package/dist/dev/lib/math.js.map +1 -1
- package/dist/dev/lib/mirror-children.js +80 -0
- package/dist/dev/lib/mirror-children.js.map +1 -0
- package/dist/dev/lib/owned-control.js +23 -0
- package/dist/dev/lib/owned-control.js.map +1 -0
- package/dist/dev/lib/pointer-drag.js +8 -5
- package/dist/dev/lib/pointer-drag.js.map +1 -1
- package/dist/dev/lib/resample-peaks.js +11 -1
- package/dist/dev/lib/resample-peaks.js.map +1 -1
- package/dist/dev/lib/time-regions.js +4 -1
- package/dist/dev/lib/time-regions.js.map +1 -1
- package/dist/dev/lib/write-attribute.js +1 -0
- package/dist/dev/lib/write-attribute.js.map +1 -1
- package/dist/skins/amber.css +8 -0
- package/dist/skins/flat.css +26 -0
- package/dist/skins/ivory.css +1 -0
- package/dist/skins/lime.css +2 -0
- package/dist/skins/slate.css +2 -0
- package/dist/styles/button.css +59 -10
- package/dist/styles/dial.css +24 -16
- package/dist/styles/envelope.css +58 -13
- package/dist/styles/led.css +20 -4
- package/dist/styles/material.css +143 -55
- package/dist/styles/meter.css +8 -4
- package/dist/styles/panel.css +7 -4
- package/dist/styles/segmented.css +27 -5
- package/dist/styles/slider.css +2 -1
- package/dist/styles/switch.css +65 -23
- package/dist/styles/waveform.css +28 -5
- package/dist/styles/wavestrip.css +23 -6
- package/dist/styles/xy.css +48 -27
- package/package.json +2 -5
package/dist/styles/switch.css
CHANGED
|
@@ -34,8 +34,17 @@
|
|
|
34
34
|
--_sonic-switch-along-x: 0;
|
|
35
35
|
--_sonic-switch-along-y: 1;
|
|
36
36
|
--_sonic-switch-pan: pan-x;
|
|
37
|
-
--_sonic-switch-
|
|
38
|
-
--_sonic-switch-metal
|
|
37
|
+
--_sonic-switch-cap: var(--sonic-cap, var(--_sonic-ink));
|
|
38
|
+
--_sonic-switch-metal: color-mix(
|
|
39
|
+
in oklab,
|
|
40
|
+
var(--_sonic-switch-cap) calc(100% - 55% * var(--_sonic-relief)),
|
|
41
|
+
#fff
|
|
42
|
+
);
|
|
43
|
+
--_sonic-switch-metal-shade: color-mix(
|
|
44
|
+
in oklab,
|
|
45
|
+
var(--_sonic-switch-cap) calc(100% - 20% * var(--_sonic-relief)),
|
|
46
|
+
#000
|
|
47
|
+
);
|
|
39
48
|
|
|
40
49
|
display: inline-grid;
|
|
41
50
|
flex-shrink: 0;
|
|
@@ -56,6 +65,7 @@
|
|
|
56
65
|
}
|
|
57
66
|
|
|
58
67
|
.sonic-switch-position {
|
|
68
|
+
position: relative;
|
|
59
69
|
display: grid;
|
|
60
70
|
place-items: center;
|
|
61
71
|
place-self: stretch;
|
|
@@ -84,6 +94,17 @@
|
|
|
84
94
|
}
|
|
85
95
|
}
|
|
86
96
|
|
|
97
|
+
.sonic-switch[data-sonic-position-count] > .sonic-switch-position::after {
|
|
98
|
+
inset-block: 0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
[orientation='horizontal']
|
|
102
|
+
> .sonic-switch[data-sonic-position-count]
|
|
103
|
+
> .sonic-switch-position::after {
|
|
104
|
+
inset-block: var(--_sonic-target-outset);
|
|
105
|
+
inset-inline: 0;
|
|
106
|
+
}
|
|
107
|
+
|
|
87
108
|
.sonic-switch-label {
|
|
88
109
|
padding: calc(var(--_sonic-switch-size) * 0.12);
|
|
89
110
|
white-space: nowrap;
|
|
@@ -200,20 +221,37 @@
|
|
|
200
221
|
}
|
|
201
222
|
|
|
202
223
|
.sonic-switch-bushing {
|
|
224
|
+
--_sonic-switch-bushing-shade: color-mix(
|
|
225
|
+
in oklab,
|
|
226
|
+
var(--_sonic-cap) calc(100% - 20% * var(--_sonic-relief)),
|
|
227
|
+
#000
|
|
228
|
+
);
|
|
229
|
+
|
|
203
230
|
inline-size: calc(var(--_sonic-switch-size) * var(--_sonic-switch-bushing-ratio));
|
|
204
231
|
aspect-ratio: 1;
|
|
205
232
|
pointer-events: none;
|
|
206
|
-
background:
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
233
|
+
background: var(
|
|
234
|
+
--sonic-well,
|
|
235
|
+
radial-gradient(
|
|
236
|
+
closest-side,
|
|
237
|
+
color-mix(in oklab, var(--_sonic-cap) calc(100% - 70% * var(--_sonic-relief)), #000) 0 42%,
|
|
238
|
+
var(--_sonic-switch-bushing-shade) 48%,
|
|
239
|
+
var(--_sonic-cap) 70%,
|
|
240
|
+
color-mix(in oklab, var(--_sonic-cap) calc(100% - 25% * var(--_sonic-relief)), #fff) 88%,
|
|
241
|
+
var(--_sonic-switch-bushing-shade)
|
|
242
|
+
)
|
|
213
243
|
);
|
|
214
244
|
border-radius: 50%;
|
|
215
245
|
box-shadow:
|
|
216
|
-
var(--_sonic-
|
|
246
|
+
0 0 0 max(1px, 0.75 * var(--_sonic-unit))
|
|
247
|
+
var(
|
|
248
|
+
--sonic-cap-edge,
|
|
249
|
+
color-mix(
|
|
250
|
+
in oklab,
|
|
251
|
+
var(--_sonic-switch-cap) calc(100% - 60% * var(--_sonic-relief)),
|
|
252
|
+
#000
|
|
253
|
+
)
|
|
254
|
+
),
|
|
217
255
|
calc(1.5 * var(--_sonic-cast-x)) calc(1.5 * var(--_sonic-cast-y)) calc(2 * var(--_sonic-unit))
|
|
218
256
|
var(--_sonic-drop-shade);
|
|
219
257
|
}
|
|
@@ -226,27 +264,27 @@
|
|
|
226
264
|
background-position 90ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
227
265
|
--_sonic-switch-sheen: linear-gradient(
|
|
228
266
|
var(--_sonic-light-fall),
|
|
229
|
-
color-mix(in oklab, var(--_sonic-switch-metal)
|
|
267
|
+
color-mix(in oklab, var(--_sonic-switch-metal) calc(100% - 45% * var(--_sonic-relief)), #fff)
|
|
268
|
+
12%,
|
|
230
269
|
var(--_sonic-switch-metal) 45%,
|
|
231
270
|
var(--_sonic-switch-metal-shade) 88%
|
|
232
271
|
);
|
|
233
|
-
--_sonic-switch-outline: max(
|
|
234
|
-
--_sonic-switch-rim:
|
|
272
|
+
--_sonic-switch-outline: max(1px, 0.4 * var(--_sonic-unit));
|
|
273
|
+
--_sonic-switch-rim: var(
|
|
274
|
+
--sonic-cap-edge,
|
|
275
|
+
color-mix(in oklab, var(--_sonic-switch-cap) calc(100% - 30% * var(--_sonic-relief)), #000)
|
|
276
|
+
);
|
|
235
277
|
|
|
236
278
|
position: relative;
|
|
237
279
|
z-index: 1;
|
|
238
280
|
inline-size: var(--_sonic-switch-size);
|
|
239
281
|
block-size: var(--_sonic-switch-size);
|
|
240
282
|
pointer-events: none;
|
|
241
|
-
filter: drop-shadow(
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
calc((1 + var(--_sonic-switch-lean)) * var(--_sonic-cast-x))
|
|
247
|
-
calc((1 + var(--_sonic-switch-lean)) * var(--_sonic-cast-y))
|
|
248
|
-
calc(1.5 * var(--_sonic-unit)) var(--_sonic-drop-shade)
|
|
249
|
-
);
|
|
283
|
+
filter: drop-shadow(
|
|
284
|
+
calc((1 + var(--_sonic-switch-lean)) * var(--_sonic-cast-x))
|
|
285
|
+
calc((1 + var(--_sonic-switch-lean)) * var(--_sonic-cast-y)) calc(1.5 * var(--_sonic-unit))
|
|
286
|
+
var(--_sonic-drop-shade)
|
|
287
|
+
);
|
|
250
288
|
|
|
251
289
|
@media (prefers-reduced-motion: reduce) {
|
|
252
290
|
--_sonic-switch-transition: none;
|
|
@@ -261,6 +299,7 @@
|
|
|
261
299
|
background: var(--_sonic-switch-sheen);
|
|
262
300
|
background-size: var(--_sonic-switch-size) var(--_sonic-switch-size);
|
|
263
301
|
border-radius: 999px;
|
|
302
|
+
box-shadow: 0 0 0 var(--_sonic-switch-outline) var(--_sonic-switch-rim);
|
|
264
303
|
transition: var(--_sonic-switch-transition);
|
|
265
304
|
}
|
|
266
305
|
|
|
@@ -292,7 +331,9 @@
|
|
|
292
331
|
background-position: calc((var(--_sonic-switch-ball) - var(--_sonic-switch-size)) / 2)
|
|
293
332
|
calc((var(--_sonic-switch-ball) - var(--_sonic-switch-size)) / 2);
|
|
294
333
|
box-shadow:
|
|
295
|
-
inset 0 0 calc(1.5 * var(--_sonic-unit)) calc(0.4 * var(--_sonic-unit))
|
|
334
|
+
inset 0 0 calc(1.5 * var(--_sonic-unit)) calc(0.4 * var(--_sonic-unit))
|
|
335
|
+
rgb(0 0 0 / calc(0.3 * var(--_sonic-relief))),
|
|
336
|
+
0 0 0 var(--_sonic-switch-outline) var(--_sonic-switch-rim),
|
|
296
337
|
var(--_sonic-focus-shadow);
|
|
297
338
|
translate: calc(
|
|
298
339
|
var(--_sonic-switch-along-x) * var(--_sonic-switch-at, 0) * var(--_sonic-switch-reach)
|
|
@@ -306,6 +347,7 @@
|
|
|
306
347
|
}
|
|
307
348
|
|
|
308
349
|
.sonic-switch:has(> .sonic-switch-position:disabled) {
|
|
350
|
+
--_sonic-switch-cap: var(--sonic-cap, var(--_sonic-etch));
|
|
309
351
|
--_sonic-switch-metal: var(--_sonic-etch);
|
|
310
352
|
--_sonic-switch-metal-shade: var(--_sonic-etch);
|
|
311
353
|
}
|
package/dist/styles/waveform.css
CHANGED
|
@@ -65,12 +65,17 @@
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
.sonic-waveform {
|
|
68
|
-
--_sonic-waveform-inset: calc(
|
|
68
|
+
--_sonic-waveform-inset: calc(
|
|
69
|
+
var(--_sonic-waveform-size) * var(--sonic-waveform-inset-ratio, 0.06)
|
|
70
|
+
);
|
|
69
71
|
--_sonic-unit: calc(var(--_sonic-waveform-size) / 48);
|
|
70
72
|
--_sonic-waveform-line: max(1px, var(--_sonic-unit));
|
|
71
73
|
--_sonic-waveform-lit: var(--_sonic-lit);
|
|
72
74
|
--_sonic-waveform-wave: var(--_sonic-waveform-lit);
|
|
73
|
-
--_sonic-waveform-wave-edge:
|
|
75
|
+
--_sonic-waveform-wave-edge: var(
|
|
76
|
+
--sonic-waveform-edge,
|
|
77
|
+
color-mix(in oklab, var(--_sonic-waveform-lit) 45%, #000)
|
|
78
|
+
);
|
|
74
79
|
--_sonic-waveform-grid: var(--_sonic-etch);
|
|
75
80
|
--_sonic-waveform-hatch: var(--_sonic-etch);
|
|
76
81
|
--_sonic-waveform-marker: var(--sonic-marker, var(--_sonic-ink));
|
|
@@ -87,7 +92,12 @@
|
|
|
87
92
|
overflow: hidden;
|
|
88
93
|
touch-action: pan-y;
|
|
89
94
|
cursor: grab;
|
|
90
|
-
|
|
95
|
+
|
|
96
|
+
--_sonic-glass-radius: calc(
|
|
97
|
+
var(--_sonic-waveform-size) * var(--sonic-waveform-radius-ratio, 0.08)
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
border-radius: var(--_sonic-glass-radius);
|
|
91
101
|
box-shadow: var(--_sonic-focus-shadow);
|
|
92
102
|
}
|
|
93
103
|
|
|
@@ -134,13 +144,18 @@
|
|
|
134
144
|
inset-inline-start: var(--_sonic-waveform-inset);
|
|
135
145
|
font-size: calc(var(--_sonic-waveform-size) * var(--sonic-waveform-label-font-ratio, 0.13));
|
|
136
146
|
line-height: 1;
|
|
137
|
-
color: var(--_sonic-waveform-marker);
|
|
147
|
+
color: var(--_sonic-marker, var(--_sonic-waveform-marker));
|
|
138
148
|
white-space: nowrap;
|
|
149
|
+
text-shadow: var(--sonic-waveform-label-shadow, none);
|
|
139
150
|
pointer-events: none;
|
|
140
151
|
}
|
|
141
152
|
|
|
142
153
|
.sonic-waveform-label[data-sonic-dimmed] {
|
|
143
|
-
color: color-mix(
|
|
154
|
+
color: color-mix(
|
|
155
|
+
in oklab,
|
|
156
|
+
var(--_sonic-marker, var(--_sonic-waveform-marker)) 50%,
|
|
157
|
+
transparent
|
|
158
|
+
);
|
|
144
159
|
}
|
|
145
160
|
|
|
146
161
|
/* Opaque, since a system highlight carries alpha that would blend the wave into the glass */
|
|
@@ -162,6 +177,14 @@
|
|
|
162
177
|
forced-color-adjust: none;
|
|
163
178
|
}
|
|
164
179
|
|
|
180
|
+
.sonic-waveform-label {
|
|
181
|
+
color: CanvasText;
|
|
182
|
+
|
|
183
|
+
&[data-sonic-dimmed] {
|
|
184
|
+
color: GrayText;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
165
188
|
.sonic-waveform-playhead {
|
|
166
189
|
background: CanvasText;
|
|
167
190
|
}
|
|
@@ -58,6 +58,12 @@
|
|
|
58
58
|
initial-value: 0;
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
@property --_sonic-marker-step {
|
|
62
|
+
syntax: '<length>';
|
|
63
|
+
inherits: true;
|
|
64
|
+
initial-value: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
61
67
|
@property --_sonic-cancel-zone {
|
|
62
68
|
syntax: '<length>';
|
|
63
69
|
inherits: true;
|
|
@@ -88,10 +94,14 @@
|
|
|
88
94
|
--_sonic-wavestrip-bar-gap-ratio: var(--sonic-wavestrip-bar-gap-ratio, 0.33);
|
|
89
95
|
--_sonic-wavestrip-bar-radius-ratio: var(--sonic-wavestrip-bar-radius-ratio, 0.5);
|
|
90
96
|
--_sonic-wavestrip-marker-ratio: var(--sonic-wavestrip-marker-ratio, 0.065);
|
|
91
|
-
--_sonic-wavestrip-inset: calc(
|
|
97
|
+
--_sonic-wavestrip-inset: calc(
|
|
98
|
+
var(--_sonic-wavestrip-size) * var(--sonic-wavestrip-inset-ratio, 0.1)
|
|
99
|
+
);
|
|
92
100
|
--_sonic-unit: calc(var(--_sonic-wavestrip-size) / 32);
|
|
93
101
|
--_sonic-wavestrip-lit: var(--_sonic-lit);
|
|
94
102
|
--_sonic-marker-size: calc(var(--_sonic-wavestrip-size) * var(--_sonic-wavestrip-marker-ratio));
|
|
103
|
+
--_sonic-marker-ring: max(1px, 0.5 * var(--_sonic-unit));
|
|
104
|
+
--_sonic-marker-step: calc(var(--_sonic-marker-size) + var(--_sonic-marker-ring));
|
|
95
105
|
--_sonic-marker-default: var(--sonic-marker, var(--_sonic-ink));
|
|
96
106
|
--_sonic-wavestrip-wave: var(
|
|
97
107
|
--sonic-wave,
|
|
@@ -110,7 +120,12 @@
|
|
|
110
120
|
container-type: size;
|
|
111
121
|
touch-action: pan-y;
|
|
112
122
|
cursor: ew-resize;
|
|
113
|
-
|
|
123
|
+
|
|
124
|
+
--_sonic-glass-radius: calc(
|
|
125
|
+
var(--_sonic-wavestrip-size) * var(--sonic-wavestrip-radius-ratio, 0.15)
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
border-radius: var(--_sonic-glass-radius);
|
|
114
129
|
box-shadow: var(--_sonic-focus-shadow);
|
|
115
130
|
}
|
|
116
131
|
|
|
@@ -151,16 +166,18 @@
|
|
|
151
166
|
}
|
|
152
167
|
|
|
153
168
|
.sonic-wavestrip-marker {
|
|
154
|
-
inset:
|
|
169
|
+
inset: calc(var(--_sonic-marker-lane, 0) * var(--_sonic-marker-step)) auto auto
|
|
170
|
+
calc(var(--_sonic-marker-from, 0) * 100% - var(--_sonic-marker-size) / 2);
|
|
155
171
|
inline-size: var(--_sonic-marker-size);
|
|
156
172
|
block-size: var(--_sonic-marker-size);
|
|
157
173
|
background: color-mix(in oklab, var(--_sonic-marker-colour) 85%, transparent);
|
|
158
174
|
border-radius: 50%;
|
|
159
|
-
box-shadow: 0 0 0
|
|
175
|
+
box-shadow: 0 0 0 var(--_sonic-marker-ring) var(--_sonic-glass);
|
|
160
176
|
}
|
|
161
177
|
|
|
162
178
|
.sonic-wavestrip-region {
|
|
163
|
-
inset:
|
|
179
|
+
inset: calc(-1 * var(--_sonic-wavestrip-inset)) auto calc(-1 * var(--_sonic-wavestrip-inset))
|
|
180
|
+
calc(var(--_sonic-marker-from, 0) * 100%);
|
|
164
181
|
box-sizing: border-box;
|
|
165
182
|
inline-size: calc((var(--_sonic-marker-to, 0) - var(--_sonic-marker-from, 0)) * 100%);
|
|
166
183
|
background: color-mix(in oklab, var(--_sonic-marker-colour) 16%, transparent);
|
|
@@ -204,7 +221,7 @@
|
|
|
204
221
|
|
|
205
222
|
.sonic-wavestrip-marker {
|
|
206
223
|
background: var(--_sonic-marker-colour);
|
|
207
|
-
box-shadow: 0 0 0
|
|
224
|
+
box-shadow: 0 0 0 var(--_sonic-marker-ring) Canvas;
|
|
208
225
|
}
|
|
209
226
|
|
|
210
227
|
.sonic-wavestrip-region {
|
package/dist/styles/xy.css
CHANGED
|
@@ -38,7 +38,10 @@
|
|
|
38
38
|
container-type: size;
|
|
39
39
|
touch-action: none;
|
|
40
40
|
cursor: crosshair;
|
|
41
|
-
|
|
41
|
+
|
|
42
|
+
--_sonic-glass-radius: calc(var(--_sonic-xy-size) * var(--_sonic-xy-radius-ratio));
|
|
43
|
+
|
|
44
|
+
border-radius: var(--_sonic-glass-radius);
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
:disabled > .sonic-xy {
|
|
@@ -116,52 +119,68 @@
|
|
|
116
119
|
}
|
|
117
120
|
}
|
|
118
121
|
|
|
119
|
-
.sonic-xy-puck {
|
|
120
|
-
--_sonic-xy-star: var(--_sonic-xy-lit);
|
|
121
|
-
--_sonic-xy-star-lift: color-mix(in oklab, var(--_sonic-xy-lit) 85%, #fff);
|
|
122
|
-
--_sonic-xy-star-glow: transparent;
|
|
123
|
-
|
|
122
|
+
:is(.sonic-xy-bracket, .sonic-xy-puck) {
|
|
124
123
|
position: absolute;
|
|
125
124
|
inset: auto auto
|
|
126
125
|
calc(var(--_sonic-xy-inset) + var(--_sonic-xy-y, 0) * var(--_sonic-xy-travel-y))
|
|
127
126
|
calc(var(--_sonic-xy-inset) + var(--_sonic-xy-x, 0) * var(--_sonic-xy-travel-x));
|
|
128
127
|
inline-size: var(--_sonic-xy-puck);
|
|
129
128
|
block-size: var(--_sonic-xy-puck);
|
|
130
|
-
cursor: var(--_sonic-xy-cursor);
|
|
131
129
|
border-radius: 50%;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.sonic-xy-bracket {
|
|
133
|
+
--_sonic-bracket-size: var(--_sonic-xy-puck);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.sonic-xy-puck {
|
|
137
|
+
--_sonic-xy-puck-fill: var(--_sonic-xy-lit);
|
|
138
|
+
--_sonic-xy-puck-edge: var(--_sonic-xy-puck-fill);
|
|
139
|
+
--_sonic-xy-puck-lift: color-mix(in oklab, var(--_sonic-xy-lit) 85%, #fff);
|
|
140
|
+
--_sonic-xy-puck-glow: transparent;
|
|
141
|
+
--_sonic-xy-puck-ring: 0 0 transparent;
|
|
142
|
+
|
|
143
|
+
cursor: var(--_sonic-xy-cursor);
|
|
144
|
+
filter: drop-shadow(0 0 calc(0.15 * var(--_sonic-xy-puck)) var(--_sonic-xy-puck-glow));
|
|
145
|
+
transition: filter 120ms ease-out;
|
|
137
146
|
|
|
138
147
|
&::before {
|
|
139
148
|
position: absolute;
|
|
140
|
-
inset:
|
|
149
|
+
inset: 25%;
|
|
141
150
|
pointer-events: none;
|
|
142
151
|
content: '';
|
|
143
|
-
background: var(--_sonic-xy-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
152
|
+
background: var(--_sonic-xy-puck-fill);
|
|
153
|
+
border: max(1px, 0.08 * var(--_sonic-xy-puck)) solid var(--_sonic-xy-puck-edge);
|
|
154
|
+
border-radius: 50%;
|
|
155
|
+
box-shadow: var(--_sonic-xy-puck-ring);
|
|
156
|
+
transition:
|
|
157
|
+
background-color 120ms ease-out,
|
|
158
|
+
border-color 120ms ease-out,
|
|
159
|
+
box-shadow 120ms ease-out;
|
|
147
160
|
}
|
|
148
161
|
}
|
|
149
162
|
|
|
150
163
|
@media (hover: hover) {
|
|
151
|
-
:not(:disabled) > .sonic-xy > .sonic-xy-puck:hover {
|
|
152
|
-
--_sonic-xy-
|
|
164
|
+
:not(:disabled, :state(dragging)) > .sonic-xy > .sonic-xy-puck:hover {
|
|
165
|
+
--_sonic-xy-puck-fill: var(--_sonic-xy-puck-lift);
|
|
153
166
|
}
|
|
154
167
|
}
|
|
155
168
|
|
|
156
|
-
/* The glow goes on the puck, since a custom property cannot travel up from the part */
|
|
157
169
|
.sonic-xy-puck:has(> :focus-visible:not([data-sonic-pointer-focus])) {
|
|
158
|
-
--_sonic-xy-
|
|
159
|
-
--_sonic-
|
|
170
|
+
--_sonic-xy-puck-fill: var(--_sonic-xy-puck-lift);
|
|
171
|
+
--_sonic-xy-puck-ring:
|
|
172
|
+
0 0 0 max(2px, 0.08 * var(--_sonic-xy-puck)) var(--_sonic-glass),
|
|
173
|
+
0 0 0 max(4px, 0.16 * var(--_sonic-xy-puck)) var(--_sonic-focus);
|
|
160
174
|
}
|
|
161
175
|
|
|
162
176
|
:state(dragging) > .sonic-xy > .sonic-xy-puck {
|
|
163
|
-
--_sonic-xy-
|
|
164
|
-
--_sonic-xy-
|
|
177
|
+
--_sonic-xy-puck-fill: var(--_sonic-glass);
|
|
178
|
+
--_sonic-xy-puck-edge: var(--_sonic-xy-lit);
|
|
179
|
+
--_sonic-xy-puck-glow: color-mix(
|
|
180
|
+
in oklab,
|
|
181
|
+
var(--_sonic-xy-lit) calc(45% * var(--_sonic-relief)),
|
|
182
|
+
transparent
|
|
183
|
+
);
|
|
165
184
|
}
|
|
166
185
|
|
|
167
186
|
.sonic-xy-axis {
|
|
@@ -175,6 +194,7 @@
|
|
|
175
194
|
.sonic-xy {
|
|
176
195
|
--_sonic-lit: Highlight;
|
|
177
196
|
--_sonic-unlit: GrayText;
|
|
197
|
+
--_sonic-glass: Canvas;
|
|
178
198
|
}
|
|
179
199
|
|
|
180
200
|
.sonic-xy-field {
|
|
@@ -182,9 +202,10 @@
|
|
|
182
202
|
}
|
|
183
203
|
|
|
184
204
|
.sonic-xy-puck {
|
|
185
|
-
--_sonic-xy-
|
|
186
|
-
--_sonic-xy-
|
|
187
|
-
--_sonic-xy-
|
|
205
|
+
--_sonic-xy-puck-fill: CanvasText;
|
|
206
|
+
--_sonic-xy-puck-lift: CanvasText;
|
|
207
|
+
--_sonic-xy-puck-glow: transparent;
|
|
208
|
+
--_sonic-xy-puck-ring: 0 0 transparent;
|
|
188
209
|
|
|
189
210
|
forced-color-adjust: none;
|
|
190
211
|
}
|
package/package.json
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xsynaptic/sonic-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"description": "Native custom elements for audio interfaces, skinned with CSS custom properties",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"custom-elements",
|
|
7
7
|
"web-components",
|
|
8
8
|
"audio",
|
|
9
|
-
"knob",
|
|
10
9
|
"dial",
|
|
11
10
|
"slider",
|
|
12
|
-
"fader",
|
|
13
11
|
"synth"
|
|
14
12
|
],
|
|
15
13
|
"homepage": "https://github.com/xsynaptic/sonic-ui#readme",
|
|
@@ -79,13 +77,12 @@
|
|
|
79
77
|
"dist"
|
|
80
78
|
],
|
|
81
79
|
"devDependencies": {
|
|
82
|
-
"publint": "^0.3.
|
|
80
|
+
"publint": "^0.3.25",
|
|
83
81
|
"tsdown": "^0.23.0",
|
|
84
82
|
"typescript": "^6.0.3"
|
|
85
83
|
},
|
|
86
84
|
"scripts": {
|
|
87
85
|
"build": "tsdown",
|
|
88
|
-
"dev": "tsdown --watch",
|
|
89
86
|
"check-types": "tsc --noEmit"
|
|
90
87
|
}
|
|
91
88
|
}
|