@thanhthbm/scene-editor 0.1.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.
Files changed (136) hide show
  1. package/README.md +169 -0
  2. package/dist/index.css +921 -0
  3. package/dist/index.js +14076 -0
  4. package/package.json +49 -0
  5. package/src/editor/css/main.css +1030 -0
  6. package/src/editor/js/Animation.js +618 -0
  7. package/src/editor/js/AnimationResizer.js +73 -0
  8. package/src/editor/js/Command.js +40 -0
  9. package/src/editor/js/Config.js +86 -0
  10. package/src/editor/js/Editor.js +1006 -0
  11. package/src/editor/js/EditorControls.js +489 -0
  12. package/src/editor/js/GLTFImportDialog.js +112 -0
  13. package/src/editor/js/History.js +321 -0
  14. package/src/editor/js/Loader.js +1162 -0
  15. package/src/editor/js/LoaderUtils.js +90 -0
  16. package/src/editor/js/Menubar.Add.js +559 -0
  17. package/src/editor/js/Menubar.Edit.js +155 -0
  18. package/src/editor/js/Menubar.File.js +585 -0
  19. package/src/editor/js/Menubar.Help.js +73 -0
  20. package/src/editor/js/Menubar.Render.js +858 -0
  21. package/src/editor/js/Menubar.Status.js +51 -0
  22. package/src/editor/js/Menubar.View.js +193 -0
  23. package/src/editor/js/Menubar.js +29 -0
  24. package/src/editor/js/Player.js +53 -0
  25. package/src/editor/js/Resizer.js +65 -0
  26. package/src/editor/js/Script.js +532 -0
  27. package/src/editor/js/Selector.js +129 -0
  28. package/src/editor/js/Sidebar.Geometry.BoxGeometry.js +121 -0
  29. package/src/editor/js/Sidebar.Geometry.BufferGeometry.js +124 -0
  30. package/src/editor/js/Sidebar.Geometry.CapsuleGeometry.js +109 -0
  31. package/src/editor/js/Sidebar.Geometry.CircleGeometry.js +97 -0
  32. package/src/editor/js/Sidebar.Geometry.CylinderGeometry.js +121 -0
  33. package/src/editor/js/Sidebar.Geometry.DodecahedronGeometry.js +73 -0
  34. package/src/editor/js/Sidebar.Geometry.ExtrudeGeometry.js +196 -0
  35. package/src/editor/js/Sidebar.Geometry.IcosahedronGeometry.js +73 -0
  36. package/src/editor/js/Sidebar.Geometry.LatheGeometry.js +98 -0
  37. package/src/editor/js/Sidebar.Geometry.Modifiers.js +73 -0
  38. package/src/editor/js/Sidebar.Geometry.OctahedronGeometry.js +74 -0
  39. package/src/editor/js/Sidebar.Geometry.PlaneGeometry.js +97 -0
  40. package/src/editor/js/Sidebar.Geometry.RingGeometry.js +121 -0
  41. package/src/editor/js/Sidebar.Geometry.ShapeGeometry.js +76 -0
  42. package/src/editor/js/Sidebar.Geometry.SphereGeometry.js +133 -0
  43. package/src/editor/js/Sidebar.Geometry.TetrahedronGeometry.js +74 -0
  44. package/src/editor/js/Sidebar.Geometry.TextGeometry.js +136 -0
  45. package/src/editor/js/Sidebar.Geometry.TorusGeometry.js +109 -0
  46. package/src/editor/js/Sidebar.Geometry.TorusKnotGeometry.js +121 -0
  47. package/src/editor/js/Sidebar.Geometry.TubeGeometry.js +135 -0
  48. package/src/editor/js/Sidebar.Geometry.js +471 -0
  49. package/src/editor/js/Sidebar.Material.BooleanProperty.js +60 -0
  50. package/src/editor/js/Sidebar.Material.ColorProperty.js +87 -0
  51. package/src/editor/js/Sidebar.Material.ConstantProperty.js +62 -0
  52. package/src/editor/js/Sidebar.Material.MapProperty.js +277 -0
  53. package/src/editor/js/Sidebar.Material.NumberProperty.js +60 -0
  54. package/src/editor/js/Sidebar.Material.Program.js +73 -0
  55. package/src/editor/js/Sidebar.Material.RangeValueProperty.js +63 -0
  56. package/src/editor/js/Sidebar.Material.js +751 -0
  57. package/src/editor/js/Sidebar.Object.js +892 -0
  58. package/src/editor/js/Sidebar.Project.App.js +218 -0
  59. package/src/editor/js/Sidebar.Project.Materials.js +82 -0
  60. package/src/editor/js/Sidebar.Project.Renderer.js +193 -0
  61. package/src/editor/js/Sidebar.Project.Resources.js +242 -0
  62. package/src/editor/js/Sidebar.Project.js +21 -0
  63. package/src/editor/js/Sidebar.Properties.js +73 -0
  64. package/src/editor/js/Sidebar.Scene.js +643 -0
  65. package/src/editor/js/Sidebar.Script.js +129 -0
  66. package/src/editor/js/Sidebar.Settings.History.js +146 -0
  67. package/src/editor/js/Sidebar.Settings.Shortcuts.js +198 -0
  68. package/src/editor/js/Sidebar.Settings.js +58 -0
  69. package/src/editor/js/Sidebar.js +41 -0
  70. package/src/editor/js/Storage.js +98 -0
  71. package/src/editor/js/Strings.js +2718 -0
  72. package/src/editor/js/TextureParametersDialog.js +293 -0
  73. package/src/editor/js/Toolbar.js +75 -0
  74. package/src/editor/js/Viewport.Controls.js +98 -0
  75. package/src/editor/js/Viewport.Info.js +144 -0
  76. package/src/editor/js/Viewport.Pathtracer.js +27 -0
  77. package/src/editor/js/Viewport.ViewHelper.js +41 -0
  78. package/src/editor/js/Viewport.XR.js +7 -0
  79. package/src/editor/js/Viewport.js +982 -0
  80. package/src/editor/js/commands/AddObjectCommand.js +68 -0
  81. package/src/editor/js/commands/AddScriptCommand.js +75 -0
  82. package/src/editor/js/commands/Commands.js +24 -0
  83. package/src/editor/js/commands/MoveObjectCommand.js +117 -0
  84. package/src/editor/js/commands/MultiCmdsCommand.js +85 -0
  85. package/src/editor/js/commands/RemoveObjectCommand.js +88 -0
  86. package/src/editor/js/commands/RemoveScriptCommand.js +81 -0
  87. package/src/editor/js/commands/SetColorCommand.js +73 -0
  88. package/src/editor/js/commands/SetGeometryCommand.js +86 -0
  89. package/src/editor/js/commands/SetGeometryValueCommand.js +70 -0
  90. package/src/editor/js/commands/SetMaterialColorCommand.js +87 -0
  91. package/src/editor/js/commands/SetMaterialCommand.js +80 -0
  92. package/src/editor/js/commands/SetMaterialMapCommand.js +144 -0
  93. package/src/editor/js/commands/SetMaterialRangeCommand.js +92 -0
  94. package/src/editor/js/commands/SetMaterialValueCommand.js +91 -0
  95. package/src/editor/js/commands/SetMaterialVectorCommand.js +88 -0
  96. package/src/editor/js/commands/SetPositionCommand.js +84 -0
  97. package/src/editor/js/commands/SetRotationCommand.js +84 -0
  98. package/src/editor/js/commands/SetScaleCommand.js +84 -0
  99. package/src/editor/js/commands/SetSceneCommand.js +104 -0
  100. package/src/editor/js/commands/SetScriptValueCommand.js +80 -0
  101. package/src/editor/js/commands/SetShadowValueCommand.js +73 -0
  102. package/src/editor/js/commands/SetTextureParametersCommand.js +143 -0
  103. package/src/editor/js/commands/SetUuidCommand.js +70 -0
  104. package/src/editor/js/commands/SetValueCommand.js +75 -0
  105. package/src/editor/js/libs/acorn/acorn.js +3236 -0
  106. package/src/editor/js/libs/acorn/acorn_loose.js +1299 -0
  107. package/src/editor/js/libs/acorn/walk.js +344 -0
  108. package/src/editor/js/libs/app/index.html +51 -0
  109. package/src/editor/js/libs/app.js +14 -0
  110. package/src/editor/js/libs/codemirror/addon/dialog.css +32 -0
  111. package/src/editor/js/libs/codemirror/addon/dialog.js +163 -0
  112. package/src/editor/js/libs/codemirror/addon/show-hint.css +36 -0
  113. package/src/editor/js/libs/codemirror/addon/show-hint.js +529 -0
  114. package/src/editor/js/libs/codemirror/addon/tern.css +87 -0
  115. package/src/editor/js/libs/codemirror/addon/tern.js +750 -0
  116. package/src/editor/js/libs/codemirror/codemirror.css +344 -0
  117. package/src/editor/js/libs/codemirror/codemirror.js +9849 -0
  118. package/src/editor/js/libs/codemirror/mode/glsl.js +233 -0
  119. package/src/editor/js/libs/codemirror/mode/javascript.js +959 -0
  120. package/src/editor/js/libs/codemirror/theme/monokai.css +41 -0
  121. package/src/editor/js/libs/esprima.js +6401 -0
  122. package/src/editor/js/libs/jsonlint.js +453 -0
  123. package/src/editor/js/libs/signals.min.js +14 -0
  124. package/src/editor/js/libs/tern-threejs/build-defs.js +233 -0
  125. package/src/editor/js/libs/ternjs/comment.js +87 -0
  126. package/src/editor/js/libs/ternjs/def.js +588 -0
  127. package/src/editor/js/libs/ternjs/doc_comment.js +401 -0
  128. package/src/editor/js/libs/ternjs/infer.js +1635 -0
  129. package/src/editor/js/libs/ternjs/polyfill.js +80 -0
  130. package/src/editor/js/libs/ternjs/signal.js +26 -0
  131. package/src/editor/js/libs/ternjs/tern.js +993 -0
  132. package/src/editor/js/libs/ui.js +1305 -0
  133. package/src/editor/js/libs/ui.three.js +946 -0
  134. package/src/events.js +273 -0
  135. package/src/index.js +284 -0
  136. package/src/presets/machines.js +239 -0
package/dist/index.css ADDED
@@ -0,0 +1,921 @@
1
+ :root {
2
+ color-scheme: light dark;
3
+ }
4
+
5
+ [hidden] {
6
+ display: none !important;
7
+ }
8
+
9
+ body {
10
+ margin: 0;
11
+ font-family: Helvetica, Arial, sans-serif;
12
+ font-size: 14px;
13
+ overflow: hidden;
14
+ }
15
+
16
+ hr {
17
+ border: 0;
18
+ border-top: 1px solid #ccc;
19
+ }
20
+
21
+ .Button {
22
+ position: relative;
23
+ }
24
+
25
+ .Input {
26
+ vertical-align: middle;
27
+ }
28
+
29
+ .Input[type="color"]::-webkit-color-swatch-wrapper {
30
+ padding: 0;
31
+ }
32
+
33
+ .Input[type="color"]::-webkit-color-swatch {
34
+ border: none;
35
+ }
36
+
37
+ .TextArea {
38
+ tab-size: 4;
39
+ white-space: pre;
40
+ word-wrap: normal;
41
+ }
42
+
43
+ .TextArea.success {
44
+ border-color: #8b8 !important;
45
+ }
46
+
47
+ .TextArea.fail {
48
+ background-color: #ff00000d;
49
+ border-color: red !important;
50
+ }
51
+
52
+ .TextArea, .Input {
53
+ outline: none;
54
+ }
55
+
56
+ .Panel {
57
+ -webkit-user-select: none;
58
+ user-select: none;
59
+ -o-user-select: none;
60
+ }
61
+
62
+ .TabbedPanel {
63
+ -webkit-user-select: none;
64
+ user-select: none;
65
+ -o-user-select: none;
66
+ width: 100%;
67
+ min-width: 335px;
68
+ display: block;
69
+ position: relative;
70
+ }
71
+
72
+ .TabbedPanel .Tabs {
73
+ z-index: 1;
74
+ white-space: pre;
75
+ width: 100%;
76
+ display: block;
77
+ position: relative;
78
+ overflow: auto hidden;
79
+ }
80
+
81
+ .TabbedPanel .Tabs::-webkit-scrollbar {
82
+ background: #eee;
83
+ height: 5px;
84
+ }
85
+
86
+ .TabbedPanel .Tabs::-webkit-scrollbar-thumb {
87
+ background: #08f3;
88
+ }
89
+
90
+ .TabbedPanel .Tabs:hover::-webkit-scrollbar-thumb {
91
+ cursor: ew-resize;
92
+ background: #08f;
93
+ }
94
+
95
+ .TabbedPanel .Tabs .Tab {
96
+ text-transform: uppercase;
97
+ padding: 10px 9px;
98
+ }
99
+
100
+ .TabbedPanel .Panels {
101
+ width: 100%;
102
+ display: block;
103
+ position: absolute;
104
+ top: 36px;
105
+ }
106
+
107
+ .Listbox {
108
+ color: #444;
109
+ cursor: default;
110
+ background-color: #fff;
111
+ width: 100%;
112
+ min-height: 180px;
113
+ padding: 0;
114
+ font-size: 12px;
115
+ overflow: auto;
116
+ }
117
+
118
+ .Listbox .ListboxItem {
119
+ color: #666;
120
+ white-space: nowrap;
121
+ padding: 4px;
122
+ }
123
+
124
+ .Listbox .ListboxItem:hover {
125
+ background-color: #00000005;
126
+ }
127
+
128
+ .Listbox .ListboxItem.active {
129
+ background-color: #0000000a;
130
+ }
131
+
132
+ .CodeMirror {
133
+ top: 37px;
134
+ width: 100% !important;
135
+ height: calc(100% - 37px) !important;
136
+ position: absolute !important;
137
+ }
138
+
139
+ .CodeMirror .errorLine {
140
+ background: #ff000040;
141
+ }
142
+
143
+ .CodeMirror .esprima-error {
144
+ color: red;
145
+ text-align: right;
146
+ padding: 0 20px;
147
+ }
148
+
149
+ #outliner .opener {
150
+ vertical-align: top;
151
+ text-align: center;
152
+ width: 14px;
153
+ height: 14px;
154
+ margin: 0 4px;
155
+ display: inline-block;
156
+ }
157
+
158
+ #outliner .opener.open:after {
159
+ content: "−";
160
+ }
161
+
162
+ #outliner .opener.closed:after {
163
+ content: "+";
164
+ }
165
+
166
+ #outliner .option {
167
+ border: 1px solid #0000;
168
+ }
169
+
170
+ #outliner .option.drag {
171
+ border: 1px dashed #999;
172
+ }
173
+
174
+ #outliner .option.dragTop {
175
+ border-top: 1px dashed #999;
176
+ }
177
+
178
+ #outliner .option.dragBottom {
179
+ border-bottom: 1px dashed #999;
180
+ }
181
+
182
+ #outliner .type {
183
+ color: #ddd;
184
+ text-align: center;
185
+ width: 14px;
186
+ height: 14px;
187
+ display: inline-block;
188
+ }
189
+
190
+ #outliner .type:after {
191
+ content: "●";
192
+ }
193
+
194
+ #outliner .Scene {
195
+ color: #88d;
196
+ }
197
+
198
+ #outliner .Camera {
199
+ color: #d88;
200
+ }
201
+
202
+ #outliner .Light {
203
+ color: #dd8;
204
+ }
205
+
206
+ #outliner .Object3D {
207
+ color: #aae;
208
+ }
209
+
210
+ #outliner .Mesh {
211
+ color: #88e;
212
+ }
213
+
214
+ #outliner .Line, #outliner .LineSegments {
215
+ color: #8e8;
216
+ }
217
+
218
+ #outliner .Points {
219
+ color: #e88;
220
+ }
221
+
222
+ #outliner .Geometry {
223
+ color: #aea;
224
+ }
225
+
226
+ #outliner .Material {
227
+ color: #eae;
228
+ }
229
+
230
+ #outliner .Script:after {
231
+ content: "◎";
232
+ }
233
+
234
+ .Button {
235
+ color: #555;
236
+ text-transform: uppercase;
237
+ cursor: pointer;
238
+ background-color: #ddd;
239
+ border: 0;
240
+ outline: none;
241
+ margin: 0;
242
+ padding: 5px 8px;
243
+ font-size: 12px;
244
+ }
245
+
246
+ .Button:hover, .Button.selected {
247
+ background-color: #fff;
248
+ }
249
+
250
+ .Input, .TextArea {
251
+ color: #444;
252
+ border: 1px solid #0000;
253
+ }
254
+
255
+ .Input.Number {
256
+ border: 0;
257
+ padding: 2px;
258
+ font-size: 12px;
259
+ color: #08f !important;
260
+ }
261
+
262
+ .Select {
263
+ color: #666;
264
+ text-transform: uppercase;
265
+ cursor: pointer;
266
+ background-color: #ddd;
267
+ border: 3px solid #ddd;
268
+ border-radius: 4px;
269
+ outline: none;
270
+ }
271
+
272
+ .Select:hover {
273
+ background-color: #fff;
274
+ }
275
+
276
+ #resizer {
277
+ z-index: 2;
278
+ cursor: col-resize;
279
+ width: 5px;
280
+ position: absolute;
281
+ top: 36px;
282
+ bottom: 0;
283
+ right: 350px;
284
+ transform: translateX(2.5px);
285
+ }
286
+
287
+ #resizer:hover {
288
+ background-color: #08f8;
289
+ transition-property: background-color;
290
+ transition-duration: .2s;
291
+ transition-delay: .1s;
292
+ }
293
+
294
+ #resizer:active {
295
+ background-color: #08f;
296
+ }
297
+
298
+ #viewport {
299
+ position: absolute;
300
+ inset: 36px 350px 36px 0;
301
+ }
302
+
303
+ #viewport .Text {
304
+ text-shadow: 1px 1px #00000040;
305
+ pointer-events: none;
306
+ }
307
+
308
+ #animation {
309
+ background: #eee;
310
+ border-top: 1px solid #ccc;
311
+ flex-direction: row;
312
+ height: 36px;
313
+ display: none;
314
+ position: absolute;
315
+ bottom: 0;
316
+ left: 0;
317
+ right: 350px;
318
+ }
319
+
320
+ #animation .Panel {
321
+ color: #888;
322
+ }
323
+
324
+ #animation input[type="range"] {
325
+ accent-color: #08f;
326
+ }
327
+
328
+ #animation-resizer {
329
+ cursor: row-resize;
330
+ z-index: 2;
331
+ height: 5px;
332
+ position: absolute;
333
+ bottom: 36px;
334
+ left: 0;
335
+ right: 350px;
336
+ transform: translateY(2.5px);
337
+ }
338
+
339
+ #animation-resizer:hover {
340
+ background-color: #08f8;
341
+ transition-property: background-color;
342
+ transition-duration: .2s;
343
+ transition-delay: .1s;
344
+ }
345
+
346
+ #animation-resizer:active {
347
+ background-color: #08f;
348
+ }
349
+
350
+ #script {
351
+ opacity: .9;
352
+ position: absolute;
353
+ inset: 36px 350px 0 0;
354
+ }
355
+
356
+ #player {
357
+ position: absolute;
358
+ inset: 36px 350px 0 0;
359
+ }
360
+
361
+ #menubar {
362
+ background: #eee;
363
+ width: 100%;
364
+ height: 36px;
365
+ margin: 0;
366
+ padding: 0;
367
+ position: absolute;
368
+ top: 0;
369
+ right: 0;
370
+ }
371
+
372
+ #menubar .menu {
373
+ float: left;
374
+ cursor: pointer;
375
+ padding-right: 8px;
376
+ }
377
+
378
+ #menubar .menu.right {
379
+ float: right;
380
+ cursor: auto;
381
+ text-align: right;
382
+ padding-right: 0;
383
+ }
384
+
385
+ #menubar .menu .title {
386
+ color: #888;
387
+ margin: 0;
388
+ padding: 10px;
389
+ line-height: 16px;
390
+ display: inline-block;
391
+ }
392
+
393
+ #menubar .menu .key {
394
+ color: #ccc;
395
+ pointer-events: none;
396
+ border: 1px solid #ccc;
397
+ border-radius: 4px;
398
+ padding: 2px 4px;
399
+ font-size: 9px;
400
+ line-height: normal;
401
+ position: absolute;
402
+ right: 10px;
403
+ }
404
+
405
+ #menubar .menu .options {
406
+ z-index: 1;
407
+ background: #eee;
408
+ min-width: 150px;
409
+ max-height: calc(100vh - 80px);
410
+ padding: 5px 0;
411
+ display: none;
412
+ position: fixed;
413
+ overflow: auto;
414
+ }
415
+
416
+ #menubar .menu:hover .options {
417
+ display: block;
418
+ box-shadow: 0 10px 10px -5px #0003;
419
+ }
420
+
421
+ #menubar .menu .options hr {
422
+ border-color: #ddd;
423
+ }
424
+
425
+ #menubar .menu .options .option {
426
+ color: #666;
427
+ background-color: #0000;
428
+ padding: 5px 10px;
429
+ line-height: 25px;
430
+ margin: 0 !important;
431
+ }
432
+
433
+ #menubar .menu .options .option:hover {
434
+ color: #fff;
435
+ background-color: #08f;
436
+ }
437
+
438
+ #menubar .menu .options .option:not(.submenu-title):active {
439
+ color: #666;
440
+ background: none;
441
+ }
442
+
443
+ #menubar .menu .options .option.toggle:before {
444
+ content: " ";
445
+ width: 16px;
446
+ display: inline-block;
447
+ }
448
+
449
+ #menubar .menu .options .option.toggle-on:before {
450
+ content: "✔";
451
+ font-size: 12px;
452
+ }
453
+
454
+ #menubar .submenu-title:after {
455
+ content: "⏵";
456
+ float: right;
457
+ }
458
+
459
+ #menubar .menu .options .inactive {
460
+ color: #bbb;
461
+ cursor: not-allowed;
462
+ background-color: #0000;
463
+ padding: 5px 10px;
464
+ line-height: 25px;
465
+ margin: 0 !important;
466
+ }
467
+
468
+ #sidebar {
469
+ background: #eee;
470
+ width: 350px;
471
+ position: absolute;
472
+ top: 36px;
473
+ bottom: 0;
474
+ right: 0;
475
+ overflow: hidden auto;
476
+ }
477
+
478
+ #sidebar .Panel {
479
+ color: #888;
480
+ border-top: 1px solid #ccc;
481
+ padding: 10px;
482
+ }
483
+
484
+ #sidebar .Panel.collapsed {
485
+ margin-bottom: 0;
486
+ }
487
+
488
+ #sidebar .Row {
489
+ align-items: center;
490
+ min-height: 24px;
491
+ margin-bottom: 10px;
492
+ display: flex;
493
+ }
494
+
495
+ #sidebar .Row .Label {
496
+ width: 120px;
497
+ }
498
+
499
+ #tabs {
500
+ background-color: #ddd;
501
+ border-top: 1px solid #ccc;
502
+ }
503
+
504
+ #tabs span {
505
+ color: #aaa;
506
+ border-right: 1px solid #ccc;
507
+ padding: 10px;
508
+ }
509
+
510
+ #tabs span.selected {
511
+ color: #888;
512
+ background-color: #eee;
513
+ }
514
+
515
+ #toolbar {
516
+ text-align: center;
517
+ background: #eee;
518
+ border: 3px solid #eee;
519
+ border-radius: 6px;
520
+ align-items: center;
521
+ gap: 2px;
522
+ height: 32px;
523
+ display: flex;
524
+ position: absolute;
525
+ bottom: 56px;
526
+ left: calc(50% - 175px);
527
+ overflow: hidden;
528
+ transform: translateX(-50%);
529
+ }
530
+
531
+ #toolbar .Button, #toolbar .Input {
532
+ border-radius: 4px;
533
+ justify-content: center;
534
+ align-items: center;
535
+ height: 32px;
536
+ display: flex;
537
+ }
538
+
539
+ #toolbar .Button img {
540
+ opacity: .5;
541
+ width: 16px;
542
+ }
543
+
544
+ .Outliner {
545
+ color: #444;
546
+ cursor: default;
547
+ resize: vertical;
548
+ background-color: #fff;
549
+ width: 100%;
550
+ height: 180px;
551
+ padding: 0;
552
+ font-size: 12px;
553
+ overflow: auto;
554
+ outline: none !important;
555
+ }
556
+
557
+ .Outliner .option {
558
+ color: #666;
559
+ white-space: nowrap;
560
+ padding: 4px;
561
+ }
562
+
563
+ .Outliner .option:hover {
564
+ background-color: #00000005;
565
+ }
566
+
567
+ .Outliner .option.active {
568
+ background-color: #0000000a;
569
+ }
570
+
571
+ .TabbedPanel .Tabs {
572
+ background-color: #ddd;
573
+ border-top: 1px solid #ccc;
574
+ }
575
+
576
+ .TabbedPanel .Tab {
577
+ color: #aaa;
578
+ border-right: 1px solid #ccc;
579
+ }
580
+
581
+ .TabbedPanel .Tab.selected {
582
+ color: #888;
583
+ background-color: #eee;
584
+ }
585
+
586
+ .Listbox {
587
+ color: #444;
588
+ background-color: #fff;
589
+ }
590
+
591
+ .Panel {
592
+ color: #888;
593
+ }
594
+
595
+ @media (width <= 600px) {
596
+ #resizer, #animation-resizer {
597
+ display: none;
598
+ }
599
+
600
+ #menubar .menu .options {
601
+ max-height: calc(100% - 80px);
602
+ }
603
+
604
+ #menubar .menu.right {
605
+ display: none;
606
+ }
607
+
608
+ #viewport, #script, #player {
609
+ height: calc(100% - 356px);
610
+ top: 36px;
611
+ left: 0;
612
+ right: 0;
613
+ }
614
+
615
+ #sidebar {
616
+ width: 100%;
617
+ top: calc(100% - 320px);
618
+ bottom: 0;
619
+ left: 0;
620
+ }
621
+
622
+ #toolbar {
623
+ bottom: 330px;
624
+ left: 50%;
625
+ transform: translateX(-50%);
626
+ }
627
+
628
+ #animation {
629
+ display: none !important;
630
+ }
631
+ }
632
+
633
+ @media (prefers-color-scheme: dark) {
634
+ .Button {
635
+ color: #aaa;
636
+ background-color: #222;
637
+ }
638
+
639
+ .Button:hover {
640
+ color: #ccc;
641
+ background-color: #444;
642
+ }
643
+
644
+ .Button.selected {
645
+ color: #fff;
646
+ background-color: #08f;
647
+ }
648
+
649
+ .Input, .TextArea {
650
+ color: #888;
651
+ background-color: #222;
652
+ border: 1px solid #0000;
653
+ }
654
+
655
+ .Select {
656
+ color: #aaa;
657
+ background-color: #222;
658
+ border-color: #222;
659
+ }
660
+
661
+ .Select:hover {
662
+ color: #ccc;
663
+ background-color: #444;
664
+ }
665
+
666
+ #menubar {
667
+ background: #111;
668
+ }
669
+
670
+ #menubar .menu .key {
671
+ color: #444;
672
+ border-color: #444;
673
+ }
674
+
675
+ #menubar .menu .options {
676
+ background: #111;
677
+ }
678
+
679
+ #menubar .menu .options hr {
680
+ border-color: #222;
681
+ }
682
+
683
+ #menubar .menu .options .option {
684
+ color: #888;
685
+ }
686
+
687
+ #menubar .menu .options .inactive {
688
+ color: #444;
689
+ }
690
+
691
+ #sidebar {
692
+ background-color: #111;
693
+ }
694
+
695
+ #sidebar .Panel {
696
+ border-top: 1px solid #222;
697
+ }
698
+
699
+ #sidebar .Panel.Material canvas {
700
+ border: 1px solid #5a5a5a;
701
+ }
702
+
703
+ #animation {
704
+ background-color: #111;
705
+ border-top: 1px solid #222;
706
+ }
707
+
708
+ #animation .Panel {
709
+ border-bottom: 1px solid #222;
710
+ }
711
+
712
+ #animation .timeline-container {
713
+ background: #ffffff0d;
714
+ }
715
+
716
+ #tabs {
717
+ background-color: #1b1b1b;
718
+ border-top: 1px solid #222;
719
+ }
720
+
721
+ #tabs span {
722
+ color: #555;
723
+ border-right: 1px solid #222;
724
+ }
725
+
726
+ #tabs span.selected {
727
+ background-color: #111;
728
+ }
729
+
730
+ #toolbar {
731
+ background-color: #111;
732
+ border-color: #111;
733
+ }
734
+
735
+ #toolbar img {
736
+ filter: invert();
737
+ }
738
+
739
+ .Outliner {
740
+ background: #222;
741
+ }
742
+
743
+ .Outliner .option {
744
+ color: #999;
745
+ }
746
+
747
+ .Outliner .option:hover {
748
+ background-color: #153c5e80;
749
+ }
750
+
751
+ .Outliner .option.active {
752
+ background-color: #153c5e;
753
+ }
754
+
755
+ .TabbedPanel .Tabs {
756
+ background-color: #1b1b1b;
757
+ border-top: 1px solid #222;
758
+ }
759
+
760
+ .TabbedPanel .Tabs::-webkit-scrollbar {
761
+ background: #111;
762
+ }
763
+
764
+ .TabbedPanel .Tab {
765
+ color: #555;
766
+ border-right: 1px solid #222;
767
+ }
768
+
769
+ .TabbedPanel .Tab.selected {
770
+ color: #888;
771
+ background-color: #111;
772
+ }
773
+
774
+ .Listbox {
775
+ color: #888;
776
+ background: #222;
777
+ }
778
+
779
+ .Listbox .ListboxItem:hover {
780
+ background-color: #153c5e80;
781
+ }
782
+
783
+ .Listbox .ListboxItem.active {
784
+ background-color: #153c5e;
785
+ }
786
+ }
787
+
788
+ .Dialog {
789
+ z-index: 100;
790
+ justify-content: center;
791
+ align-items: center;
792
+ display: flex;
793
+ position: fixed;
794
+ inset: 0;
795
+ }
796
+
797
+ .Dialog-background {
798
+ background: #00000080;
799
+ position: absolute;
800
+ inset: 0;
801
+ }
802
+
803
+ .Dialog-content {
804
+ background: #eee;
805
+ min-width: 300px;
806
+ max-width: 90%;
807
+ max-height: 90%;
808
+ position: relative;
809
+ overflow: auto;
810
+ }
811
+
812
+ .Dialog-title {
813
+ color: #666;
814
+ text-transform: uppercase;
815
+ padding: 10px 15px;
816
+ }
817
+
818
+ .Dialog-body {
819
+ padding: 15px;
820
+ }
821
+
822
+ .Dialog-body .Row {
823
+ align-items: center;
824
+ min-height: 24px;
825
+ margin-bottom: 10px;
826
+ display: flex;
827
+ }
828
+
829
+ .Dialog-body .Row .Label {
830
+ color: #888;
831
+ width: 120px;
832
+ }
833
+
834
+ .Dialog-buttons {
835
+ justify-content: flex-end;
836
+ margin-top: 15px;
837
+ display: flex;
838
+ }
839
+
840
+ .TextureParametersDialog-content {
841
+ min-width: 480px;
842
+ }
843
+
844
+ .TextureParametersDialog-split {
845
+ gap: 20px;
846
+ display: flex;
847
+ }
848
+
849
+ .TextureParametersDialog-preview {
850
+ flex: none;
851
+ }
852
+
853
+ .TextureParametersDialog-preview canvas {
854
+ background: #000;
855
+ border: 1px solid #888;
856
+ max-width: 100%;
857
+ height: auto;
858
+ display: block;
859
+ }
860
+
861
+ .TextureParametersDialog-form {
862
+ flex: auto;
863
+ min-width: 0;
864
+ }
865
+
866
+ @media (width <= 600px) {
867
+ .TextureParametersDialog-content {
868
+ width: 90vw;
869
+ min-width: 0;
870
+ }
871
+
872
+ .TextureParametersDialog-split {
873
+ flex-direction: column;
874
+ }
875
+
876
+ .TextureParametersDialog-preview {
877
+ align-self: center;
878
+ max-width: 100%;
879
+ }
880
+ }
881
+
882
+ .TextureParametersDialog-groupHeading {
883
+ text-transform: uppercase;
884
+ color: #666;
885
+ border-bottom: 1px solid #ccc;
886
+ margin: 12px 0 6px;
887
+ padding-bottom: 2px;
888
+ font-size: 11px;
889
+ font-weight: bold;
890
+ }
891
+
892
+ .TextureParametersDialog-groupHeading:first-child {
893
+ margin-top: 0;
894
+ }
895
+
896
+ @media (prefers-color-scheme: dark) {
897
+ .TextureParametersDialog-groupHeading {
898
+ color: #888;
899
+ border-bottom-color: #444;
900
+ }
901
+ }
902
+
903
+ .TextureSettingsButton {
904
+ padding: 0 4px;
905
+ line-height: 16px;
906
+ }
907
+
908
+ @media (prefers-color-scheme: dark) {
909
+ .Dialog-content {
910
+ background: #111;
911
+ }
912
+
913
+ .Dialog-title {
914
+ color: #888;
915
+ }
916
+ }
917
+
918
+ [draggable="true"] {
919
+ z-index: 0;
920
+ transform: translate(0);
921
+ }