@preference-sl/pref-viewer 2.16.0-beta.1 → 2.16.0-beta.11
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/LICENSE.md +13 -0
- package/README.md +486 -0
- package/package.json +7 -7
- package/src/babylonjs-animation-opening.js +11 -5
- package/src/babylonjs-controller.js +455 -903
- package/src/file-storage.js +5 -126
- package/src/gltf-resolver.js +24 -58
- package/src/localization/translations.js +5 -17
- package/src/material-utils.js +72 -0
- package/src/pref-viewer-2d.js +14 -21
- package/src/pref-viewer-3d.js +160 -193
- package/src/pref-viewer-menu-3d.js +185 -268
- package/src/pref-viewer-task.js +7 -2
- package/src/pref-viewer.js +549 -333
- package/src/render-math.js +127 -0
- package/src/styles.js +163 -179
- package/Readme.md +0 -8
package/src/styles.js
CHANGED
|
@@ -1,25 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* localStorage key used to persist supported PrefViewer runtime style overrides.
|
|
3
|
+
* @type {string}
|
|
4
|
+
*/
|
|
5
|
+
export const PREF_VIEWER_STYLES_STORAGE_KEY = "pref-viewer/styles";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Default style variables used before host overrides or persisted values are applied.
|
|
9
|
+
* @type {{colorPrimary: string, fontFamily: string, fontSize: string}}
|
|
10
|
+
*/
|
|
11
|
+
const PrefViewerDefaultStyleVariables = {
|
|
12
|
+
colorPrimary: "#ff6700",
|
|
3
13
|
fontFamily: "'Roboto', ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji",
|
|
14
|
+
fontSize: "15px",
|
|
4
15
|
};
|
|
5
16
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Reads persisted runtime style overrides in browser contexts.
|
|
19
|
+
* Only `colorPrimary` is consumed by `PrefViewerStyleVariables`; other keys are ignored by the host component.
|
|
20
|
+
* @returns {object} Parsed persisted style overrides, or an empty object when unavailable or invalid.
|
|
21
|
+
*/
|
|
22
|
+
function readPersistedStyleVariables() {
|
|
23
|
+
if (typeof window === "undefined") {
|
|
24
|
+
return {};
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const serialized = window.localStorage?.getItem(PREF_VIEWER_STYLES_STORAGE_KEY);
|
|
28
|
+
return serialized ? JSON.parse(serialized) : {};
|
|
29
|
+
} catch (_error) {
|
|
30
|
+
return {};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** @type {object} Persisted raw style overrides loaded during module initialization. */
|
|
35
|
+
const persistedStyleVariables = readPersistedStyleVariables();
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Shared style variables consumed by PrefViewer CSS templates and Babylon defaults.
|
|
39
|
+
* `colorPrimary` can be overridden at runtime through `<pref-viewer styles>`, `viewer.styles`, `viewer.setStyles()`, or `loadConfig({ styles })`.
|
|
40
|
+
* @type {{colorPrimary: string, fontFamily: string, fontSize: string}}
|
|
41
|
+
*/
|
|
42
|
+
export const PrefViewerStyleVariables = {
|
|
43
|
+
...PrefViewerDefaultStyleVariables,
|
|
44
|
+
colorPrimary: typeof persistedStyleVariables.colorPrimary === "string" && persistedStyleVariables.colorPrimary.trim().length > 0
|
|
45
|
+
? persistedStyleVariables.colorPrimary.trim()
|
|
46
|
+
: PrefViewerDefaultStyleVariables.colorPrimary,
|
|
47
|
+
};
|
|
21
48
|
|
|
49
|
+
/** Root `<pref-viewer>` host styles. Uses `--pref-viewer-color-primary` so `setStyles({ colorPrimary })` can update mounted instances. */
|
|
22
50
|
export const PrefViewerStyles = `
|
|
51
|
+
:host {
|
|
52
|
+
all: initial;
|
|
53
|
+
display: block;
|
|
54
|
+
font-family: ${PrefViewerStyleVariables.fontFamily};
|
|
55
|
+
font-size: ${PrefViewerStyleVariables.fontSize};
|
|
56
|
+
line-height: 1.2;
|
|
57
|
+
color: #000000;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
:host *, :host *::before, :host *::after {
|
|
61
|
+
box-sizing: border-box;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
:host ::selection {
|
|
65
|
+
background: var(--pref-viewer-color-primary, ${PrefViewerStyleVariables.colorPrimary});
|
|
66
|
+
color: #ffffff;
|
|
67
|
+
}
|
|
68
|
+
|
|
23
69
|
:host .pref-viewer-wrapper {
|
|
24
70
|
display: grid !important;
|
|
25
71
|
position: relative;
|
|
@@ -66,7 +112,6 @@ export const PrefViewer2DStyles = `
|
|
|
66
112
|
display: block;
|
|
67
113
|
position: relative;
|
|
68
114
|
outline: none;
|
|
69
|
-
box-sizing: border-box;
|
|
70
115
|
}
|
|
71
116
|
|
|
72
117
|
pref-viewer-2d>div>svg {
|
|
@@ -83,9 +128,6 @@ export const PrefViewer3DStyles = `
|
|
|
83
128
|
display: none;
|
|
84
129
|
}
|
|
85
130
|
|
|
86
|
-
pref-viewer-3d[show-animation-menu="false"] > div.animation-menu {
|
|
87
|
-
display: none;
|
|
88
|
-
}
|
|
89
131
|
|
|
90
132
|
pref-viewer-3d {
|
|
91
133
|
grid-column: 1;
|
|
@@ -105,8 +147,6 @@ export const PrefViewer3DStyles = `
|
|
|
105
147
|
display: block;
|
|
106
148
|
position: relative;
|
|
107
149
|
outline: none;
|
|
108
|
-
box-sizing: border-box;
|
|
109
|
-
background: #ffffff;
|
|
110
150
|
}
|
|
111
151
|
`;
|
|
112
152
|
|
|
@@ -115,13 +155,14 @@ export const PrefViewerMenu3DStyles = `
|
|
|
115
155
|
--font-family: ${PrefViewerStyleVariables.fontFamily};
|
|
116
156
|
--font-weight-bold: 600;
|
|
117
157
|
--font-weight-medium: 500;
|
|
118
|
-
--font-size-large: 1.
|
|
119
|
-
--font-size-medium: 0.
|
|
120
|
-
--font-size-small: 0.
|
|
158
|
+
--font-size-large: calc(1.1 * ${PrefViewerStyleVariables.fontSize});
|
|
159
|
+
--font-size-medium: calc(0.95 * ${PrefViewerStyleVariables.fontSize});
|
|
160
|
+
--font-size-small: calc(0.75 * ${PrefViewerStyleVariables.fontSize});
|
|
121
161
|
--text-color: #ffffff;
|
|
122
162
|
--muted-color: #b2b2b2;
|
|
123
|
-
--accent-color: ${PrefViewerStyleVariables.colorPrimary};
|
|
124
|
-
|
|
163
|
+
--accent-color: var(--pref-viewer-color-primary, ${PrefViewerStyleVariables.colorPrimary});
|
|
164
|
+
|
|
165
|
+
--separator-border: 1px solid rgba(255, 255, 255, 0.1);
|
|
125
166
|
|
|
126
167
|
--toggle-margin: 16px;
|
|
127
168
|
--toggle-bg-color: rgba(19, 21, 28, 0.6);
|
|
@@ -137,7 +178,7 @@ export const PrefViewerMenu3DStyles = `
|
|
|
137
178
|
--button-shadow: 0 8px 16px rgba(0, 0, 0, 0.35);
|
|
138
179
|
--button-radius: 8px;
|
|
139
180
|
|
|
140
|
-
--panel-width:
|
|
181
|
+
--panel-width: 300px;
|
|
141
182
|
--panel-spacing: 16px;
|
|
142
183
|
--panel-spacing-large: calc(var(--panel-spacing) * 1.5);
|
|
143
184
|
--panel-bg-color: rgba(19, 21, 28, 0.85);
|
|
@@ -154,6 +195,13 @@ export const PrefViewerMenu3DStyles = `
|
|
|
154
195
|
--switch-control-width: calc((var(--switch-control-thumb-size) * 2) + (var(--switch-control-bar-spacing) * 2));
|
|
155
196
|
--switch-control-height: calc(var(--switch-control-thumb-size) + (var(--switch-control-bar-spacing) * 2));
|
|
156
197
|
|
|
198
|
+
--slider-thumb-size: 18px;
|
|
199
|
+
--slider-thumb-color: #ffffff;
|
|
200
|
+
--slider-thumb-border: 1px solid rgba(0, 0, 0, 0.25);
|
|
201
|
+
--slider-thumb-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
|
|
202
|
+
--slider-bar-height: 12px;
|
|
203
|
+
--slider-bar-border: 1px solid rgba(255, 255, 255, 0.5);
|
|
204
|
+
|
|
157
205
|
position: absolute;
|
|
158
206
|
top: var(--toggle-margin);
|
|
159
207
|
right: var(--toggle-margin);
|
|
@@ -223,7 +271,7 @@ export const PrefViewerMenu3DStyles = `
|
|
|
223
271
|
}
|
|
224
272
|
|
|
225
273
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-header {
|
|
226
|
-
margin-bottom: var(--panel-spacing
|
|
274
|
+
margin-bottom: var(--panel-spacing);
|
|
227
275
|
}
|
|
228
276
|
|
|
229
277
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-header>.menu-title {
|
|
@@ -250,11 +298,11 @@ export const PrefViewerMenu3DStyles = `
|
|
|
250
298
|
justify-content: space-between;
|
|
251
299
|
gap: var(--panel-spacing-large);
|
|
252
300
|
padding: var(--panel-spacing) 0;
|
|
253
|
-
border-bottom:
|
|
301
|
+
border-bottom: var(--separator-border);
|
|
254
302
|
}
|
|
255
303
|
|
|
256
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch:
|
|
257
|
-
border-
|
|
304
|
+
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch:first-child {
|
|
305
|
+
border-top: var(--separator-border);
|
|
258
306
|
}
|
|
259
307
|
|
|
260
308
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch>.menu-switch-copy {
|
|
@@ -268,18 +316,6 @@ export const PrefViewerMenu3DStyles = `
|
|
|
268
316
|
font-weight: var(--font-weight-medium);
|
|
269
317
|
}
|
|
270
318
|
|
|
271
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch .menu-switch-title::after {
|
|
272
|
-
content: " *";
|
|
273
|
-
color: var(--accent-color);
|
|
274
|
-
font-weight: var(--font-weight-bold);
|
|
275
|
-
opacity: 0;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch[data-pending] .menu-switch-title::after {
|
|
279
|
-
opacity: 1;
|
|
280
|
-
transition: opacity 0.2s ease;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
319
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch small {
|
|
284
320
|
color: var(--muted-color);
|
|
285
321
|
font-size: var(--font-size-small);
|
|
@@ -300,6 +336,10 @@ export const PrefViewerMenu3DStyles = `
|
|
|
300
336
|
cursor: pointer;
|
|
301
337
|
}
|
|
302
338
|
|
|
339
|
+
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch[data-hidden] {
|
|
340
|
+
display: none;
|
|
341
|
+
}
|
|
342
|
+
|
|
303
343
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-switches>.menu-switch[data-disabled]>.menu-switch-copy {
|
|
304
344
|
opacity: 0.6;
|
|
305
345
|
}
|
|
@@ -346,87 +386,35 @@ export const PrefViewerMenu3DStyles = `
|
|
|
346
386
|
transform: translateX(var(--switch-control-thumb-size));
|
|
347
387
|
}
|
|
348
388
|
|
|
349
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-
|
|
350
|
-
margin-top: calc(var(--panel-spacing) / 2);
|
|
351
|
-
display: flex;
|
|
352
|
-
flex-direction: column;
|
|
353
|
-
gap: calc(var(--panel-spacing) / 2);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-pending {
|
|
357
|
-
font-size: var(--font-size-small);
|
|
358
|
-
text-transform: uppercase;
|
|
359
|
-
letter-spacing: 0.08em;
|
|
360
|
-
color: var(--accent-color);
|
|
361
|
-
font-weight: var(--font-weight-medium);
|
|
362
|
-
display: block;
|
|
363
|
-
opacity: 1;
|
|
364
|
-
transition: opacity 0.2s ease;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-pending::before {
|
|
368
|
-
content: "* ";
|
|
369
|
-
font-size: var(--font-size-medium);
|
|
370
|
-
color: var(--accent-color);
|
|
371
|
-
font-weight: var(--font-weight-bold);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-pending[hidden] {
|
|
375
|
-
opacity: 0;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-status {
|
|
379
|
-
font-size: var(--font-size-small);
|
|
380
|
-
color: var(--status-color);
|
|
389
|
+
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-slider[data-hidden] {
|
|
381
390
|
display: none;
|
|
382
391
|
}
|
|
383
392
|
|
|
384
|
-
pref-viewer-menu-3d
|
|
385
|
-
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer>.menu-apply {
|
|
389
|
-
border: none;
|
|
390
|
-
border-radius: var(--button-radius);
|
|
391
|
-
padding: round(down, calc(var(--panel-spacing) * 0.625), 1px) var(--panel-spacing);
|
|
392
|
-
font-size: var(--button-font-size);
|
|
393
|
-
font-weight: var(--button-font-weight);
|
|
394
|
-
background: var(--accent-color);
|
|
395
|
-
color: var(--button-font-color);
|
|
396
|
-
cursor: pointer;
|
|
397
|
-
transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
|
|
393
|
+
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-slider[data-disabled] .menu-slider-label {
|
|
394
|
+
opacity: 0.6;
|
|
398
395
|
}
|
|
399
396
|
|
|
400
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-
|
|
401
|
-
|
|
397
|
+
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-slider[data-disabled] input[type="range"] {
|
|
398
|
+
opacity: 0.4;
|
|
402
399
|
}
|
|
403
400
|
|
|
404
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-
|
|
401
|
+
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-slider[data-disabled] input[type="range"]:disabled {
|
|
405
402
|
cursor: not-allowed;
|
|
406
|
-
opacity: 0.55;
|
|
407
403
|
}
|
|
408
404
|
|
|
409
|
-
pref-viewer-menu-3d[data-applying]>.menu-wrapper>.menu-panel>.menu-footer>.menu-apply {
|
|
410
|
-
opacity: 0.75;
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
/* Color Slider Styles */
|
|
414
405
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker {
|
|
415
406
|
display: flex;
|
|
416
407
|
flex-direction: column;
|
|
417
|
-
gap:
|
|
408
|
+
gap: calc(var(--panel-spacing) / 2);
|
|
418
409
|
padding: var(--panel-spacing) 0;
|
|
419
|
-
border-bottom:
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker:last-child {
|
|
423
|
-
border-bottom: none;
|
|
410
|
+
border-bottom: var(--separator-border);
|
|
424
411
|
}
|
|
425
412
|
|
|
426
413
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider-row {
|
|
427
414
|
display: flex;
|
|
428
415
|
align-items: center;
|
|
429
416
|
justify-content: space-between;
|
|
417
|
+
gap: calc(var(--panel-spacing) / 2);
|
|
430
418
|
}
|
|
431
419
|
|
|
432
420
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider-row>.color-picker-label {
|
|
@@ -436,10 +424,10 @@ export const PrefViewerMenu3DStyles = `
|
|
|
436
424
|
}
|
|
437
425
|
|
|
438
426
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider-row>.color-preview {
|
|
439
|
-
width:
|
|
440
|
-
|
|
441
|
-
border-radius:
|
|
442
|
-
border:
|
|
427
|
+
width: var(--switch-control-width);
|
|
428
|
+
align-self: stretch;
|
|
429
|
+
border-radius: calc(var(--slider-bar-height) / 2);
|
|
430
|
+
border: var(--slider-bar-border);
|
|
443
431
|
flex-shrink: 0;
|
|
444
432
|
}
|
|
445
433
|
|
|
@@ -447,35 +435,37 @@ export const PrefViewerMenu3DStyles = `
|
|
|
447
435
|
-webkit-appearance: none;
|
|
448
436
|
appearance: none;
|
|
449
437
|
width: 100%;
|
|
450
|
-
height:
|
|
451
|
-
border-radius:
|
|
452
|
-
cursor: pointer;
|
|
438
|
+
height: var(--slider-bar-height);
|
|
439
|
+
border-radius: calc(var(--slider-bar-height) / 2);
|
|
453
440
|
background: linear-gradient(to right,
|
|
454
441
|
hsl(0,100%,50%), hsl(30,100%,50%), hsl(60,100%,50%), hsl(90,100%,50%),
|
|
455
442
|
hsl(120,100%,50%), hsl(150,100%,50%), hsl(180,100%,50%), hsl(210,100%,50%),
|
|
456
443
|
hsl(240,100%,50%), hsl(270,100%,50%), hsl(300,100%,50%), hsl(330,100%,50%),
|
|
457
444
|
hsl(360,100%,50%));
|
|
445
|
+
border: var(--slider-bar-border);
|
|
458
446
|
outline: none;
|
|
447
|
+
margin: 0;
|
|
448
|
+
cursor: pointer;
|
|
459
449
|
}
|
|
460
450
|
|
|
461
451
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider::-webkit-slider-thumb {
|
|
462
452
|
-webkit-appearance: none;
|
|
463
|
-
width:
|
|
464
|
-
height:
|
|
453
|
+
width: var(--slider-thumb-size);
|
|
454
|
+
height: var(--slider-thumb-size);
|
|
465
455
|
border-radius: 50%;
|
|
466
|
-
background:
|
|
467
|
-
border:
|
|
468
|
-
box-shadow:
|
|
456
|
+
background: var(--slider-thumb-color);
|
|
457
|
+
border: var(--slider-thumb-border);
|
|
458
|
+
box-shadow: var(--slider-thumb-shadow);
|
|
469
459
|
cursor: pointer;
|
|
470
460
|
}
|
|
471
461
|
|
|
472
462
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-color-picker>.color-slider::-moz-range-thumb {
|
|
473
|
-
width:
|
|
474
|
-
height:
|
|
463
|
+
width: var(--slider-thumb-size);
|
|
464
|
+
height: var(--slider-thumb-size);
|
|
475
465
|
border-radius: 50%;
|
|
476
|
-
background:
|
|
477
|
-
border:
|
|
478
|
-
box-shadow:
|
|
466
|
+
background: var(--slider-thumb-color);
|
|
467
|
+
border: var(--slider-thumb-border);
|
|
468
|
+
box-shadow: var(--slider-thumb-shadow);
|
|
479
469
|
cursor: pointer;
|
|
480
470
|
}
|
|
481
471
|
|
|
@@ -487,23 +477,16 @@ export const PrefViewerMenu3DStyles = `
|
|
|
487
477
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider {
|
|
488
478
|
display: flex;
|
|
489
479
|
flex-direction: column;
|
|
490
|
-
gap:
|
|
480
|
+
gap: calc(var(--panel-spacing) / 2);
|
|
491
481
|
padding: var(--panel-spacing) 0;
|
|
492
|
-
border-bottom:
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider[data-pending] .lighting-slider-label::after {
|
|
496
|
-
content: "•";
|
|
497
|
-
margin-left: 8px;
|
|
498
|
-
color: var(--accent-color);
|
|
499
|
-
font-size: 1.1em;
|
|
482
|
+
border-bottom: var(--separator-border);
|
|
500
483
|
}
|
|
501
484
|
|
|
502
485
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-row {
|
|
503
486
|
display: flex;
|
|
504
487
|
align-items: center;
|
|
505
488
|
justify-content: space-between;
|
|
506
|
-
gap:
|
|
489
|
+
gap: calc(var(--panel-spacing) / 2);
|
|
507
490
|
}
|
|
508
491
|
|
|
509
492
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-row>.lighting-slider-label {
|
|
@@ -523,37 +506,40 @@ export const PrefViewerMenu3DStyles = `
|
|
|
523
506
|
-webkit-appearance: none;
|
|
524
507
|
appearance: none;
|
|
525
508
|
width: 100%;
|
|
526
|
-
height:
|
|
527
|
-
border-radius:
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
509
|
+
height: var(--slider-bar-height);
|
|
510
|
+
border-radius: calc(var(--slider-bar-height) / 2);
|
|
511
|
+
background: linear-gradient(to right,
|
|
512
|
+
rgba(56, 66, 115, 0.95) 0%,
|
|
513
|
+
rgba(118, 165, 255, 0.92) 10%,
|
|
514
|
+
rgba(255, 214, 120, 0.95) 30%,
|
|
515
|
+
rgba(255, 244, 214, 0.95) 50%,
|
|
516
|
+
rgba(255, 214, 120, 0.95) 70%,
|
|
517
|
+
rgba(118, 165, 255, 0.92) 90%,
|
|
518
|
+
rgba(56, 66, 115, 0.95) 100%);
|
|
519
|
+
border: var(--slider-bar-border);
|
|
536
520
|
outline: none;
|
|
521
|
+
margin: 0;
|
|
522
|
+
cursor: pointer;
|
|
537
523
|
}
|
|
538
524
|
|
|
539
525
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider::-webkit-slider-thumb {
|
|
540
526
|
-webkit-appearance: none;
|
|
541
|
-
width:
|
|
542
|
-
height:
|
|
527
|
+
width: var(--slider-thumb-size);
|
|
528
|
+
height: var(--slider-thumb-size);
|
|
543
529
|
border-radius: 50%;
|
|
544
|
-
background:
|
|
545
|
-
border:
|
|
546
|
-
box-shadow:
|
|
530
|
+
background: var(--slider-thumb-color);
|
|
531
|
+
border: var(--slider-thumb-border);
|
|
532
|
+
box-shadow: var(--slider-thumb-shadow);
|
|
547
533
|
cursor: pointer;
|
|
548
534
|
}
|
|
549
535
|
|
|
550
536
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider::-moz-range-thumb {
|
|
551
|
-
width:
|
|
552
|
-
height:
|
|
537
|
+
width: var(--slider-thumb-size);
|
|
538
|
+
height: var(--slider-thumb-size);
|
|
553
539
|
border-radius: 50%;
|
|
554
|
-
background:
|
|
555
|
-
border:
|
|
556
|
-
box-shadow:
|
|
540
|
+
background: var(--slider-thumb-color);
|
|
541
|
+
border: var(--slider-thumb-border);
|
|
542
|
+
box-shadow: var(--slider-thumb-shadow);
|
|
557
543
|
cursor: pointer;
|
|
558
544
|
}
|
|
559
545
|
|
|
@@ -572,45 +558,41 @@ export const PrefViewerMenu3DStyles = `
|
|
|
572
558
|
|
|
573
559
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-actions>.lighting-play-button {
|
|
574
560
|
appearance: none;
|
|
575
|
-
|
|
576
|
-
border
|
|
577
|
-
|
|
561
|
+
background: rgba(255, 255, 255, 0.1);
|
|
562
|
+
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
563
|
+
border-radius: var(--button-radius);
|
|
564
|
+
padding: calc(var(--panel-spacing) * 0.5) var(--panel-spacing);
|
|
578
565
|
color: var(--text-color);
|
|
579
|
-
padding: 6px 12px;
|
|
580
566
|
font-size: var(--font-size-small);
|
|
581
567
|
font-weight: var(--font-weight-medium);
|
|
568
|
+
transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.2s ease;
|
|
582
569
|
cursor: pointer;
|
|
583
|
-
transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
|
|
584
570
|
}
|
|
585
571
|
|
|
586
572
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-actions>.lighting-play-button:hover,
|
|
587
573
|
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-lighting-slider>.lighting-slider-actions>.lighting-play-button:focus-visible {
|
|
588
|
-
background: rgba(255, 255, 255, 0.
|
|
589
|
-
border-color: rgba(255, 255, 255, 0.
|
|
590
|
-
transform: translateY(-1px);
|
|
574
|
+
background: rgba(255, 255, 255, 0.15);
|
|
575
|
+
border-color: rgba(255, 255, 255, 0.3);
|
|
591
576
|
outline: none;
|
|
577
|
+
box-shadow: var(--button-shadow);
|
|
592
578
|
}
|
|
593
579
|
|
|
594
|
-
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
rgba(255, 247, 226, 0.96) 50%,
|
|
600
|
-
rgba(112, 154, 255, 0.92) 82%,
|
|
601
|
-
rgba(45, 55, 102, 0.98) 100%);
|
|
580
|
+
pref-viewer-menu-3d>.menu-wrapper>.menu-panel>.menu-footer {
|
|
581
|
+
margin-top: calc(var(--panel-spacing) / 2);
|
|
582
|
+
display: flex;
|
|
583
|
+
flex-direction: column;
|
|
584
|
+
gap: calc(var(--panel-spacing) / 2);
|
|
602
585
|
}
|
|
603
586
|
`;
|
|
604
587
|
|
|
605
588
|
export const PrefViewer3DAnimationMenuStyles = `
|
|
606
589
|
div.pref-viewer-3d.animation-menu, div.pref-viewer-3d.animation-menu * {
|
|
607
|
-
box-sizing: border-box;
|
|
608
590
|
padding: 0;
|
|
609
591
|
margin: 0;
|
|
610
592
|
}
|
|
611
593
|
|
|
612
594
|
div.pref-viewer-3d.animation-menu {
|
|
613
|
-
--color-primary: ${PrefViewerStyleVariables.colorPrimary};
|
|
595
|
+
--color-primary: var(--pref-viewer-color-primary, ${PrefViewerStyleVariables.colorPrimary});
|
|
614
596
|
--color-active: var(--color-primary);
|
|
615
597
|
--color-active-hover: color-mix(in oklab, var(--color-active), black 10%);
|
|
616
598
|
--color-enabled: #7a7a7a;
|
|
@@ -628,7 +610,7 @@ export const PrefViewer3DAnimationMenuStyles = `
|
|
|
628
610
|
--selector-button-radius: 6px;
|
|
629
611
|
--selector-button-padding-horizontal: 8px;
|
|
630
612
|
--selector-button-padding-vertical: 4px;
|
|
631
|
-
--selector-button-font-size:
|
|
613
|
+
--selector-button-font-size: ${PrefViewerStyleVariables.fontSize};
|
|
632
614
|
--selector-button-font-weight: 500;
|
|
633
615
|
--width: calc(var(--button-size) * 6 + var(--button-spacing) * 5 + var(--button-loop-margin-left));
|
|
634
616
|
|
|
@@ -669,6 +651,7 @@ export const PrefViewer3DAnimationMenuStyles = `
|
|
|
669
651
|
font-size: var(--selector-button-font-size);
|
|
670
652
|
font-weight: var(--selector-button-font-weight);
|
|
671
653
|
line-height: 1;
|
|
654
|
+
letter-spacing: 0.05em;
|
|
672
655
|
flex: 1;
|
|
673
656
|
}
|
|
674
657
|
|
|
@@ -684,7 +667,7 @@ export const PrefViewer3DAnimationMenuStyles = `
|
|
|
684
667
|
cursor: pointer;
|
|
685
668
|
}
|
|
686
669
|
|
|
687
|
-
div.pref-viewer-3d.animation-menu>div.animation-menu-
|
|
670
|
+
div.pref-viewer-3d.animation-menu>div.animation-menu-selector>button:not(.active):hover {
|
|
688
671
|
background: var(--color-enabled-hover);
|
|
689
672
|
}
|
|
690
673
|
|
|
@@ -701,7 +684,6 @@ export const PrefViewer3DAnimationMenuStyles = `
|
|
|
701
684
|
justify-content: center;
|
|
702
685
|
padding: 0;
|
|
703
686
|
margin: 0;
|
|
704
|
-
cursor: pointer;
|
|
705
687
|
border: 1px solid var(--color-border);
|
|
706
688
|
width: var(--button-size);
|
|
707
689
|
height: var(--button-size);
|
|
@@ -724,13 +706,15 @@ export const PrefViewer3DAnimationMenuStyles = `
|
|
|
724
706
|
|
|
725
707
|
div.pref-viewer-3d.animation-menu>div.animation-menu-buttons>button.enabled {
|
|
726
708
|
background: var(--color-enabled);
|
|
709
|
+
cursor: pointer;
|
|
727
710
|
}
|
|
728
711
|
|
|
729
712
|
div.pref-viewer-3d.animation-menu>div.animation-menu-buttons>button.enabled:hover {
|
|
730
713
|
background: var(--color-enabled-hover);
|
|
731
714
|
}
|
|
732
715
|
|
|
733
|
-
div.pref-viewer-3d.animation-menu>div.animation-menu-buttons>button.disabled
|
|
716
|
+
div.pref-viewer-3d.animation-menu>div.animation-menu-buttons>button.disabled,
|
|
717
|
+
div.pref-viewer-3d.animation-menu>div.animation-menu-buttons>button.disabled:hover {
|
|
734
718
|
background: var(--color-disabled);
|
|
735
719
|
}
|
|
736
720
|
|
|
@@ -796,7 +780,7 @@ export const PrefViewer3DAnimationMenuStyles = `
|
|
|
796
780
|
|
|
797
781
|
export const PrefViewerDialogStyles = `
|
|
798
782
|
pref-viewer-dialog {
|
|
799
|
-
--color-primary: ${PrefViewerStyleVariables.colorPrimary};
|
|
783
|
+
--color-primary: var(--pref-viewer-color-primary, ${PrefViewerStyleVariables.colorPrimary});
|
|
800
784
|
--dialog-general-space: 16px;
|
|
801
785
|
--dialog-bg-color: #ffffff;
|
|
802
786
|
--dialog-backdrop-color: rgba(0, 0, 0, 0.25);
|
|
@@ -856,7 +840,7 @@ export const PrefViewerDialogStyles = `
|
|
|
856
840
|
pref-viewer-dialog .dialog-header h3 {
|
|
857
841
|
margin: 0;
|
|
858
842
|
font-weight: 500;
|
|
859
|
-
font-size: 1.
|
|
843
|
+
font-size: calc(1.1 * ${PrefViewerStyleVariables.fontSize});
|
|
860
844
|
}
|
|
861
845
|
|
|
862
846
|
pref-viewer-dialog .dialog-content {
|
|
@@ -866,7 +850,7 @@ export const PrefViewerDialogStyles = `
|
|
|
866
850
|
pref-viewer-dialog .dialog-content h4 {
|
|
867
851
|
margin: 0;
|
|
868
852
|
font-weight: 500;
|
|
869
|
-
font-size: 1.
|
|
853
|
+
font-size: calc(1.05 * ${PrefViewerStyleVariables.fontSize});
|
|
870
854
|
}
|
|
871
855
|
|
|
872
856
|
pref-viewer-dialog .dialog-footer {
|
|
@@ -879,7 +863,7 @@ export const PrefViewerDialogStyles = `
|
|
|
879
863
|
|
|
880
864
|
pref-viewer-dialog .dialog-footer button {
|
|
881
865
|
width: 100%;
|
|
882
|
-
font-size: 0.
|
|
866
|
+
font-size: calc(0.95 * ${PrefViewerStyleVariables.fontSize});
|
|
883
867
|
font-weight: 600;
|
|
884
868
|
padding: var(--button-padding-vertical) var(--button-padding-horizontal);
|
|
885
869
|
border-radius: var(--button-border-radius);
|