@xsynaptic/sonic-ui 0.5.0 → 0.6.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/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 +3 -3
- package/dist/default/elements/envelope.js +32 -16
- package/dist/default/elements/meter.js +11 -7
- package/dist/default/elements/number.js +1 -1
- package/dist/default/elements/radio-group.js +43 -45
- package/dist/default/elements/readout.js +1 -1
- package/dist/default/elements/sonic-element.js +56 -29
- package/dist/default/elements/switch.js +32 -38
- package/dist/default/elements/value-element.js +111 -108
- package/dist/default/elements/wave-element.js +5 -2
- package/dist/default/elements/waveform.js +35 -12
- package/dist/default/elements/wavestrip.js +18 -15
- package/dist/default/elements/xy.js +32 -18
- 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/pointer-drag.js +8 -5
- package/dist/default/lib/resample-peaks.js +11 -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 +3 -3
- package/dist/dev/elements/button.js.map +1 -1
- package/dist/dev/elements/dial.d.ts +1 -1
- package/dist/dev/elements/dial.js.map +1 -1
- package/dist/dev/elements/envelope.js +32 -16
- package/dist/dev/elements/envelope.js.map +1 -1
- package/dist/dev/elements/meter.d.ts +1 -1
- package/dist/dev/elements/meter.js +11 -7
- 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 +43 -45
- package/dist/dev/elements/radio-group.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/slider.d.ts +1 -1
- package/dist/dev/elements/slider.js.map +1 -1
- package/dist/dev/elements/sonic-element.d.ts +4 -2
- package/dist/dev/elements/sonic-element.js +79 -29
- package/dist/dev/elements/sonic-element.js.map +1 -1
- package/dist/dev/elements/switch.js +32 -38
- package/dist/dev/elements/switch.js.map +1 -1
- package/dist/dev/elements/value-element.d.ts +3 -3
- package/dist/dev/elements/value-element.js +111 -108
- 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.js +18 -15
- package/dist/dev/elements/wavestrip.js.map +1 -1
- package/dist/dev/elements/xy.d.ts +3 -3
- package/dist/dev/elements/xy.js +32 -18
- 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/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/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 +25 -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 +38 -10
- package/dist/styles/dial.css +24 -16
- package/dist/styles/envelope.css +56 -11
- package/dist/styles/led.css +3 -3
- package/dist/styles/material.css +83 -41
- package/dist/styles/meter.css +8 -4
- package/dist/styles/panel.css +5 -3
- package/dist/styles/segmented.css +27 -5
- package/dist/styles/slider.css +2 -1
- package/dist/styles/switch.css +59 -20
- package/dist/styles/waveform.css +28 -5
- package/dist/styles/wavestrip.css +23 -6
- package/dist/styles/xy.css +61 -24
- package/package.json +2 -5
|
@@ -26,7 +26,10 @@
|
|
|
26
26
|
--_sonic-segmented-gap-ratio: var(--sonic-segmented-gap-ratio, 0.06);
|
|
27
27
|
--_sonic-segmented-radius-ratio: var(--sonic-segmented-radius-ratio, 0.2);
|
|
28
28
|
--_sonic-segmented-bevel-ratio: var(--sonic-segmented-bevel-ratio, 0.075);
|
|
29
|
-
--_sonic-segmented-depth-ratio: var(
|
|
29
|
+
--_sonic-segmented-depth-ratio: var(
|
|
30
|
+
--sonic-segmented-depth-ratio,
|
|
31
|
+
calc(0.03 * var(--_sonic-relief))
|
|
32
|
+
);
|
|
30
33
|
--_sonic-segmented-press-scale: var(--sonic-segmented-press-scale, 0.985);
|
|
31
34
|
--_sonic-segmented-font-ratio: var(--sonic-segmented-font-ratio, 0.34);
|
|
32
35
|
--_sonic-segmented-icon-ratio: var(--sonic-segmented-icon-ratio, 0.5);
|
|
@@ -55,6 +58,12 @@
|
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
.sonic-segmented-option {
|
|
61
|
+
--_sonic-segmented-well-lit: var(
|
|
62
|
+
--sonic-well-lit,
|
|
63
|
+
color-mix(in oklab, var(--_sonic-lit) calc(100% * var(--_sonic-relief)), transparent)
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
position: relative;
|
|
58
67
|
display: grid;
|
|
59
68
|
min-inline-size: calc(var(--_sonic-segmented-size) - 2 * var(--_sonic-segmented-gap));
|
|
60
69
|
padding: 0;
|
|
@@ -77,10 +86,10 @@
|
|
|
77
86
|
}
|
|
78
87
|
|
|
79
88
|
.sonic-segmented-option[aria-checked='true'] {
|
|
80
|
-
--_sonic-keycap-glow:
|
|
89
|
+
--_sonic-keycap-glow: var(--_sonic-keycap-lit-glow);
|
|
81
90
|
|
|
82
91
|
color: var(--_sonic-lit);
|
|
83
|
-
background: var(--_sonic-lit);
|
|
92
|
+
background: var(--_sonic-segmented-well-lit);
|
|
84
93
|
box-shadow: var(--_sonic-well);
|
|
85
94
|
}
|
|
86
95
|
|
|
@@ -105,6 +114,20 @@
|
|
|
105
114
|
}
|
|
106
115
|
}
|
|
107
116
|
|
|
117
|
+
.sonic-segmented-option[aria-checked='true']:not(:disabled):focus-visible {
|
|
118
|
+
color: var(--sonic-lit-hover, var(--_sonic-lit));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@media (hover: hover) {
|
|
122
|
+
.sonic-segmented-option[aria-checked='true']:not(:disabled):hover {
|
|
123
|
+
color: var(--sonic-lit-hover, var(--_sonic-lit));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.sonic-segmented-option::after {
|
|
128
|
+
inset-inline: 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
108
131
|
.sonic-segmented-cap {
|
|
109
132
|
--_sonic-keycap-corner: var(--_sonic-segmented-inner-corner);
|
|
110
133
|
--_sonic-keycap-bevel: calc(var(--_sonic-segmented-size) * var(--_sonic-segmented-bevel-ratio));
|
|
@@ -127,8 +150,7 @@
|
|
|
127
150
|
}
|
|
128
151
|
|
|
129
152
|
.sonic-segmented-option[aria-checked='true'] .sonic-segmented-cap > * {
|
|
130
|
-
filter: var(--_sonic-engraving)
|
|
131
|
-
drop-shadow(0 0 var(--_sonic-unit) color-mix(in oklab, var(--_sonic-lit) 35%, transparent));
|
|
153
|
+
filter: var(--_sonic-engraving) var(--_sonic-legend-glow);
|
|
132
154
|
}
|
|
133
155
|
|
|
134
156
|
@media (forced-colors: active) {
|
package/dist/styles/slider.css
CHANGED
|
@@ -403,7 +403,8 @@
|
|
|
403
403
|
calc(50% - var(--_sonic-slider-indicator-width) / 2);
|
|
404
404
|
background: var(--_sonic-ink);
|
|
405
405
|
border-radius: calc(var(--_sonic-slider-indicator-width) / 2);
|
|
406
|
-
box-shadow: inset 0 0 calc(0.75 * var(--_sonic-unit))
|
|
406
|
+
box-shadow: inset 0 0 calc(0.75 * var(--_sonic-unit))
|
|
407
|
+
rgb(0 0 0 / calc(0.55 * var(--_sonic-relief)));
|
|
407
408
|
}
|
|
408
409
|
}
|
|
409
410
|
|
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,34 @@
|
|
|
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
233
|
background: radial-gradient(
|
|
207
234
|
closest-side,
|
|
208
|
-
color-mix(in oklab, var(--_sonic-cap)
|
|
209
|
-
var(--_sonic-switch-
|
|
235
|
+
color-mix(in oklab, var(--_sonic-cap) calc(100% - 70% * var(--_sonic-relief)), #000) 0 42%,
|
|
236
|
+
var(--_sonic-switch-bushing-shade) 48%,
|
|
210
237
|
var(--_sonic-cap) 70%,
|
|
211
|
-
color-mix(in oklab, var(--_sonic-cap)
|
|
212
|
-
var(--_sonic-switch-
|
|
238
|
+
color-mix(in oklab, var(--_sonic-cap) calc(100% - 25% * var(--_sonic-relief)), #fff) 88%,
|
|
239
|
+
var(--_sonic-switch-bushing-shade)
|
|
213
240
|
);
|
|
214
241
|
border-radius: 50%;
|
|
215
242
|
box-shadow:
|
|
216
|
-
var(--_sonic-
|
|
243
|
+
0 0 0 max(1px, 0.75 * var(--_sonic-unit))
|
|
244
|
+
var(
|
|
245
|
+
--sonic-cap-edge,
|
|
246
|
+
color-mix(
|
|
247
|
+
in oklab,
|
|
248
|
+
var(--_sonic-switch-cap) calc(100% - 60% * var(--_sonic-relief)),
|
|
249
|
+
#000
|
|
250
|
+
)
|
|
251
|
+
),
|
|
217
252
|
calc(1.5 * var(--_sonic-cast-x)) calc(1.5 * var(--_sonic-cast-y)) calc(2 * var(--_sonic-unit))
|
|
218
253
|
var(--_sonic-drop-shade);
|
|
219
254
|
}
|
|
@@ -226,27 +261,27 @@
|
|
|
226
261
|
background-position 90ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
227
262
|
--_sonic-switch-sheen: linear-gradient(
|
|
228
263
|
var(--_sonic-light-fall),
|
|
229
|
-
color-mix(in oklab, var(--_sonic-switch-metal)
|
|
264
|
+
color-mix(in oklab, var(--_sonic-switch-metal) calc(100% - 45% * var(--_sonic-relief)), #fff)
|
|
265
|
+
12%,
|
|
230
266
|
var(--_sonic-switch-metal) 45%,
|
|
231
267
|
var(--_sonic-switch-metal-shade) 88%
|
|
232
268
|
);
|
|
233
|
-
--_sonic-switch-outline: max(
|
|
234
|
-
--_sonic-switch-rim:
|
|
269
|
+
--_sonic-switch-outline: max(1px, 0.4 * var(--_sonic-unit));
|
|
270
|
+
--_sonic-switch-rim: var(
|
|
271
|
+
--sonic-cap-edge,
|
|
272
|
+
color-mix(in oklab, var(--_sonic-switch-cap) calc(100% - 30% * var(--_sonic-relief)), #000)
|
|
273
|
+
);
|
|
235
274
|
|
|
236
275
|
position: relative;
|
|
237
276
|
z-index: 1;
|
|
238
277
|
inline-size: var(--_sonic-switch-size);
|
|
239
278
|
block-size: var(--_sonic-switch-size);
|
|
240
279
|
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
|
-
);
|
|
280
|
+
filter: drop-shadow(
|
|
281
|
+
calc((1 + var(--_sonic-switch-lean)) * var(--_sonic-cast-x))
|
|
282
|
+
calc((1 + var(--_sonic-switch-lean)) * var(--_sonic-cast-y)) calc(1.5 * var(--_sonic-unit))
|
|
283
|
+
var(--_sonic-drop-shade)
|
|
284
|
+
);
|
|
250
285
|
|
|
251
286
|
@media (prefers-reduced-motion: reduce) {
|
|
252
287
|
--_sonic-switch-transition: none;
|
|
@@ -261,6 +296,7 @@
|
|
|
261
296
|
background: var(--_sonic-switch-sheen);
|
|
262
297
|
background-size: var(--_sonic-switch-size) var(--_sonic-switch-size);
|
|
263
298
|
border-radius: 999px;
|
|
299
|
+
box-shadow: 0 0 0 var(--_sonic-switch-outline) var(--_sonic-switch-rim);
|
|
264
300
|
transition: var(--_sonic-switch-transition);
|
|
265
301
|
}
|
|
266
302
|
|
|
@@ -292,7 +328,9 @@
|
|
|
292
328
|
background-position: calc((var(--_sonic-switch-ball) - var(--_sonic-switch-size)) / 2)
|
|
293
329
|
calc((var(--_sonic-switch-ball) - var(--_sonic-switch-size)) / 2);
|
|
294
330
|
box-shadow:
|
|
295
|
-
inset 0 0 calc(1.5 * var(--_sonic-unit)) calc(0.4 * var(--_sonic-unit))
|
|
331
|
+
inset 0 0 calc(1.5 * var(--_sonic-unit)) calc(0.4 * var(--_sonic-unit))
|
|
332
|
+
rgb(0 0 0 / calc(0.3 * var(--_sonic-relief))),
|
|
333
|
+
0 0 0 var(--_sonic-switch-outline) var(--_sonic-switch-rim),
|
|
296
334
|
var(--_sonic-focus-shadow);
|
|
297
335
|
translate: calc(
|
|
298
336
|
var(--_sonic-switch-along-x) * var(--_sonic-switch-at, 0) * var(--_sonic-switch-reach)
|
|
@@ -306,6 +344,7 @@
|
|
|
306
344
|
}
|
|
307
345
|
|
|
308
346
|
.sonic-switch:has(> .sonic-switch-position:disabled) {
|
|
347
|
+
--_sonic-switch-cap: var(--sonic-cap, var(--_sonic-etch));
|
|
309
348
|
--_sonic-switch-metal: var(--_sonic-etch);
|
|
310
349
|
--_sonic-switch-metal-shade: var(--_sonic-etch);
|
|
311
350
|
}
|
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 {
|
|
@@ -117,9 +120,13 @@
|
|
|
117
120
|
}
|
|
118
121
|
|
|
119
122
|
.sonic-xy-puck {
|
|
120
|
-
--_sonic-xy-
|
|
121
|
-
--_sonic-xy-
|
|
122
|
-
--_sonic-xy-
|
|
123
|
+
--_sonic-xy-puck-fill: var(--_sonic-xy-lit);
|
|
124
|
+
--_sonic-xy-puck-edge: var(--_sonic-xy-puck-fill);
|
|
125
|
+
--_sonic-xy-puck-bracket: transparent;
|
|
126
|
+
--_sonic-xy-puck-bracket-scale: 0.6;
|
|
127
|
+
--_sonic-xy-puck-lift: color-mix(in oklab, var(--_sonic-xy-lit) 85%, #fff);
|
|
128
|
+
--_sonic-xy-puck-glow: transparent;
|
|
129
|
+
--_sonic-xy-puck-ring: 0 0 transparent;
|
|
123
130
|
|
|
124
131
|
position: absolute;
|
|
125
132
|
inset: auto auto
|
|
@@ -129,39 +136,67 @@
|
|
|
129
136
|
block-size: var(--_sonic-xy-puck);
|
|
130
137
|
cursor: var(--_sonic-xy-cursor);
|
|
131
138
|
border-radius: 50%;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
transition:
|
|
135
|
-
box-shadow 120ms ease-out,
|
|
136
|
-
filter 120ms ease-out;
|
|
139
|
+
filter: drop-shadow(0 0 calc(0.15 * var(--_sonic-xy-puck)) var(--_sonic-xy-puck-glow));
|
|
140
|
+
transition: filter 120ms ease-out;
|
|
137
141
|
|
|
138
142
|
&::before {
|
|
139
143
|
position: absolute;
|
|
140
|
-
inset:
|
|
144
|
+
inset: 25%;
|
|
145
|
+
pointer-events: none;
|
|
146
|
+
content: '';
|
|
147
|
+
background: var(--_sonic-xy-puck-fill);
|
|
148
|
+
border: max(1px, 0.08 * var(--_sonic-xy-puck)) solid var(--_sonic-xy-puck-edge);
|
|
149
|
+
border-radius: 50%;
|
|
150
|
+
box-shadow: var(--_sonic-xy-puck-ring);
|
|
151
|
+
transition:
|
|
152
|
+
background-color 120ms ease-out,
|
|
153
|
+
border-color 120ms ease-out,
|
|
154
|
+
box-shadow 120ms ease-out;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
&::after {
|
|
158
|
+
position: absolute;
|
|
159
|
+
inset: 4%;
|
|
141
160
|
pointer-events: none;
|
|
142
161
|
content: '';
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
162
|
+
border: max(1px, 0.08 * var(--_sonic-xy-puck)) solid var(--_sonic-xy-puck-bracket);
|
|
163
|
+
border-block-start-color: transparent;
|
|
164
|
+
border-radius: 50%;
|
|
165
|
+
rotate: 45deg;
|
|
166
|
+
scale: var(--_sonic-xy-puck-bracket-scale);
|
|
167
|
+
transition:
|
|
168
|
+
border-color 120ms ease-out,
|
|
169
|
+
scale 120ms ease-out;
|
|
147
170
|
}
|
|
148
171
|
}
|
|
149
172
|
|
|
150
173
|
@media (hover: hover) {
|
|
151
|
-
:not(:disabled) > .sonic-xy > .sonic-xy-puck:hover {
|
|
152
|
-
--_sonic-xy-
|
|
174
|
+
:not(:disabled, :state(dragging)) > .sonic-xy > .sonic-xy-puck:hover {
|
|
175
|
+
--_sonic-xy-puck-fill: var(--_sonic-xy-puck-lift);
|
|
153
176
|
}
|
|
154
177
|
}
|
|
155
178
|
|
|
156
|
-
/* The glow goes on the puck, since a custom property cannot travel up from the part */
|
|
157
179
|
.sonic-xy-puck:has(> :focus-visible:not([data-sonic-pointer-focus])) {
|
|
158
|
-
--_sonic-xy-
|
|
159
|
-
--_sonic-
|
|
180
|
+
--_sonic-xy-puck-fill: var(--_sonic-xy-puck-lift);
|
|
181
|
+
--_sonic-xy-puck-ring:
|
|
182
|
+
0 0 0 max(2px, 0.08 * var(--_sonic-xy-puck)) var(--_sonic-glass),
|
|
183
|
+
0 0 0 max(4px, 0.16 * var(--_sonic-xy-puck)) var(--_sonic-focus);
|
|
160
184
|
}
|
|
161
185
|
|
|
162
186
|
:state(dragging) > .sonic-xy > .sonic-xy-puck {
|
|
163
|
-
--_sonic-xy-
|
|
164
|
-
--_sonic-xy-
|
|
187
|
+
--_sonic-xy-puck-fill: var(--_sonic-glass);
|
|
188
|
+
--_sonic-xy-puck-edge: var(--_sonic-xy-lit);
|
|
189
|
+
--_sonic-xy-puck-glow: color-mix(
|
|
190
|
+
in oklab,
|
|
191
|
+
var(--_sonic-xy-lit) calc(45% * var(--_sonic-relief)),
|
|
192
|
+
transparent
|
|
193
|
+
);
|
|
194
|
+
--_sonic-xy-puck-bracket: color-mix(
|
|
195
|
+
in oklab,
|
|
196
|
+
var(--_sonic-xy-lit) calc(100% * (1 - var(--_sonic-relief))),
|
|
197
|
+
transparent
|
|
198
|
+
);
|
|
199
|
+
--_sonic-xy-puck-bracket-scale: 1;
|
|
165
200
|
}
|
|
166
201
|
|
|
167
202
|
.sonic-xy-axis {
|
|
@@ -175,6 +210,7 @@
|
|
|
175
210
|
.sonic-xy {
|
|
176
211
|
--_sonic-lit: Highlight;
|
|
177
212
|
--_sonic-unlit: GrayText;
|
|
213
|
+
--_sonic-glass: Canvas;
|
|
178
214
|
}
|
|
179
215
|
|
|
180
216
|
.sonic-xy-field {
|
|
@@ -182,9 +218,10 @@
|
|
|
182
218
|
}
|
|
183
219
|
|
|
184
220
|
.sonic-xy-puck {
|
|
185
|
-
--_sonic-xy-
|
|
186
|
-
--_sonic-xy-
|
|
187
|
-
--_sonic-xy-
|
|
221
|
+
--_sonic-xy-puck-fill: CanvasText;
|
|
222
|
+
--_sonic-xy-puck-lift: CanvasText;
|
|
223
|
+
--_sonic-xy-puck-glow: transparent;
|
|
224
|
+
--_sonic-xy-puck-ring: 0 0 transparent;
|
|
188
225
|
|
|
189
226
|
forced-color-adjust: none;
|
|
190
227
|
}
|
package/package.json
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xsynaptic/sonic-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
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
|
}
|