customforge 0.1.0-alpha.1 → 0.1.0-alpha.2

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +37 -11
  2. package/LICENSES/NunitoSans-OFL.txt +93 -0
  3. package/README.md +233 -62
  4. package/README.zh-CN.md +231 -60
  5. package/dist/NunitoSans-Variable.ttf +0 -0
  6. package/dist/ProductCustomizer-rMRyWe7L.js +1624 -0
  7. package/dist/ProductCustomizer-rMRyWe7L.js.map +1 -0
  8. package/dist/core/design.d.ts.map +1 -1
  9. package/dist/core/types.d.ts +35 -4
  10. package/dist/core/types.d.ts.map +1 -1
  11. package/dist/customizer/ProductCustomizer.d.ts +78 -0
  12. package/dist/customizer/ProductCustomizer.d.ts.map +1 -1
  13. package/dist/editor/DesignEditor.d.ts +108 -6
  14. package/dist/editor/DesignEditor.d.ts.map +1 -1
  15. package/dist/editor/DesignHistory.d.ts +27 -0
  16. package/dist/editor/DesignHistory.d.ts.map +1 -0
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -1108
  20. package/dist/index.js.map +1 -1
  21. package/dist/style.css +1319 -0
  22. package/dist/workbench/CustomForgeWorkbench.d.ts +128 -0
  23. package/dist/workbench/CustomForgeWorkbench.d.ts.map +1 -0
  24. package/dist/workbench/assets/catalog.d.ts +8 -0
  25. package/dist/workbench/assets/catalog.d.ts.map +1 -0
  26. package/dist/workbench/config.d.ts +55 -0
  27. package/dist/workbench/config.d.ts.map +1 -0
  28. package/dist/workbench/icons.d.ts +4 -0
  29. package/dist/workbench/icons.d.ts.map +1 -0
  30. package/dist/workbench/index.d.ts +25 -0
  31. package/dist/workbench/index.d.ts.map +1 -0
  32. package/dist/workbench/template.d.ts +3 -0
  33. package/dist/workbench/template.d.ts.map +1 -0
  34. package/dist/workbench/types.d.ts +294 -0
  35. package/dist/workbench/types.d.ts.map +1 -0
  36. package/dist/workbench.js +1920 -0
  37. package/dist/workbench.js.map +1 -0
  38. package/package.json +70 -71
package/dist/style.css CHANGED
@@ -9,4 +9,1323 @@
9
9
  width: 100%;
10
10
  height: 100%;
11
11
  }
12
+
13
+ @font-face {
14
+ font-family: "Nunito Sans";
15
+ src: url("/NunitoSans-Variable.ttf")
16
+ format("truetype");
17
+ font-display: swap;
18
+ font-style: normal;
19
+ font-weight: 200 1000;
20
+ }
21
+
22
+ @keyframes customforge-layer-selection {
23
+ 0% {
24
+ background-color: transparent;
25
+ border-color: transparent;
26
+ box-shadow: inset 0 0 0 var(--cfw-accent);
27
+ }
28
+
29
+ 58% {
30
+ background-color: color-mix(in srgb, var(--cfw-accent) 12%, var(--cfw-surface));
31
+ border-color: color-mix(in srgb, var(--cfw-accent) 20%, var(--cfw-line));
32
+ box-shadow: inset 3px 0 0 var(--cfw-accent);
33
+ }
34
+
35
+ 100% {
36
+ background-color: color-mix(in srgb, var(--cfw-accent) 8%, var(--cfw-surface));
37
+ border-color: color-mix(in srgb, var(--cfw-accent) 12%, var(--cfw-line));
38
+ box-shadow: inset 2px 0 0 var(--cfw-accent);
39
+ }
40
+ }
41
+
42
+ @keyframes customforge-layer-indicator {
43
+ from {
44
+ opacity: 0;
45
+ transform: scaleY(0.3);
46
+ }
47
+
48
+ to {
49
+ opacity: 1;
50
+ transform: scaleY(1);
51
+ }
52
+ }
53
+
54
+ @keyframes customforge-dialog-enter {
55
+ from {
56
+ opacity: 0;
57
+ transform: translateY(10px) scale(0.985);
58
+ }
59
+
60
+ to {
61
+ opacity: 1;
62
+ transform: translateY(0) scale(1);
63
+ }
64
+ }
65
+
66
+ @keyframes customforge-dialog-exit {
67
+ from {
68
+ opacity: 1;
69
+ transform: translateY(0) scale(1);
70
+ }
71
+
72
+ to {
73
+ opacity: 0;
74
+ transform: translateY(6px) scale(0.99);
75
+ }
76
+ }
77
+
78
+ @keyframes customforge-backdrop-enter {
79
+ from {
80
+ background-color: rgb(17 24 30 / 0%);
81
+ }
82
+
83
+ to {
84
+ background-color: rgb(17 24 30 / 38%);
85
+ }
86
+ }
87
+
88
+ @keyframes customforge-backdrop-exit {
89
+ from {
90
+ background-color: rgb(17 24 30 / 38%);
91
+ }
92
+
93
+ to {
94
+ background-color: rgb(17 24 30 / 0%);
95
+ }
96
+ }
97
+
98
+ .customforge-workbench {
99
+ --cfw-ink: #24272b;
100
+ --cfw-muted: #747b84;
101
+ --cfw-line: #e1e4e8;
102
+ --cfw-surface: #ffffff;
103
+ --cfw-surface-muted: #f5f6f8;
104
+ --cfw-stage: #f1f3f5;
105
+ --cfw-accent: #0875c9;
106
+ --cfw-accent-hover: #075fa3;
107
+ --cfw-accent-contrast: #ffffff;
108
+ --cfw-danger: #b42318;
109
+ --cfw-control-radius: 7px;
110
+ --cfw-font-family: "Nunito Sans", "Avenir Next", "Segoe UI Variable",
111
+ "Segoe UI", ui-sans-serif, system-ui, sans-serif;
112
+ container-name: customforge-workbench;
113
+ container-type: inline-size;
114
+ display: grid;
115
+ grid-template-rows: auto minmax(0, 1fr) auto;
116
+ width: 100%;
117
+ min-width: 320px;
118
+ height: 100%;
119
+ min-height: 640px;
120
+ overflow: hidden;
121
+ color: var(--cfw-ink);
122
+ background: var(--cfw-surface-muted);
123
+ border: 1px solid var(--cfw-line);
124
+ font-family: var(--cfw-font-family);
125
+ font-size: 13px;
126
+ font-synthesis: none;
127
+ letter-spacing: 0;
128
+ scrollbar-color: color-mix(in srgb, var(--cfw-muted) 38%, transparent) transparent;
129
+ scrollbar-width: thin;
130
+ text-rendering: optimizeLegibility;
131
+ }
132
+
133
+ .customforge-workbench [hidden] {
134
+ display: none !important;
135
+ }
136
+
137
+ .customforge-workbench,
138
+ .customforge-workbench * {
139
+ box-sizing: border-box;
140
+ }
141
+
142
+ .customforge-workbench button,
143
+ .customforge-workbench input,
144
+ .customforge-workbench select,
145
+ .customforge-workbench textarea {
146
+ font: inherit;
147
+ letter-spacing: 0;
148
+ }
149
+
150
+ .customforge-workbench :where(button) {
151
+ color: inherit;
152
+ }
153
+
154
+ .customforge-workbench button:focus-visible,
155
+ .customforge-workbench input:focus-visible,
156
+ .customforge-workbench select:focus-visible {
157
+ outline: 3px solid color-mix(in srgb, var(--cfw-accent) 22%, transparent);
158
+ outline-offset: 1px;
159
+ }
160
+
161
+ .customforge-workbench__topbar {
162
+ z-index: 5;
163
+ display: flex;
164
+ align-items: center;
165
+ justify-content: space-between;
166
+ gap: 20px;
167
+ min-height: 58px;
168
+ padding: 8px 14px 8px 16px;
169
+ background: var(--cfw-surface);
170
+ border-bottom: 1px solid var(--cfw-line);
171
+ }
172
+
173
+ .customforge-workbench__brand,
174
+ .customforge-workbench__brand-copy,
175
+ .customforge-workbench__global-actions,
176
+ .customforge-workbench__panel-title,
177
+ .customforge-workbench__tool-group,
178
+ .customforge-workbench__layers-header,
179
+ .customforge-workbench__layers-header > span,
180
+ .customforge-workbench__statusbar,
181
+ .customforge-workbench__button,
182
+ .customforge-workbench__tool-button,
183
+ .customforge-workbench__layer-item,
184
+ .customforge-workbench__layer-main,
185
+ .customforge-workbench__layer-actions,
186
+ .customforge-workbench__dialog-header,
187
+ .customforge-workbench__dialog-header > div,
188
+ .customforge-workbench__dialog-actions,
189
+ .customforge-workbench__input-shell,
190
+ .customforge-workbench__check-field,
191
+ .customforge-workbench__color-field,
192
+ .customforge-workbench__tabs,
193
+ .customforge-workbench__upload-field {
194
+ display: flex;
195
+ align-items: center;
196
+ }
197
+
198
+ .customforge-workbench__brand {
199
+ min-width: 0;
200
+ gap: 10px;
201
+ }
202
+
203
+ .customforge-workbench__brand-logo {
204
+ display: block;
205
+ flex: 0 0 36px;
206
+ width: 36px;
207
+ height: 36px;
208
+ object-fit: contain;
209
+ }
210
+
211
+ .customforge-workbench__brand-copy {
212
+ align-items: flex-start;
213
+ flex-direction: column;
214
+ min-width: 0;
215
+ gap: 1px;
216
+ }
217
+
218
+ .customforge-workbench__brand-copy strong,
219
+ .customforge-workbench__brand-copy span {
220
+ overflow: hidden;
221
+ max-width: 300px;
222
+ text-overflow: ellipsis;
223
+ white-space: nowrap;
224
+ }
225
+
226
+ .customforge-workbench__brand-copy strong {
227
+ font-size: 14px;
228
+ font-weight: 680;
229
+ line-height: 19px;
230
+ }
231
+
232
+ .customforge-workbench__brand-copy span {
233
+ color: var(--cfw-muted);
234
+ font-size: 10px;
235
+ line-height: 14px;
236
+ }
237
+
238
+ .customforge-workbench__global-actions {
239
+ flex: 0 0 auto;
240
+ gap: 6px;
241
+ }
242
+
243
+ .customforge-workbench__button,
244
+ .customforge-workbench__tool-button,
245
+ .customforge-workbench__icon-button,
246
+ .customforge-workbench__layer-action {
247
+ min-height: 34px;
248
+ border: 1px solid transparent;
249
+ border-radius: var(--cfw-control-radius);
250
+ cursor: pointer;
251
+ transition: background-color 140ms ease, border-color 140ms ease,
252
+ box-shadow 140ms ease, color 140ms ease;
253
+ }
254
+
255
+ .customforge-workbench__button {
256
+ justify-content: center;
257
+ gap: 7px;
258
+ min-width: 0;
259
+ padding: 0 13px;
260
+ font-size: 12px;
261
+ font-weight: 620;
262
+ white-space: nowrap;
263
+ }
264
+
265
+ .customforge-workbench__button--primary {
266
+ color: var(--cfw-accent-contrast);
267
+ background: var(--cfw-accent);
268
+ border-color: var(--cfw-accent);
269
+ box-shadow: 0 1px 2px rgb(24 34 44 / 12%);
270
+ }
271
+
272
+ .customforge-workbench__button--primary:hover:not(:disabled) {
273
+ background: var(--cfw-accent-hover);
274
+ border-color: var(--cfw-accent-hover);
275
+ box-shadow: 0 2px 5px rgb(24 34 44 / 16%);
276
+ }
277
+
278
+ .customforge-workbench__button--primary:active:not(:disabled) {
279
+ background: var(--cfw-accent-hover);
280
+ box-shadow: 0 1px 2px rgb(24 34 44 / 10%);
281
+ }
282
+
283
+ .customforge-workbench__button--secondary {
284
+ color: var(--cfw-ink);
285
+ background: var(--cfw-surface);
286
+ border-color: var(--cfw-line);
287
+ box-shadow: 0 1px 2px rgb(24 34 44 / 5%);
288
+ }
289
+
290
+ .customforge-workbench__button--secondary:hover:not(:disabled) {
291
+ color: var(--cfw-ink);
292
+ background: var(--cfw-surface-muted);
293
+ border-color: color-mix(in srgb, var(--cfw-ink) 18%, var(--cfw-line));
294
+ }
295
+
296
+ .customforge-workbench__button--secondary:active:not(:disabled),
297
+ .customforge-workbench__tool-button:active:not(:disabled),
298
+ .customforge-workbench__icon-button:active:not(:disabled),
299
+ .customforge-workbench__layer-action:active:not(:disabled) {
300
+ background: color-mix(in srgb, var(--cfw-accent) 13%, var(--cfw-surface));
301
+ }
302
+
303
+ .customforge-workbench__tool-button:hover:not(:disabled),
304
+ .customforge-workbench__icon-button:hover:not(:disabled),
305
+ .customforge-workbench__layer-action:hover:not(:disabled) {
306
+ color: var(--cfw-accent-hover);
307
+ background: color-mix(in srgb, var(--cfw-accent) 9%, var(--cfw-surface));
308
+ border-color: transparent;
309
+ }
310
+
311
+ .customforge-workbench__icon-button--danger:hover:not(:disabled),
312
+ .customforge-workbench__layer-action[data-layer-action="remove"]:hover:not(:disabled) {
313
+ color: var(--cfw-danger);
314
+ background: color-mix(in srgb, var(--cfw-danger) 8%, var(--cfw-surface));
315
+ border-color: transparent;
316
+ }
317
+
318
+ .customforge-workbench__button:disabled,
319
+ .customforge-workbench__tool-button:disabled,
320
+ .customforge-workbench__icon-button:disabled,
321
+ .customforge-workbench__layer-action:disabled {
322
+ color: color-mix(in srgb, var(--cfw-muted) 48%, var(--cfw-surface));
323
+ cursor: not-allowed;
324
+ }
325
+
326
+ .customforge-workbench__button--primary:disabled {
327
+ color: var(--cfw-accent-contrast);
328
+ }
329
+
330
+ .customforge-workbench__custom-icon,
331
+ .customforge-workbench [data-icon-slot] {
332
+ flex: 0 0 auto;
333
+ width: 18px;
334
+ height: 18px;
335
+ object-fit: contain;
336
+ }
337
+
338
+ .customforge-workbench__icon-label {
339
+ position: absolute;
340
+ width: 1px;
341
+ height: 1px;
342
+ padding: 0;
343
+ overflow: hidden;
344
+ clip: rect(0, 0, 0, 0);
345
+ white-space: nowrap;
346
+ border: 0;
347
+ }
348
+
349
+ .customforge-workbench[data-icons="hidden"] .customforge-workbench__icon-label,
350
+ .customforge-workbench__icon-missing .customforge-workbench__icon-label {
351
+ position: static;
352
+ width: auto;
353
+ height: auto;
354
+ overflow: visible;
355
+ clip: auto;
356
+ font-size: 10px;
357
+ white-space: nowrap;
358
+ }
359
+
360
+ .customforge-workbench[data-icons="hidden"] .customforge-workbench__icon-button,
361
+ .customforge-workbench[data-icons="hidden"] .customforge-workbench__layer-action,
362
+ .customforge-workbench__icon-button.customforge-workbench__icon-missing,
363
+ .customforge-workbench__layer-action.customforge-workbench__icon-missing {
364
+ display: flex;
365
+ width: auto;
366
+ justify-content: center;
367
+ gap: 0;
368
+ padding: 0 8px;
369
+ }
370
+
371
+ .customforge-workbench[data-icons="hidden"] .customforge-workbench__input-shell input {
372
+ padding-left: 11px !important;
373
+ }
374
+
375
+ .customforge-workbench__workspace {
376
+ display: grid;
377
+ grid-template-columns: minmax(560px, 1.08fr) minmax(460px, 0.92fr);
378
+ min-width: 0;
379
+ min-height: 0;
380
+ }
381
+
382
+ .customforge-workbench__panel {
383
+ display: grid;
384
+ min-width: 0;
385
+ min-height: 0;
386
+ overflow: hidden;
387
+ background: var(--cfw-surface);
388
+ }
389
+
390
+ .customforge-workbench__panel--editor {
391
+ grid-template-rows: auto auto minmax(0, 1fr);
392
+ background: var(--cfw-surface-muted);
393
+ border-right: 1px solid var(--cfw-line);
394
+ }
395
+
396
+ .customforge-workbench__panel--viewer {
397
+ grid-template-rows: auto minmax(0, 1fr);
398
+ }
399
+
400
+ .customforge-workbench__panelbar {
401
+ display: flex;
402
+ align-items: center;
403
+ justify-content: space-between;
404
+ min-width: 0;
405
+ min-height: 46px;
406
+ padding: 0 12px 0 14px;
407
+ background: var(--cfw-surface);
408
+ border-bottom: 1px solid var(--cfw-line);
409
+ }
410
+
411
+ .customforge-workbench__panel-title {
412
+ min-width: 0;
413
+ gap: 8px;
414
+ }
415
+
416
+ .customforge-workbench__panel-kicker,
417
+ .customforge-workbench__resolution,
418
+ .customforge-workbench__eyebrow {
419
+ color: var(--cfw-muted);
420
+ font-size: 10px;
421
+ font-weight: 650;
422
+ text-transform: uppercase;
423
+ }
424
+
425
+ .customforge-workbench__panel-kicker,
426
+ .customforge-workbench__eyebrow {
427
+ color: var(--cfw-accent);
428
+ }
429
+
430
+ .customforge-workbench__panel-kicker {
431
+ padding: 3px 6px;
432
+ background: color-mix(in srgb, var(--cfw-accent) 9%, var(--cfw-surface));
433
+ border-radius: 5px;
434
+ }
435
+
436
+ .customforge-workbench__panelbar h1,
437
+ .customforge-workbench__panelbar h2 {
438
+ overflow: hidden;
439
+ margin: 0;
440
+ font-size: 13px;
441
+ font-weight: 650;
442
+ line-height: 19px;
443
+ text-overflow: ellipsis;
444
+ white-space: nowrap;
445
+ }
446
+
447
+ .customforge-workbench__resolution {
448
+ font-variant-numeric: tabular-nums;
449
+ }
450
+
451
+ .customforge-workbench__toolbar {
452
+ display: flex;
453
+ align-items: center;
454
+ gap: 4px;
455
+ min-width: 0;
456
+ min-height: 52px;
457
+ margin: 8px;
458
+ padding: 7px 8px;
459
+ overflow-x: auto;
460
+ background: var(--cfw-surface);
461
+ border: 1px solid var(--cfw-line);
462
+ border-radius: 8px;
463
+ box-shadow: 0 1px 2px rgb(24 34 44 / 4%);
464
+ scrollbar-width: thin;
465
+ }
466
+
467
+ .customforge-workbench__tool-group {
468
+ flex: 0 0 auto;
469
+ gap: 3px;
470
+ }
471
+
472
+ .customforge-workbench__tool-button {
473
+ flex: 0 0 auto;
474
+ gap: 7px;
475
+ padding: 0 10px;
476
+ color: color-mix(in srgb, var(--cfw-ink) 88%, var(--cfw-muted));
477
+ background: transparent;
478
+ border-color: transparent;
479
+ font-size: 11px;
480
+ font-weight: 620;
481
+ white-space: nowrap;
482
+ }
483
+
484
+ .customforge-workbench__icon-button,
485
+ .customforge-workbench__layer-action {
486
+ display: grid;
487
+ width: 34px;
488
+ padding: 0;
489
+ color: var(--cfw-muted);
490
+ background: transparent;
491
+ place-items: center;
492
+ }
493
+
494
+ .customforge-workbench__icon-button {
495
+ flex: 0 0 34px;
496
+ }
497
+
498
+ .customforge-workbench__separator {
499
+ flex: 0 0 1px;
500
+ width: 1px;
501
+ height: 20px;
502
+ margin: 0 3px;
503
+ background: var(--cfw-line);
504
+ }
505
+
506
+ .customforge-workbench__editor-body {
507
+ display: grid;
508
+ grid-template-columns: minmax(0, 1fr) 248px;
509
+ min-width: 0;
510
+ min-height: 0;
511
+ }
512
+
513
+ .customforge-workbench[data-layers="hidden"] .customforge-workbench__editor-body {
514
+ grid-template-columns: minmax(0, 1fr);
515
+ }
516
+
517
+ .customforge-workbench__editor-stage {
518
+ position: relative;
519
+ display: grid;
520
+ min-width: 0;
521
+ min-height: 0;
522
+ overflow: hidden;
523
+ background: var(--cfw-stage);
524
+ place-items: center;
525
+ }
526
+
527
+ .customforge-workbench__editor-stage .customforge-design-canvas {
528
+ max-width: calc(100% - 30px);
529
+ max-height: calc(100% - 30px);
530
+ border: 1px solid color-mix(in srgb, var(--cfw-ink) 12%, var(--cfw-line));
531
+ border-radius: 5px;
532
+ box-shadow: 0 8px 24px rgb(24 34 44 / 9%);
533
+ }
534
+
535
+ .customforge-workbench__layers {
536
+ display: grid;
537
+ grid-template-rows: 42px minmax(0, 1fr);
538
+ min-width: 0;
539
+ min-height: 0;
540
+ background: var(--cfw-surface);
541
+ border-left: 1px solid var(--cfw-line);
542
+ }
543
+
544
+ .customforge-workbench__layers-header {
545
+ justify-content: space-between;
546
+ gap: 10px;
547
+ padding: 0 10px 0 12px;
548
+ color: var(--cfw-ink);
549
+ background: var(--cfw-surface);
550
+ border-bottom: 1px solid var(--cfw-line);
551
+ font-size: 11px;
552
+ font-weight: 650;
553
+ }
554
+
555
+ .customforge-workbench__layers-header > span {
556
+ gap: 7px;
557
+ }
558
+
559
+ .customforge-workbench__layers-header > span:last-child {
560
+ justify-content: center;
561
+ min-width: 20px;
562
+ height: 20px;
563
+ padding: 0 5px;
564
+ color: var(--cfw-muted);
565
+ background: var(--cfw-surface-muted);
566
+ border: 0;
567
+ border-radius: var(--cfw-control-radius);
568
+ font-size: 10px;
569
+ font-variant-numeric: tabular-nums;
570
+ }
571
+
572
+ .customforge-workbench__layer-list {
573
+ min-height: 0;
574
+ margin: 0;
575
+ padding: 6px;
576
+ overflow: auto;
577
+ list-style: none;
578
+ }
579
+
580
+ .customforge-workbench__layer-empty {
581
+ display: grid;
582
+ min-height: 112px;
583
+ padding: 18px;
584
+ color: var(--cfw-muted);
585
+ font-size: 10px;
586
+ place-items: center;
587
+ text-align: center;
588
+ }
589
+
590
+ .customforge-workbench__layer-item {
591
+ position: relative;
592
+ min-width: 0;
593
+ min-height: 48px;
594
+ margin-bottom: 2px;
595
+ padding: 0 5px 0 8px;
596
+ background: transparent;
597
+ border: 1px solid transparent;
598
+ border-radius: var(--cfw-control-radius);
599
+ transition: background-color 160ms ease, border-color 160ms ease,
600
+ box-shadow 160ms ease;
601
+ }
602
+
603
+ .customforge-workbench__layer-item[data-visible="false"] {
604
+ color: var(--cfw-muted);
605
+ opacity: 0.62;
606
+ }
607
+
608
+ .customforge-workbench__layer-item[data-role="background"] {
609
+ background: color-mix(in srgb, var(--cfw-surface-muted) 72%, var(--cfw-surface));
610
+ }
611
+
612
+ .customforge-workbench__layer-item::before {
613
+ position: absolute;
614
+ top: 10px;
615
+ bottom: 10px;
616
+ left: 2px;
617
+ width: 2px;
618
+ background: var(--cfw-accent);
619
+ border-radius: 2px;
620
+ content: "";
621
+ opacity: 0;
622
+ pointer-events: none;
623
+ transform: scaleY(0.3);
624
+ transform-origin: center;
625
+ }
626
+
627
+ .customforge-workbench__layer-item[data-selected="true"] {
628
+ background: color-mix(in srgb, var(--cfw-accent) 8%, var(--cfw-surface));
629
+ border-color: color-mix(in srgb, var(--cfw-accent) 12%, var(--cfw-line));
630
+ box-shadow: inset 2px 0 0 var(--cfw-accent);
631
+ animation: customforge-layer-selection 220ms cubic-bezier(0.22, 1, 0.36, 1);
632
+ }
633
+
634
+ .customforge-workbench__layer-item[data-selected="true"]::before {
635
+ animation: customforge-layer-indicator 220ms cubic-bezier(0.22, 1, 0.36, 1)
636
+ both;
637
+ }
638
+
639
+ .customforge-workbench__layer-item.is-dragging {
640
+ opacity: 0.42;
641
+ }
642
+
643
+ .customforge-workbench__layer-item.is-drag-target {
644
+ box-shadow: inset 0 2px 0 var(--cfw-accent);
645
+ }
646
+
647
+ .customforge-workbench__layer-main {
648
+ min-width: 0;
649
+ flex: 1 1 auto;
650
+ gap: 8px;
651
+ height: 44px;
652
+ padding: 0 3px;
653
+ text-align: left;
654
+ background: transparent;
655
+ border: 0;
656
+ cursor: pointer;
657
+ }
658
+
659
+ .customforge-workbench__layer-main > svg,
660
+ .customforge-workbench__layer-main > img {
661
+ flex: 0 0 16px;
662
+ width: 16px;
663
+ color: var(--cfw-accent);
664
+ }
665
+
666
+ .customforge-workbench__layer-copy {
667
+ display: grid;
668
+ min-width: 0;
669
+ gap: 1px;
670
+ }
671
+
672
+ .customforge-workbench__layer-copy strong,
673
+ .customforge-workbench__layer-copy span {
674
+ overflow: hidden;
675
+ text-overflow: ellipsis;
676
+ white-space: nowrap;
677
+ }
678
+
679
+ .customforge-workbench__layer-copy strong {
680
+ font-size: 11px;
681
+ font-weight: 620;
682
+ }
683
+
684
+ .customforge-workbench__layer-copy span {
685
+ color: var(--cfw-muted);
686
+ font-size: 10px;
687
+ text-transform: uppercase;
688
+ }
689
+
690
+ .customforge-workbench__layer-actions {
691
+ position: absolute;
692
+ right: 7px;
693
+ gap: 2px;
694
+ padding-left: 6px;
695
+ opacity: 0;
696
+ background: var(--cfw-surface);
697
+ transition: opacity 140ms ease;
698
+ }
699
+
700
+ .customforge-workbench__layer-item:hover .customforge-workbench__layer-actions,
701
+ .customforge-workbench__layer-item:focus-within .customforge-workbench__layer-actions,
702
+ .customforge-workbench__layer-item[data-selected="true"]
703
+ .customforge-workbench__layer-actions {
704
+ opacity: 1;
705
+ }
706
+
707
+ .customforge-workbench__layer-item[data-role="background"]
708
+ .customforge-workbench__layer-actions {
709
+ background: color-mix(in srgb, var(--cfw-surface-muted) 70%, var(--cfw-surface));
710
+ }
711
+
712
+ .customforge-workbench__layer-item[data-selected="true"]
713
+ .customforge-workbench__layer-actions {
714
+ background: color-mix(in srgb, var(--cfw-accent) 8%, var(--cfw-surface));
715
+ }
716
+
717
+ .customforge-workbench__layer-action {
718
+ width: 27px;
719
+ min-height: 28px;
720
+ border-radius: 6px;
721
+ }
722
+
723
+ .customforge-workbench__layer-action svg,
724
+ .customforge-workbench__layer-action img {
725
+ width: 14px;
726
+ height: 14px;
727
+ }
728
+
729
+ .customforge-workbench[data-icons="hidden"] .customforge-workbench__layer-item {
730
+ display: grid;
731
+ padding-right: 9px;
732
+ }
733
+
734
+ .customforge-workbench[data-icons="hidden"] .customforge-workbench__layer-actions {
735
+ position: static;
736
+ flex-wrap: wrap;
737
+ padding: 0 0 7px 24px;
738
+ opacity: 1;
739
+ background: transparent;
740
+ }
741
+
742
+ .customforge-workbench[data-icons="hidden"] .customforge-workbench__layer-action {
743
+ min-height: 25px;
744
+ padding: 0 5px;
745
+ }
746
+
747
+ .customforge-workbench__layer-name-input {
748
+ min-width: 0;
749
+ height: 31px;
750
+ flex: 1 1 auto;
751
+ padding: 0 7px;
752
+ color: var(--cfw-ink);
753
+ background: var(--cfw-surface);
754
+ border: 1px solid var(--cfw-accent);
755
+ border-radius: var(--cfw-control-radius);
756
+ font-size: 11px;
757
+ }
758
+
759
+ .customforge-workbench__viewer-stage {
760
+ position: relative;
761
+ min-width: 0;
762
+ min-height: 0;
763
+ overflow: hidden;
764
+ background: var(--cfw-stage);
765
+ }
766
+
767
+ .customforge-workbench__statusbar {
768
+ z-index: 4;
769
+ gap: 8px;
770
+ min-height: 30px;
771
+ padding: 0 12px;
772
+ color: var(--cfw-muted);
773
+ background: var(--cfw-surface);
774
+ border-top: 1px solid var(--cfw-line);
775
+ font-size: 10px;
776
+ }
777
+
778
+ .customforge-workbench__status-indicator {
779
+ flex: 0 0 6px;
780
+ width: 6px;
781
+ height: 6px;
782
+ background: #218c4a;
783
+ border-radius: 50%;
784
+ }
785
+
786
+ .customforge-workbench[data-status="busy"]
787
+ .customforge-workbench__status-indicator {
788
+ background: #b7791f;
789
+ }
790
+
791
+ .customforge-workbench[data-status="error"]
792
+ .customforge-workbench__status-indicator {
793
+ background: var(--cfw-danger);
794
+ }
795
+
796
+ .customforge-workbench__object-count {
797
+ margin-left: auto;
798
+ font-variant-numeric: tabular-nums;
799
+ white-space: nowrap;
800
+ }
801
+
802
+ .customforge-workbench__statusbar [data-role="status-label"] {
803
+ overflow: hidden;
804
+ text-overflow: ellipsis;
805
+ white-space: nowrap;
806
+ }
807
+
808
+ .customforge-workbench__dialog {
809
+ width: min(540px, calc(100vw - 32px));
810
+ max-height: min(760px, calc(100vh - 32px));
811
+ padding: 0;
812
+ overflow: hidden;
813
+ color: var(--cfw-ink);
814
+ background: var(--cfw-surface);
815
+ border: 1px solid var(--cfw-line);
816
+ border-radius: 8px;
817
+ box-shadow: 0 22px 64px rgb(17 24 30 / 20%);
818
+ transform-origin: 50% 45%;
819
+ }
820
+
821
+ .customforge-workbench__dialog[open] {
822
+ animation: customforge-dialog-enter 190ms cubic-bezier(0.22, 1, 0.36, 1) both;
823
+ }
824
+
825
+ .customforge-workbench__dialog[open][data-closing="true"] {
826
+ pointer-events: none;
827
+ animation: customforge-dialog-exit 160ms cubic-bezier(0.4, 0, 1, 1) both;
828
+ }
829
+
830
+ .customforge-workbench__dialog--text,
831
+ .customforge-workbench__dialog--image {
832
+ width: min(680px, calc(100vw - 32px));
833
+ }
834
+
835
+ .customforge-workbench__dialog::backdrop {
836
+ background: rgb(17 24 30 / 38%);
837
+ }
838
+
839
+ .customforge-workbench__dialog[open]::backdrop {
840
+ animation: customforge-backdrop-enter 190ms ease-out both;
841
+ }
842
+
843
+ .customforge-workbench__dialog[open][data-closing="true"]::backdrop {
844
+ animation: customforge-backdrop-exit 160ms ease-in both;
845
+ }
846
+
847
+ .customforge-workbench__dialog > form {
848
+ display: grid;
849
+ grid-template-rows: auto minmax(0, 1fr) auto;
850
+ max-height: min(760px, calc(100vh - 32px));
851
+ margin: 0;
852
+ }
853
+
854
+ .customforge-workbench__dialog-header {
855
+ justify-content: space-between;
856
+ gap: 20px;
857
+ min-width: 0;
858
+ padding: 17px 18px;
859
+ border-bottom: 1px solid var(--cfw-line);
860
+ }
861
+
862
+ .customforge-workbench__dialog-header > div {
863
+ align-items: flex-start;
864
+ flex-direction: column;
865
+ min-width: 0;
866
+ gap: 3px;
867
+ }
868
+
869
+ .customforge-workbench__dialog-header h2 {
870
+ overflow: hidden;
871
+ margin: 0;
872
+ max-width: 100%;
873
+ font-size: 17px;
874
+ font-weight: 680;
875
+ line-height: 23px;
876
+ text-overflow: ellipsis;
877
+ white-space: nowrap;
878
+ }
879
+
880
+ .customforge-workbench__dialog-body {
881
+ min-height: 0;
882
+ padding: 18px;
883
+ overflow: auto;
884
+ }
885
+
886
+ .customforge-workbench__field {
887
+ display: grid;
888
+ min-width: 0;
889
+ gap: 6px;
890
+ color: color-mix(in srgb, var(--cfw-ink) 80%, var(--cfw-muted));
891
+ font-size: 11px;
892
+ font-weight: 620;
893
+ }
894
+
895
+ .customforge-workbench__field--prominent {
896
+ margin-bottom: 18px;
897
+ }
898
+
899
+ .customforge-workbench__field input[type="text"],
900
+ .customforge-workbench__field input[type="url"] {
901
+ width: 100%;
902
+ height: 40px;
903
+ min-width: 0;
904
+ padding: 0 11px;
905
+ color: var(--cfw-ink);
906
+ background: var(--cfw-surface);
907
+ border: 1px solid var(--cfw-line);
908
+ border-radius: var(--cfw-control-radius);
909
+ font-size: 13px;
910
+ font-weight: 450;
911
+ transition: border-color 140ms ease, box-shadow 140ms ease;
912
+ }
913
+
914
+ .customforge-workbench__field input[type="text"]:hover,
915
+ .customforge-workbench__field input[type="url"]:hover {
916
+ border-color: color-mix(in srgb, var(--cfw-ink) 18%, var(--cfw-line));
917
+ }
918
+
919
+ .customforge-workbench__field input[type="text"]:focus,
920
+ .customforge-workbench__field input[type="url"]:focus {
921
+ border-color: color-mix(in srgb, var(--cfw-accent) 55%, var(--cfw-line));
922
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--cfw-accent) 9%, transparent);
923
+ }
924
+
925
+ .customforge-workbench__field input::placeholder {
926
+ color: color-mix(in srgb, var(--cfw-muted) 72%, var(--cfw-surface));
927
+ }
928
+
929
+ .customforge-workbench__field--prominent input {
930
+ height: 46px !important;
931
+ font-size: 15px !important;
932
+ }
933
+
934
+ .customforge-workbench__fieldset {
935
+ min-width: 0;
936
+ margin: 0;
937
+ padding: 0;
938
+ border: 0;
939
+ }
940
+
941
+ .customforge-workbench__fieldset legend {
942
+ margin-bottom: 8px;
943
+ color: color-mix(in srgb, var(--cfw-ink) 80%, var(--cfw-muted));
944
+ font-size: 11px;
945
+ font-weight: 620;
946
+ }
947
+
948
+ .customforge-workbench__preset-grid {
949
+ display: grid;
950
+ min-width: 0;
951
+ gap: 9px;
952
+ }
953
+
954
+ .customforge-workbench__preset-grid--text {
955
+ grid-template-columns: repeat(2, minmax(0, 1fr));
956
+ }
957
+
958
+ .customforge-workbench__text-preset {
959
+ display: grid;
960
+ min-width: 0;
961
+ min-height: 100px;
962
+ padding: 12px;
963
+ color: var(--cfw-ink);
964
+ text-align: left;
965
+ background: var(--cfw-surface);
966
+ border: 1px solid var(--cfw-line);
967
+ border-radius: var(--cfw-control-radius);
968
+ cursor: pointer;
969
+ transition: background-color 140ms ease, border-color 140ms ease,
970
+ box-shadow 140ms ease;
971
+ }
972
+
973
+ .customforge-workbench__text-preset:hover {
974
+ border-color: color-mix(in srgb, var(--cfw-accent) 34%, var(--cfw-line));
975
+ box-shadow: 0 2px 8px rgb(24 34 44 / 6%);
976
+ }
977
+
978
+ .customforge-workbench__text-preset[data-selected="true"] {
979
+ background: color-mix(in srgb, var(--cfw-accent) 8%, var(--cfw-surface));
980
+ border-color: color-mix(in srgb, var(--cfw-accent) 28%, var(--cfw-line));
981
+ box-shadow: 0 1px 3px rgb(24 34 44 / 5%);
982
+ }
983
+
984
+ .customforge-workbench__text-preview {
985
+ align-self: center;
986
+ overflow: hidden;
987
+ font-size: 21px;
988
+ line-height: 28px;
989
+ text-align: center;
990
+ text-overflow: ellipsis;
991
+ white-space: nowrap;
992
+ }
993
+
994
+ .customforge-workbench__text-preset strong {
995
+ align-self: end;
996
+ overflow: hidden;
997
+ color: var(--cfw-muted);
998
+ font-family: var(--cfw-font-family);
999
+ font-size: 10px;
1000
+ font-weight: 650;
1001
+ text-overflow: ellipsis;
1002
+ white-space: nowrap;
1003
+ }
1004
+
1005
+ .customforge-workbench__color-field {
1006
+ justify-content: space-between;
1007
+ margin-top: 16px;
1008
+ padding-top: 14px;
1009
+ border-top: 1px solid var(--cfw-line);
1010
+ }
1011
+
1012
+ .customforge-workbench__color-field input {
1013
+ width: 42px;
1014
+ height: 30px;
1015
+ padding: 2px;
1016
+ background: var(--cfw-surface);
1017
+ border: 1px solid var(--cfw-line);
1018
+ border-radius: var(--cfw-control-radius);
1019
+ cursor: pointer;
1020
+ }
1021
+
1022
+ .customforge-workbench__tabs {
1023
+ gap: 2px;
1024
+ width: max-content;
1025
+ max-width: 100%;
1026
+ margin-bottom: 16px;
1027
+ padding: 3px;
1028
+ overflow-x: auto;
1029
+ background: var(--cfw-surface-muted);
1030
+ border: 0;
1031
+ border-radius: 8px;
1032
+ }
1033
+
1034
+ .customforge-workbench__tabs button {
1035
+ flex: 0 0 auto;
1036
+ min-height: 32px;
1037
+ padding: 0 12px;
1038
+ color: var(--cfw-muted);
1039
+ background: transparent;
1040
+ border: 0;
1041
+ border-radius: 6px;
1042
+ cursor: pointer;
1043
+ font-size: 11px;
1044
+ font-weight: 620;
1045
+ white-space: nowrap;
1046
+ }
1047
+
1048
+ .customforge-workbench__tabs button[data-selected="true"] {
1049
+ color: var(--cfw-ink);
1050
+ background: var(--cfw-surface);
1051
+ box-shadow: 0 1px 3px rgb(17 24 30 / 9%);
1052
+ }
1053
+
1054
+ .customforge-workbench__tab-panel {
1055
+ min-height: 240px;
1056
+ }
1057
+
1058
+ .customforge-workbench__upload-field {
1059
+ position: relative;
1060
+ justify-content: center;
1061
+ flex-direction: column;
1062
+ width: 100%;
1063
+ min-height: 240px;
1064
+ gap: 7px;
1065
+ padding: 18px;
1066
+ overflow: hidden;
1067
+ color: var(--cfw-ink);
1068
+ background: var(--cfw-surface-muted);
1069
+ border: 1px dashed color-mix(in srgb, var(--cfw-muted) 38%, var(--cfw-line));
1070
+ border-radius: 8px;
1071
+ cursor: pointer;
1072
+ transition: background-color 140ms ease, border-color 140ms ease;
1073
+ }
1074
+
1075
+ .customforge-workbench__upload-field:hover {
1076
+ background: color-mix(in srgb, var(--cfw-accent) 4%, var(--cfw-surface));
1077
+ border-color: color-mix(in srgb, var(--cfw-accent) 42%, var(--cfw-line));
1078
+ }
1079
+
1080
+ .customforge-workbench__upload-icon {
1081
+ display: grid;
1082
+ width: 36px;
1083
+ height: 36px;
1084
+ margin-bottom: 2px;
1085
+ color: var(--cfw-accent);
1086
+ background: color-mix(in srgb, var(--cfw-accent) 9%, var(--cfw-surface));
1087
+ border: 0;
1088
+ border-radius: 8px;
1089
+ place-items: center;
1090
+ }
1091
+
1092
+ .customforge-workbench__upload-field strong {
1093
+ font-size: 12px;
1094
+ }
1095
+
1096
+ .customforge-workbench__upload-field > span:not(.customforge-workbench__upload-icon) {
1097
+ max-width: 100%;
1098
+ overflow: hidden;
1099
+ color: var(--cfw-muted);
1100
+ font-size: 10px;
1101
+ text-overflow: ellipsis;
1102
+ white-space: nowrap;
1103
+ }
1104
+
1105
+ .customforge-workbench__upload-field img {
1106
+ position: absolute;
1107
+ inset: 12px;
1108
+ width: calc(100% - 24px);
1109
+ height: calc(100% - 24px);
1110
+ object-fit: contain;
1111
+ background: var(--cfw-surface);
1112
+ }
1113
+
1114
+ .customforge-workbench__preset-grid--assets {
1115
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1116
+ }
1117
+
1118
+ .customforge-workbench__asset-preset {
1119
+ display: grid;
1120
+ min-width: 0;
1121
+ padding: 0;
1122
+ overflow: hidden;
1123
+ color: var(--cfw-ink);
1124
+ background: var(--cfw-surface);
1125
+ border: 1px solid var(--cfw-line);
1126
+ border-radius: var(--cfw-control-radius);
1127
+ cursor: pointer;
1128
+ text-align: left;
1129
+ transition: background-color 140ms ease, border-color 140ms ease,
1130
+ box-shadow 140ms ease;
1131
+ }
1132
+
1133
+ .customforge-workbench__asset-preset:hover {
1134
+ border-color: color-mix(in srgb, var(--cfw-accent) 34%, var(--cfw-line));
1135
+ box-shadow: 0 2px 8px rgb(24 34 44 / 6%);
1136
+ }
1137
+
1138
+ .customforge-workbench__asset-preset[data-selected="true"] {
1139
+ background: color-mix(in srgb, var(--cfw-accent) 6%, var(--cfw-surface));
1140
+ border-color: color-mix(in srgb, var(--cfw-accent) 28%, var(--cfw-line));
1141
+ box-shadow: 0 1px 3px rgb(24 34 44 / 5%);
1142
+ }
1143
+
1144
+ .customforge-workbench__asset-preset img {
1145
+ display: block;
1146
+ width: 100%;
1147
+ aspect-ratio: 4 / 3;
1148
+ object-fit: cover;
1149
+ background: var(--cfw-stage);
1150
+ border-bottom: 1px solid var(--cfw-line);
1151
+ }
1152
+
1153
+ .customforge-workbench__asset-preset strong {
1154
+ overflow: hidden;
1155
+ padding: 9px 10px;
1156
+ font-size: 10px;
1157
+ font-weight: 620;
1158
+ text-overflow: ellipsis;
1159
+ white-space: nowrap;
1160
+ }
1161
+
1162
+ .customforge-workbench__preset-empty {
1163
+ display: grid;
1164
+ min-height: 220px;
1165
+ margin: 0;
1166
+ color: var(--cfw-muted);
1167
+ background: var(--cfw-surface-muted);
1168
+ border: 1px dashed var(--cfw-line);
1169
+ border-radius: 8px;
1170
+ font-size: 11px;
1171
+ place-items: center;
1172
+ }
1173
+
1174
+ .customforge-workbench__form-fields {
1175
+ display: grid;
1176
+ gap: 14px;
1177
+ }
1178
+
1179
+ .customforge-workbench__input-shell {
1180
+ position: relative;
1181
+ }
1182
+
1183
+ .customforge-workbench__input-shell svg,
1184
+ .customforge-workbench__input-shell img {
1185
+ position: absolute;
1186
+ left: 11px;
1187
+ color: var(--cfw-muted);
1188
+ pointer-events: none;
1189
+ }
1190
+
1191
+ .customforge-workbench__input-shell input {
1192
+ padding-left: 38px !important;
1193
+ }
1194
+
1195
+ .customforge-workbench__check-field {
1196
+ gap: 8px;
1197
+ color: color-mix(in srgb, var(--cfw-ink) 80%, var(--cfw-muted));
1198
+ font-size: 12px;
1199
+ font-weight: 600;
1200
+ }
1201
+
1202
+ .customforge-workbench__check-field input {
1203
+ width: 16px;
1204
+ height: 16px;
1205
+ margin: 0;
1206
+ accent-color: var(--cfw-accent);
1207
+ }
1208
+
1209
+ .customforge-workbench__dialog-actions {
1210
+ justify-content: flex-end;
1211
+ gap: 8px;
1212
+ padding: 13px 18px;
1213
+ background: var(--cfw-surface);
1214
+ border-top: 1px solid var(--cfw-line);
1215
+ }
1216
+
1217
+ @container customforge-workbench (max-width: 1120px) {
1218
+ .customforge-workbench__workspace {
1219
+ grid-template-columns: 1fr;
1220
+ overflow: auto;
1221
+ }
1222
+
1223
+ .customforge-workbench__panel {
1224
+ min-height: 540px;
1225
+ }
1226
+
1227
+ .customforge-workbench__panel--editor {
1228
+ border-right: 0;
1229
+ border-bottom: 1px solid var(--cfw-line);
1230
+ }
1231
+ }
1232
+
1233
+ @container customforge-workbench (max-width: 720px) {
1234
+ .customforge-workbench__topbar {
1235
+ gap: 8px;
1236
+ padding: 8px 9px;
1237
+ }
1238
+
1239
+ .customforge-workbench__brand-logo {
1240
+ flex-basis: 36px;
1241
+ width: 36px;
1242
+ height: 36px;
1243
+ }
1244
+
1245
+ .customforge-workbench__brand-copy span {
1246
+ display: none;
1247
+ }
1248
+
1249
+ .customforge-workbench__brand-copy strong {
1250
+ max-width: 110px;
1251
+ }
1252
+
1253
+ .customforge-workbench__global-actions {
1254
+ gap: 4px;
1255
+ }
1256
+
1257
+ .customforge-workbench__topbar .customforge-workbench__button {
1258
+ padding: 0 8px;
1259
+ }
1260
+
1261
+ .customforge-workbench__resolution {
1262
+ display: none;
1263
+ }
1264
+
1265
+ .customforge-workbench__editor-body {
1266
+ grid-template-columns: minmax(0, 1fr);
1267
+ grid-template-rows: minmax(340px, 1fr) minmax(180px, auto);
1268
+ }
1269
+
1270
+ .customforge-workbench__layers {
1271
+ max-height: 240px;
1272
+ border-top: 1px solid var(--cfw-line);
1273
+ border-left: 0;
1274
+ }
1275
+
1276
+ .customforge-workbench__layer-actions {
1277
+ opacity: 1;
1278
+ }
1279
+
1280
+ .customforge-workbench__dialog-actions {
1281
+ align-items: stretch;
1282
+ flex-direction: column-reverse;
1283
+ }
1284
+
1285
+ .customforge-workbench__preset-grid--assets {
1286
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1287
+ }
1288
+ }
1289
+
1290
+ @container customforge-workbench (max-width: 480px) {
1291
+ .customforge-workbench__topbar {
1292
+ align-items: stretch;
1293
+ flex-direction: column;
1294
+ }
1295
+
1296
+ .customforge-workbench__global-actions {
1297
+ display: grid;
1298
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1299
+ }
1300
+
1301
+ .customforge-workbench__brand-copy strong {
1302
+ max-width: 220px;
1303
+ }
1304
+
1305
+ .customforge-workbench__preset-grid--text,
1306
+ .customforge-workbench__preset-grid--assets {
1307
+ grid-template-columns: minmax(0, 1fr);
1308
+ }
1309
+
1310
+ .customforge-workbench__tabs {
1311
+ width: 100%;
1312
+ }
1313
+
1314
+ .customforge-workbench__tabs button {
1315
+ flex: 1 0 auto;
1316
+ }
1317
+ }
1318
+
1319
+ @media (prefers-reduced-motion: reduce) {
1320
+ .customforge-workbench__layer-item,
1321
+ .customforge-workbench__layer-item[data-selected="true"],
1322
+ .customforge-workbench__layer-item[data-selected="true"]::before,
1323
+ .customforge-workbench__dialog[open],
1324
+ .customforge-workbench__dialog[open][data-closing="true"],
1325
+ .customforge-workbench__dialog[open]::backdrop,
1326
+ .customforge-workbench__dialog[open][data-closing="true"]::backdrop {
1327
+ transition: none;
1328
+ animation: none;
1329
+ }
1330
+ }
12
1331
  /*$vite$:1*/