sketchmark 2.1.0 → 2.1.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 (117) hide show
  1. package/package.json +1 -7
  2. package/ANIMATABLE_MATRIX.md +0 -177
  3. package/KERNEL_SPEC.md +0 -412
  4. package/PACKS.md +0 -81
  5. package/PRESETS.md +0 -182
  6. package/dist/src/builders/index.d.ts +0 -64
  7. package/dist/src/builders/index.js +0 -212
  8. package/dist/src/compounds.d.ts +0 -13
  9. package/dist/src/compounds.js +0 -118
  10. package/dist/src/deck.d.ts +0 -4
  11. package/dist/src/deck.js +0 -91
  12. package/dist/src/export/index.d.ts +0 -8
  13. package/dist/src/export/index.js +0 -15
  14. package/dist/src/kernel.d.ts +0 -8
  15. package/dist/src/kernel.js +0 -68
  16. package/dist/src/motion.d.ts +0 -4
  17. package/dist/src/motion.js +0 -262
  18. package/dist/src/patch.d.ts +0 -5
  19. package/dist/src/patch.js +0 -72
  20. package/dist/src/player/index.d.ts +0 -68
  21. package/dist/src/player/index.js +0 -600
  22. package/dist/src/project.d.ts +0 -11
  23. package/dist/src/project.js +0 -107
  24. package/dist/src/render/raw-three.d.ts +0 -7
  25. package/dist/src/render/raw-three.js +0 -17
  26. package/dist/src/render/three-html.d.ts +0 -2
  27. package/dist/src/render/three-html.js +0 -257
  28. package/dist/src/render/three-preview-svg.d.ts +0 -3
  29. package/dist/src/render/three-preview-svg.js +0 -102
  30. package/dist/src/scenes.d.ts +0 -4
  31. package/dist/src/scenes.js +0 -26
  32. package/dist/src/sequences.d.ts +0 -43
  33. package/dist/src/sequences.js +0 -109
  34. package/dist/src/shapes/builtins.d.ts +0 -2
  35. package/dist/src/shapes/builtins.js +0 -393
  36. package/dist/src/shapes/common.d.ts +0 -9
  37. package/dist/src/shapes/common.js +0 -76
  38. package/dist/src/shapes/geometry.d.ts +0 -22
  39. package/dist/src/shapes/geometry.js +0 -166
  40. package/dist/src/shapes/index.d.ts +0 -2
  41. package/dist/src/shapes/index.js +0 -18
  42. package/dist/src/shapes/registry.d.ts +0 -8
  43. package/dist/src/shapes/registry.js +0 -31
  44. package/dist/src/shapes/types.d.ts +0 -32
  45. package/dist/src/shapes/types.js +0 -2
  46. package/examples/1730642890464.jpg +0 -0
  47. package/examples/app-screen.svg +0 -1
  48. package/examples/app-screen.visual.json +0 -503
  49. package/examples/dashboard-table.svg +0 -1
  50. package/examples/dashboard-table.visual.json +0 -708
  51. package/examples/dev-docs.svg +0 -1
  52. package/examples/dev-docs.visual.json +0 -248
  53. package/examples/explainer.mp4 +0 -0
  54. package/examples/explainer.visual.json +0 -1713
  55. package/examples/group-origin-effects-lab-check.svg +0 -1
  56. package/examples/group-origin-effects-lab.visual.json +0 -1880
  57. package/examples/image-clip-radius.visual.json +0 -271
  58. package/examples/make-app-screen.cjs +0 -368
  59. package/examples/make-dashboard-table.cjs +0 -277
  60. package/examples/make-dev-docs.cjs +0 -233
  61. package/examples/make-explainer.cjs +0 -438
  62. package/examples/make-group-origin-effects-lab.cjs +0 -370
  63. package/examples/make-image-clip-radius.cjs +0 -169
  64. package/examples/make-modal-dialog.cjs +0 -355
  65. package/examples/make-origin-effects-lab.cjs +0 -311
  66. package/examples/make-preset-character-motion.cjs +0 -32
  67. package/examples/make-presets-demo.cjs +0 -30
  68. package/examples/make-pricing.cjs +0 -286
  69. package/examples/make-product-demo.cjs +0 -468
  70. package/examples/make-product-hero.cjs +0 -223
  71. package/examples/make-release-notes.cjs +0 -333
  72. package/examples/make-settings-panel.cjs +0 -435
  73. package/examples/make-split-preview.cjs +0 -248
  74. package/examples/make-storyboard.cjs +0 -215
  75. package/examples/make-transcript.cjs +0 -234
  76. package/examples/make-typography-test.cjs +0 -397
  77. package/examples/make-ui-demo-explainer.cjs +0 -1094
  78. package/examples/make-ui-flow.cjs +0 -762
  79. package/examples/make-walkthrough.cjs +0 -815
  80. package/examples/modal-dialog.svg +0 -1
  81. package/examples/modal-dialog.visual.json +0 -239
  82. package/examples/origin-effects-lab-check.svg +0 -1
  83. package/examples/origin-effects-lab.visual.json +0 -1412
  84. package/examples/preset-character-motion.visual.json +0 -949
  85. package/examples/presets-demo.visual.json +0 -787
  86. package/examples/pricing.svg +0 -1
  87. package/examples/pricing.visual.json +0 -652
  88. package/examples/product-demo.mp4 +0 -0
  89. package/examples/product-demo.visual.json +0 -866
  90. package/examples/product-hero.svg +0 -1
  91. package/examples/product-hero.visual.json +0 -242
  92. package/examples/release-notes.svg +0 -1
  93. package/examples/release-notes.visual.json +0 -467
  94. package/examples/settings-panel.svg +0 -1
  95. package/examples/settings-panel.visual.json +0 -501
  96. package/examples/split-preview.svg +0 -1
  97. package/examples/split-preview.visual.json +0 -124
  98. package/examples/storyboard.svg +0 -1
  99. package/examples/storyboard.visual.json +0 -312
  100. package/examples/transcript.svg +0 -1
  101. package/examples/transcript.visual.json +0 -407
  102. package/examples/typography-indent-check.svg +0 -1
  103. package/examples/typography-lineheight-0.svg +0 -1
  104. package/examples/typography-lineheight-2.svg +0 -1
  105. package/examples/typography-test-check.svg +0 -1
  106. package/examples/typography-test.svg +0 -1
  107. package/examples/typography-test.visual.json +0 -757
  108. package/examples/ui-demo-explainer-billing.svg +0 -1
  109. package/examples/ui-demo-explainer-check.svg +0 -1
  110. package/examples/ui-demo-explainer-save.svg +0 -1
  111. package/examples/ui-demo-explainer-toggle.svg +0 -1
  112. package/examples/ui-demo-explainer.mp4 +0 -0
  113. package/examples/ui-demo-explainer.visual.json +0 -2597
  114. package/examples/ui-flow.mp4 +0 -0
  115. package/examples/ui-flow.visual.json +0 -1211
  116. package/examples/walkthrough.mp4 +0 -0
  117. package/examples/walkthrough.visual.json +0 -1372
@@ -1,1880 +0,0 @@
1
- {
2
- "version": 1,
3
- "canvas": {
4
- "width": 1280,
5
- "height": 760,
6
- "background": "#07111f",
7
- "duration": 6,
8
- "fps": 30
9
- },
10
- "elements": [
11
- {
12
- "id": "lab_title",
13
- "type": "text",
14
- "x": 70,
15
- "y": 52,
16
- "text": "Group Origin Transform Lab",
17
- "fontSize": 38,
18
- "fontFamily": "Roboto, Arial, sans-serif",
19
- "weight": 700,
20
- "fill": "#f8fafc"
21
- },
22
- {
23
- "id": "lab_body",
24
- "type": "text",
25
- "x": 70,
26
- "y": 96,
27
- "text": "Same multi-child group, same motion, different origins.",
28
- "fontSize": 16,
29
- "fontFamily": "Roboto, Arial, sans-serif",
30
- "weight": 400,
31
- "fill": "#94a3b8"
32
- },
33
- {
34
- "id": "scale_row_label",
35
- "type": "text",
36
- "x": 70,
37
- "y": 112,
38
- "text": "Scale tests",
39
- "fontSize": 18,
40
- "fontFamily": "Roboto, Arial, sans-serif",
41
- "weight": 700,
42
- "fill": "#7dd3fc"
43
- },
44
- {
45
- "id": "rotate_row_label",
46
- "type": "text",
47
- "x": 70,
48
- "y": 397,
49
- "text": "Rotation tests",
50
- "fontSize": 18,
51
- "fontFamily": "Roboto, Arial, sans-serif",
52
- "weight": 700,
53
- "fill": "#7dd3fc"
54
- },
55
- {
56
- "id": "scale_top_left_panel",
57
- "type": "path",
58
- "d": "M 92 150 L 318 150 Q 340 150 340 172 L 340 368 Q 340 390 318 390 L 92 390 Q 70 390 70 368 L 70 172 Q 70 150 92 150 Z",
59
- "fill": "#0d1a2e",
60
- "stroke": "#193252",
61
- "strokeWidth": 1.5
62
- },
63
- {
64
- "id": "scale_top_left_title",
65
- "type": "text",
66
- "x": 90,
67
- "y": 168,
68
- "text": "Top-left origin",
69
- "fontSize": 16,
70
- "fontFamily": "Roboto, Arial, sans-serif",
71
- "weight": 700,
72
- "fill": "#f8fafc"
73
- },
74
- {
75
- "id": "scale_top_left_note",
76
- "type": "text",
77
- "x": 90,
78
- "y": 192,
79
- "text": "[0, 0]",
80
- "fontSize": 12,
81
- "fontFamily": "Roboto, Arial, sans-serif",
82
- "weight": 500,
83
- "fill": "#94a3b8"
84
- },
85
- {
86
- "id": "scale_top_left_guide_h",
87
- "type": "path",
88
- "d": "M 90 302 L 320 302",
89
- "fill": "none",
90
- "stroke": "#173054",
91
- "strokeWidth": 1,
92
- "dashArray": [
93
- 6,
94
- 6
95
- ]
96
- },
97
- {
98
- "id": "scale_top_left_guide_v",
99
- "type": "path",
100
- "d": "M 210 218 L 210 370",
101
- "fill": "none",
102
- "stroke": "#173054",
103
- "strokeWidth": 1,
104
- "dashArray": [
105
- 6,
106
- 6
107
- ]
108
- },
109
- {
110
- "id": "scale_top_left_frame",
111
- "type": "path",
112
- "d": "M 138 242 L 282 242 Q 300 242 300 260 L 300 344 Q 300 362 282 362 L 138 362 Q 120 362 120 344 L 120 260 Q 120 242 138 242 Z",
113
- "fill": "none",
114
- "stroke": "#31537f",
115
- "strokeWidth": 1,
116
- "dashArray": [
117
- 8,
118
- 6
119
- ]
120
- },
121
- {
122
- "id": "scale_top_left_origin",
123
- "type": "group",
124
- "x": 104,
125
- "y": 226,
126
- "children": [
127
- {
128
- "id": "scale_top_left_origin_cross_h",
129
- "type": "path",
130
- "d": "M 0 16 L 32 16",
131
- "fill": "none",
132
- "stroke": "#fde047",
133
- "strokeWidth": 2,
134
- "strokeCap": "round"
135
- },
136
- {
137
- "id": "scale_top_left_origin_cross_v",
138
- "type": "path",
139
- "d": "M 16 0 L 16 32",
140
- "fill": "none",
141
- "stroke": "#fde047",
142
- "strokeWidth": 2,
143
- "strokeCap": "round"
144
- },
145
- {
146
- "id": "scale_top_left_origin_dot",
147
- "type": "path",
148
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
149
- "fill": "#fde047",
150
- "stroke": "#0f172a",
151
- "strokeWidth": 1.5
152
- }
153
- ]
154
- },
155
- {
156
- "id": "scale_top_left_group",
157
- "type": "group",
158
- "x": 120,
159
- "y": 242,
160
- "width": 180,
161
- "height": 120,
162
- "origin": [
163
- 120,
164
- 242
165
- ],
166
- "children": [
167
- {
168
- "id": "scale_top_left_main",
169
- "type": "path",
170
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
171
- "fill": "#818cf8",
172
- "stroke": "#dbeafe",
173
- "strokeWidth": 2
174
- },
175
- {
176
- "id": "scale_top_left_tag",
177
- "type": "path",
178
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
179
- "fill": "#0f172a",
180
- "stroke": "#7dd3fc",
181
- "strokeWidth": 1.5
182
- },
183
- {
184
- "id": "scale_top_left_tag_text",
185
- "type": "text",
186
- "x": 45,
187
- "y": 10,
188
- "text": "GROUP",
189
- "align": "center",
190
- "valign": "middle",
191
- "fontSize": 10,
192
- "fontFamily": "Roboto, Arial, sans-serif",
193
- "weight": 700,
194
- "fill": "#7dd3fc"
195
- },
196
- {
197
- "id": "scale_top_left_accent",
198
- "type": "path",
199
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
200
- "fill": "#0f172a",
201
- "stroke": "#ffffff",
202
- "strokeWidth": 1.5
203
- },
204
- {
205
- "id": "scale_top_left_bar_1",
206
- "type": "path",
207
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
208
- "fill": "rgba(255,255,255,0.9)",
209
- "stroke": "none"
210
- },
211
- {
212
- "id": "scale_top_left_bar_2",
213
- "type": "path",
214
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
215
- "fill": "rgba(255,255,255,0.65)",
216
- "stroke": "none"
217
- },
218
- {
219
- "id": "scale_top_left_footer",
220
- "type": "path",
221
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
222
- "fill": "rgba(255,255,255,0.35)",
223
- "stroke": "none"
224
- }
225
- ],
226
- "timeline": {
227
- "tracks": {
228
- "scale": {
229
- "keyframes": [
230
- {
231
- "time": 0,
232
- "value": 1,
233
- "out": {
234
- "type": "cubicBezier",
235
- "x1": 0,
236
- "y1": 0,
237
- "x2": 0.2,
238
- "y2": 1
239
- }
240
- },
241
- {
242
- "time": 1.3,
243
- "value": 1.45,
244
- "out": {
245
- "type": "cubicBezier",
246
- "x1": 0.25,
247
- "y1": 0.1,
248
- "x2": 0.25,
249
- "y2": 1
250
- }
251
- },
252
- {
253
- "time": 2.6,
254
- "value": 0.72,
255
- "out": {
256
- "type": "cubicBezier",
257
- "x1": 0.25,
258
- "y1": 0.1,
259
- "x2": 0.25,
260
- "y2": 1
261
- }
262
- },
263
- {
264
- "time": 4,
265
- "value": 1.18,
266
- "out": {
267
- "type": "cubicBezier",
268
- "x1": 0.25,
269
- "y1": 0.1,
270
- "x2": 0.25,
271
- "y2": 1
272
- }
273
- },
274
- {
275
- "time": 5.4,
276
- "value": 1
277
- }
278
- ]
279
- }
280
- }
281
- }
282
- },
283
- {
284
- "id": "rotate_top_left_panel",
285
- "type": "path",
286
- "d": "M 92 435 L 318 435 Q 340 435 340 457 L 340 653 Q 340 675 318 675 L 92 675 Q 70 675 70 653 L 70 457 Q 70 435 92 435 Z",
287
- "fill": "#0d1a2e",
288
- "stroke": "#193252",
289
- "strokeWidth": 1.5
290
- },
291
- {
292
- "id": "rotate_top_left_title",
293
- "type": "text",
294
- "x": 90,
295
- "y": 453,
296
- "text": "Top-left origin",
297
- "fontSize": 16,
298
- "fontFamily": "Roboto, Arial, sans-serif",
299
- "weight": 700,
300
- "fill": "#f8fafc"
301
- },
302
- {
303
- "id": "rotate_top_left_note",
304
- "type": "text",
305
- "x": 90,
306
- "y": 477,
307
- "text": "[0, 0]",
308
- "fontSize": 12,
309
- "fontFamily": "Roboto, Arial, sans-serif",
310
- "weight": 500,
311
- "fill": "#94a3b8"
312
- },
313
- {
314
- "id": "rotate_top_left_guide_h",
315
- "type": "path",
316
- "d": "M 90 587 L 320 587",
317
- "fill": "none",
318
- "stroke": "#173054",
319
- "strokeWidth": 1,
320
- "dashArray": [
321
- 6,
322
- 6
323
- ]
324
- },
325
- {
326
- "id": "rotate_top_left_guide_v",
327
- "type": "path",
328
- "d": "M 210 503 L 210 655",
329
- "fill": "none",
330
- "stroke": "#173054",
331
- "strokeWidth": 1,
332
- "dashArray": [
333
- 6,
334
- 6
335
- ]
336
- },
337
- {
338
- "id": "rotate_top_left_frame",
339
- "type": "path",
340
- "d": "M 138 527 L 282 527 Q 300 527 300 545 L 300 629 Q 300 647 282 647 L 138 647 Q 120 647 120 629 L 120 545 Q 120 527 138 527 Z",
341
- "fill": "none",
342
- "stroke": "#31537f",
343
- "strokeWidth": 1,
344
- "dashArray": [
345
- 8,
346
- 6
347
- ]
348
- },
349
- {
350
- "id": "rotate_top_left_origin",
351
- "type": "group",
352
- "x": 104,
353
- "y": 511,
354
- "children": [
355
- {
356
- "id": "rotate_top_left_origin_cross_h",
357
- "type": "path",
358
- "d": "M 0 16 L 32 16",
359
- "fill": "none",
360
- "stroke": "#fde047",
361
- "strokeWidth": 2,
362
- "strokeCap": "round"
363
- },
364
- {
365
- "id": "rotate_top_left_origin_cross_v",
366
- "type": "path",
367
- "d": "M 16 0 L 16 32",
368
- "fill": "none",
369
- "stroke": "#fde047",
370
- "strokeWidth": 2,
371
- "strokeCap": "round"
372
- },
373
- {
374
- "id": "rotate_top_left_origin_dot",
375
- "type": "path",
376
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
377
- "fill": "#fde047",
378
- "stroke": "#0f172a",
379
- "strokeWidth": 1.5
380
- }
381
- ]
382
- },
383
- {
384
- "id": "rotate_top_left_group",
385
- "type": "group",
386
- "x": 120,
387
- "y": 527,
388
- "width": 180,
389
- "height": 120,
390
- "origin": [
391
- 120,
392
- 527
393
- ],
394
- "children": [
395
- {
396
- "id": "rotate_top_left_main",
397
- "type": "path",
398
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
399
- "fill": "#818cf8",
400
- "stroke": "#dbeafe",
401
- "strokeWidth": 2
402
- },
403
- {
404
- "id": "rotate_top_left_tag",
405
- "type": "path",
406
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
407
- "fill": "#0f172a",
408
- "stroke": "#7dd3fc",
409
- "strokeWidth": 1.5
410
- },
411
- {
412
- "id": "rotate_top_left_tag_text",
413
- "type": "text",
414
- "x": 45,
415
- "y": 10,
416
- "text": "GROUP",
417
- "align": "center",
418
- "valign": "middle",
419
- "fontSize": 10,
420
- "fontFamily": "Roboto, Arial, sans-serif",
421
- "weight": 700,
422
- "fill": "#7dd3fc"
423
- },
424
- {
425
- "id": "rotate_top_left_accent",
426
- "type": "path",
427
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
428
- "fill": "#0f172a",
429
- "stroke": "#ffffff",
430
- "strokeWidth": 1.5
431
- },
432
- {
433
- "id": "rotate_top_left_bar_1",
434
- "type": "path",
435
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
436
- "fill": "rgba(255,255,255,0.9)",
437
- "stroke": "none"
438
- },
439
- {
440
- "id": "rotate_top_left_bar_2",
441
- "type": "path",
442
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
443
- "fill": "rgba(255,255,255,0.65)",
444
- "stroke": "none"
445
- },
446
- {
447
- "id": "rotate_top_left_footer",
448
- "type": "path",
449
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
450
- "fill": "rgba(255,255,255,0.35)",
451
- "stroke": "none"
452
- }
453
- ],
454
- "timeline": {
455
- "tracks": {
456
- "rotation": {
457
- "keyframes": [
458
- {
459
- "time": 0,
460
- "value": 0,
461
- "out": {
462
- "type": "cubicBezier",
463
- "x1": 0,
464
- "y1": 0,
465
- "x2": 0.2,
466
- "y2": 1
467
- }
468
- },
469
- {
470
- "time": 1.5,
471
- "value": 42,
472
- "out": {
473
- "type": "cubicBezier",
474
- "x1": 0.25,
475
- "y1": 0.1,
476
- "x2": 0.25,
477
- "y2": 1
478
- }
479
- },
480
- {
481
- "time": 3,
482
- "value": -28,
483
- "out": {
484
- "type": "cubicBezier",
485
- "x1": 0.25,
486
- "y1": 0.1,
487
- "x2": 0.25,
488
- "y2": 1
489
- }
490
- },
491
- {
492
- "time": 4.5,
493
- "value": 18,
494
- "out": {
495
- "type": "cubicBezier",
496
- "x1": 0.25,
497
- "y1": 0.1,
498
- "x2": 0.25,
499
- "y2": 1
500
- }
501
- },
502
- {
503
- "time": 5.8,
504
- "value": 0
505
- }
506
- ]
507
- }
508
- }
509
- }
510
- },
511
- {
512
- "id": "scale_center_panel",
513
- "type": "path",
514
- "d": "M 387 150 L 613 150 Q 635 150 635 172 L 635 368 Q 635 390 613 390 L 387 390 Q 365 390 365 368 L 365 172 Q 365 150 387 150 Z",
515
- "fill": "#0d1a2e",
516
- "stroke": "#193252",
517
- "strokeWidth": 1.5
518
- },
519
- {
520
- "id": "scale_center_title",
521
- "type": "text",
522
- "x": 385,
523
- "y": 168,
524
- "text": "Center origin",
525
- "fontSize": 16,
526
- "fontFamily": "Roboto, Arial, sans-serif",
527
- "weight": 700,
528
- "fill": "#f8fafc"
529
- },
530
- {
531
- "id": "scale_center_note",
532
- "type": "text",
533
- "x": 385,
534
- "y": 192,
535
- "text": "[90, 60]",
536
- "fontSize": 12,
537
- "fontFamily": "Roboto, Arial, sans-serif",
538
- "weight": 500,
539
- "fill": "#94a3b8"
540
- },
541
- {
542
- "id": "scale_center_guide_h",
543
- "type": "path",
544
- "d": "M 385 302 L 615 302",
545
- "fill": "none",
546
- "stroke": "#173054",
547
- "strokeWidth": 1,
548
- "dashArray": [
549
- 6,
550
- 6
551
- ]
552
- },
553
- {
554
- "id": "scale_center_guide_v",
555
- "type": "path",
556
- "d": "M 505 218 L 505 370",
557
- "fill": "none",
558
- "stroke": "#173054",
559
- "strokeWidth": 1,
560
- "dashArray": [
561
- 6,
562
- 6
563
- ]
564
- },
565
- {
566
- "id": "scale_center_frame",
567
- "type": "path",
568
- "d": "M 433 242 L 577 242 Q 595 242 595 260 L 595 344 Q 595 362 577 362 L 433 362 Q 415 362 415 344 L 415 260 Q 415 242 433 242 Z",
569
- "fill": "none",
570
- "stroke": "#31537f",
571
- "strokeWidth": 1,
572
- "dashArray": [
573
- 8,
574
- 6
575
- ]
576
- },
577
- {
578
- "id": "scale_center_origin",
579
- "type": "group",
580
- "x": 489,
581
- "y": 286,
582
- "children": [
583
- {
584
- "id": "scale_center_origin_cross_h",
585
- "type": "path",
586
- "d": "M 0 16 L 32 16",
587
- "fill": "none",
588
- "stroke": "#fde047",
589
- "strokeWidth": 2,
590
- "strokeCap": "round"
591
- },
592
- {
593
- "id": "scale_center_origin_cross_v",
594
- "type": "path",
595
- "d": "M 16 0 L 16 32",
596
- "fill": "none",
597
- "stroke": "#fde047",
598
- "strokeWidth": 2,
599
- "strokeCap": "round"
600
- },
601
- {
602
- "id": "scale_center_origin_dot",
603
- "type": "path",
604
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
605
- "fill": "#fde047",
606
- "stroke": "#0f172a",
607
- "strokeWidth": 1.5
608
- }
609
- ]
610
- },
611
- {
612
- "id": "scale_center_group",
613
- "type": "group",
614
- "x": 415,
615
- "y": 242,
616
- "width": 180,
617
- "height": 120,
618
- "origin": [
619
- 505,
620
- 302
621
- ],
622
- "children": [
623
- {
624
- "id": "scale_center_main",
625
- "type": "path",
626
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
627
- "fill": "#38bdf8",
628
- "stroke": "#dbeafe",
629
- "strokeWidth": 2
630
- },
631
- {
632
- "id": "scale_center_tag",
633
- "type": "path",
634
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
635
- "fill": "#0f172a",
636
- "stroke": "#7dd3fc",
637
- "strokeWidth": 1.5
638
- },
639
- {
640
- "id": "scale_center_tag_text",
641
- "type": "text",
642
- "x": 45,
643
- "y": 10,
644
- "text": "GROUP",
645
- "align": "center",
646
- "valign": "middle",
647
- "fontSize": 10,
648
- "fontFamily": "Roboto, Arial, sans-serif",
649
- "weight": 700,
650
- "fill": "#7dd3fc"
651
- },
652
- {
653
- "id": "scale_center_accent",
654
- "type": "path",
655
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
656
- "fill": "#0f172a",
657
- "stroke": "#ffffff",
658
- "strokeWidth": 1.5
659
- },
660
- {
661
- "id": "scale_center_bar_1",
662
- "type": "path",
663
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
664
- "fill": "rgba(255,255,255,0.9)",
665
- "stroke": "none"
666
- },
667
- {
668
- "id": "scale_center_bar_2",
669
- "type": "path",
670
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
671
- "fill": "rgba(255,255,255,0.65)",
672
- "stroke": "none"
673
- },
674
- {
675
- "id": "scale_center_footer",
676
- "type": "path",
677
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
678
- "fill": "rgba(255,255,255,0.35)",
679
- "stroke": "none"
680
- }
681
- ],
682
- "timeline": {
683
- "tracks": {
684
- "scale": {
685
- "keyframes": [
686
- {
687
- "time": 0,
688
- "value": 1,
689
- "out": {
690
- "type": "cubicBezier",
691
- "x1": 0,
692
- "y1": 0,
693
- "x2": 0.2,
694
- "y2": 1
695
- }
696
- },
697
- {
698
- "time": 1.3,
699
- "value": 1.45,
700
- "out": {
701
- "type": "cubicBezier",
702
- "x1": 0.25,
703
- "y1": 0.1,
704
- "x2": 0.25,
705
- "y2": 1
706
- }
707
- },
708
- {
709
- "time": 2.6,
710
- "value": 0.72,
711
- "out": {
712
- "type": "cubicBezier",
713
- "x1": 0.25,
714
- "y1": 0.1,
715
- "x2": 0.25,
716
- "y2": 1
717
- }
718
- },
719
- {
720
- "time": 4,
721
- "value": 1.18,
722
- "out": {
723
- "type": "cubicBezier",
724
- "x1": 0.25,
725
- "y1": 0.1,
726
- "x2": 0.25,
727
- "y2": 1
728
- }
729
- },
730
- {
731
- "time": 5.4,
732
- "value": 1
733
- }
734
- ]
735
- }
736
- }
737
- }
738
- },
739
- {
740
- "id": "rotate_center_panel",
741
- "type": "path",
742
- "d": "M 387 435 L 613 435 Q 635 435 635 457 L 635 653 Q 635 675 613 675 L 387 675 Q 365 675 365 653 L 365 457 Q 365 435 387 435 Z",
743
- "fill": "#0d1a2e",
744
- "stroke": "#193252",
745
- "strokeWidth": 1.5
746
- },
747
- {
748
- "id": "rotate_center_title",
749
- "type": "text",
750
- "x": 385,
751
- "y": 453,
752
- "text": "Center origin",
753
- "fontSize": 16,
754
- "fontFamily": "Roboto, Arial, sans-serif",
755
- "weight": 700,
756
- "fill": "#f8fafc"
757
- },
758
- {
759
- "id": "rotate_center_note",
760
- "type": "text",
761
- "x": 385,
762
- "y": 477,
763
- "text": "[90, 60]",
764
- "fontSize": 12,
765
- "fontFamily": "Roboto, Arial, sans-serif",
766
- "weight": 500,
767
- "fill": "#94a3b8"
768
- },
769
- {
770
- "id": "rotate_center_guide_h",
771
- "type": "path",
772
- "d": "M 385 587 L 615 587",
773
- "fill": "none",
774
- "stroke": "#173054",
775
- "strokeWidth": 1,
776
- "dashArray": [
777
- 6,
778
- 6
779
- ]
780
- },
781
- {
782
- "id": "rotate_center_guide_v",
783
- "type": "path",
784
- "d": "M 505 503 L 505 655",
785
- "fill": "none",
786
- "stroke": "#173054",
787
- "strokeWidth": 1,
788
- "dashArray": [
789
- 6,
790
- 6
791
- ]
792
- },
793
- {
794
- "id": "rotate_center_frame",
795
- "type": "path",
796
- "d": "M 433 527 L 577 527 Q 595 527 595 545 L 595 629 Q 595 647 577 647 L 433 647 Q 415 647 415 629 L 415 545 Q 415 527 433 527 Z",
797
- "fill": "none",
798
- "stroke": "#31537f",
799
- "strokeWidth": 1,
800
- "dashArray": [
801
- 8,
802
- 6
803
- ]
804
- },
805
- {
806
- "id": "rotate_center_origin",
807
- "type": "group",
808
- "x": 489,
809
- "y": 571,
810
- "children": [
811
- {
812
- "id": "rotate_center_origin_cross_h",
813
- "type": "path",
814
- "d": "M 0 16 L 32 16",
815
- "fill": "none",
816
- "stroke": "#fde047",
817
- "strokeWidth": 2,
818
- "strokeCap": "round"
819
- },
820
- {
821
- "id": "rotate_center_origin_cross_v",
822
- "type": "path",
823
- "d": "M 16 0 L 16 32",
824
- "fill": "none",
825
- "stroke": "#fde047",
826
- "strokeWidth": 2,
827
- "strokeCap": "round"
828
- },
829
- {
830
- "id": "rotate_center_origin_dot",
831
- "type": "path",
832
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
833
- "fill": "#fde047",
834
- "stroke": "#0f172a",
835
- "strokeWidth": 1.5
836
- }
837
- ]
838
- },
839
- {
840
- "id": "rotate_center_group",
841
- "type": "group",
842
- "x": 415,
843
- "y": 527,
844
- "width": 180,
845
- "height": 120,
846
- "origin": [
847
- 505,
848
- 587
849
- ],
850
- "children": [
851
- {
852
- "id": "rotate_center_main",
853
- "type": "path",
854
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
855
- "fill": "#38bdf8",
856
- "stroke": "#dbeafe",
857
- "strokeWidth": 2
858
- },
859
- {
860
- "id": "rotate_center_tag",
861
- "type": "path",
862
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
863
- "fill": "#0f172a",
864
- "stroke": "#7dd3fc",
865
- "strokeWidth": 1.5
866
- },
867
- {
868
- "id": "rotate_center_tag_text",
869
- "type": "text",
870
- "x": 45,
871
- "y": 10,
872
- "text": "GROUP",
873
- "align": "center",
874
- "valign": "middle",
875
- "fontSize": 10,
876
- "fontFamily": "Roboto, Arial, sans-serif",
877
- "weight": 700,
878
- "fill": "#7dd3fc"
879
- },
880
- {
881
- "id": "rotate_center_accent",
882
- "type": "path",
883
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
884
- "fill": "#0f172a",
885
- "stroke": "#ffffff",
886
- "strokeWidth": 1.5
887
- },
888
- {
889
- "id": "rotate_center_bar_1",
890
- "type": "path",
891
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
892
- "fill": "rgba(255,255,255,0.9)",
893
- "stroke": "none"
894
- },
895
- {
896
- "id": "rotate_center_bar_2",
897
- "type": "path",
898
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
899
- "fill": "rgba(255,255,255,0.65)",
900
- "stroke": "none"
901
- },
902
- {
903
- "id": "rotate_center_footer",
904
- "type": "path",
905
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
906
- "fill": "rgba(255,255,255,0.35)",
907
- "stroke": "none"
908
- }
909
- ],
910
- "timeline": {
911
- "tracks": {
912
- "rotation": {
913
- "keyframes": [
914
- {
915
- "time": 0,
916
- "value": 0,
917
- "out": {
918
- "type": "cubicBezier",
919
- "x1": 0,
920
- "y1": 0,
921
- "x2": 0.2,
922
- "y2": 1
923
- }
924
- },
925
- {
926
- "time": 1.5,
927
- "value": 42,
928
- "out": {
929
- "type": "cubicBezier",
930
- "x1": 0.25,
931
- "y1": 0.1,
932
- "x2": 0.25,
933
- "y2": 1
934
- }
935
- },
936
- {
937
- "time": 3,
938
- "value": -28,
939
- "out": {
940
- "type": "cubicBezier",
941
- "x1": 0.25,
942
- "y1": 0.1,
943
- "x2": 0.25,
944
- "y2": 1
945
- }
946
- },
947
- {
948
- "time": 4.5,
949
- "value": 18,
950
- "out": {
951
- "type": "cubicBezier",
952
- "x1": 0.25,
953
- "y1": 0.1,
954
- "x2": 0.25,
955
- "y2": 1
956
- }
957
- },
958
- {
959
- "time": 5.8,
960
- "value": 0
961
- }
962
- ]
963
- }
964
- }
965
- }
966
- },
967
- {
968
- "id": "scale_bottom_right_panel",
969
- "type": "path",
970
- "d": "M 682 150 L 908 150 Q 930 150 930 172 L 930 368 Q 930 390 908 390 L 682 390 Q 660 390 660 368 L 660 172 Q 660 150 682 150 Z",
971
- "fill": "#0d1a2e",
972
- "stroke": "#193252",
973
- "strokeWidth": 1.5
974
- },
975
- {
976
- "id": "scale_bottom_right_title",
977
- "type": "text",
978
- "x": 680,
979
- "y": 168,
980
- "text": "Bottom-right origin",
981
- "fontSize": 16,
982
- "fontFamily": "Roboto, Arial, sans-serif",
983
- "weight": 700,
984
- "fill": "#f8fafc"
985
- },
986
- {
987
- "id": "scale_bottom_right_note",
988
- "type": "text",
989
- "x": 680,
990
- "y": 192,
991
- "text": "[180, 120]",
992
- "fontSize": 12,
993
- "fontFamily": "Roboto, Arial, sans-serif",
994
- "weight": 500,
995
- "fill": "#94a3b8"
996
- },
997
- {
998
- "id": "scale_bottom_right_guide_h",
999
- "type": "path",
1000
- "d": "M 680 302 L 910 302",
1001
- "fill": "none",
1002
- "stroke": "#173054",
1003
- "strokeWidth": 1,
1004
- "dashArray": [
1005
- 6,
1006
- 6
1007
- ]
1008
- },
1009
- {
1010
- "id": "scale_bottom_right_guide_v",
1011
- "type": "path",
1012
- "d": "M 800 218 L 800 370",
1013
- "fill": "none",
1014
- "stroke": "#173054",
1015
- "strokeWidth": 1,
1016
- "dashArray": [
1017
- 6,
1018
- 6
1019
- ]
1020
- },
1021
- {
1022
- "id": "scale_bottom_right_frame",
1023
- "type": "path",
1024
- "d": "M 728 242 L 872 242 Q 890 242 890 260 L 890 344 Q 890 362 872 362 L 728 362 Q 710 362 710 344 L 710 260 Q 710 242 728 242 Z",
1025
- "fill": "none",
1026
- "stroke": "#31537f",
1027
- "strokeWidth": 1,
1028
- "dashArray": [
1029
- 8,
1030
- 6
1031
- ]
1032
- },
1033
- {
1034
- "id": "scale_bottom_right_origin",
1035
- "type": "group",
1036
- "x": 874,
1037
- "y": 346,
1038
- "children": [
1039
- {
1040
- "id": "scale_bottom_right_origin_cross_h",
1041
- "type": "path",
1042
- "d": "M 0 16 L 32 16",
1043
- "fill": "none",
1044
- "stroke": "#fde047",
1045
- "strokeWidth": 2,
1046
- "strokeCap": "round"
1047
- },
1048
- {
1049
- "id": "scale_bottom_right_origin_cross_v",
1050
- "type": "path",
1051
- "d": "M 16 0 L 16 32",
1052
- "fill": "none",
1053
- "stroke": "#fde047",
1054
- "strokeWidth": 2,
1055
- "strokeCap": "round"
1056
- },
1057
- {
1058
- "id": "scale_bottom_right_origin_dot",
1059
- "type": "path",
1060
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
1061
- "fill": "#fde047",
1062
- "stroke": "#0f172a",
1063
- "strokeWidth": 1.5
1064
- }
1065
- ]
1066
- },
1067
- {
1068
- "id": "scale_bottom_right_group",
1069
- "type": "group",
1070
- "x": 710,
1071
- "y": 242,
1072
- "width": 180,
1073
- "height": 120,
1074
- "origin": [
1075
- 890,
1076
- 362
1077
- ],
1078
- "children": [
1079
- {
1080
- "id": "scale_bottom_right_main",
1081
- "type": "path",
1082
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
1083
- "fill": "#22c55e",
1084
- "stroke": "#dbeafe",
1085
- "strokeWidth": 2
1086
- },
1087
- {
1088
- "id": "scale_bottom_right_tag",
1089
- "type": "path",
1090
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
1091
- "fill": "#0f172a",
1092
- "stroke": "#7dd3fc",
1093
- "strokeWidth": 1.5
1094
- },
1095
- {
1096
- "id": "scale_bottom_right_tag_text",
1097
- "type": "text",
1098
- "x": 45,
1099
- "y": 10,
1100
- "text": "GROUP",
1101
- "align": "center",
1102
- "valign": "middle",
1103
- "fontSize": 10,
1104
- "fontFamily": "Roboto, Arial, sans-serif",
1105
- "weight": 700,
1106
- "fill": "#7dd3fc"
1107
- },
1108
- {
1109
- "id": "scale_bottom_right_accent",
1110
- "type": "path",
1111
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
1112
- "fill": "#0f172a",
1113
- "stroke": "#ffffff",
1114
- "strokeWidth": 1.5
1115
- },
1116
- {
1117
- "id": "scale_bottom_right_bar_1",
1118
- "type": "path",
1119
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
1120
- "fill": "rgba(255,255,255,0.9)",
1121
- "stroke": "none"
1122
- },
1123
- {
1124
- "id": "scale_bottom_right_bar_2",
1125
- "type": "path",
1126
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
1127
- "fill": "rgba(255,255,255,0.65)",
1128
- "stroke": "none"
1129
- },
1130
- {
1131
- "id": "scale_bottom_right_footer",
1132
- "type": "path",
1133
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
1134
- "fill": "rgba(255,255,255,0.35)",
1135
- "stroke": "none"
1136
- }
1137
- ],
1138
- "timeline": {
1139
- "tracks": {
1140
- "scale": {
1141
- "keyframes": [
1142
- {
1143
- "time": 0,
1144
- "value": 1,
1145
- "out": {
1146
- "type": "cubicBezier",
1147
- "x1": 0,
1148
- "y1": 0,
1149
- "x2": 0.2,
1150
- "y2": 1
1151
- }
1152
- },
1153
- {
1154
- "time": 1.3,
1155
- "value": 1.45,
1156
- "out": {
1157
- "type": "cubicBezier",
1158
- "x1": 0.25,
1159
- "y1": 0.1,
1160
- "x2": 0.25,
1161
- "y2": 1
1162
- }
1163
- },
1164
- {
1165
- "time": 2.6,
1166
- "value": 0.72,
1167
- "out": {
1168
- "type": "cubicBezier",
1169
- "x1": 0.25,
1170
- "y1": 0.1,
1171
- "x2": 0.25,
1172
- "y2": 1
1173
- }
1174
- },
1175
- {
1176
- "time": 4,
1177
- "value": 1.18,
1178
- "out": {
1179
- "type": "cubicBezier",
1180
- "x1": 0.25,
1181
- "y1": 0.1,
1182
- "x2": 0.25,
1183
- "y2": 1
1184
- }
1185
- },
1186
- {
1187
- "time": 5.4,
1188
- "value": 1
1189
- }
1190
- ]
1191
- }
1192
- }
1193
- }
1194
- },
1195
- {
1196
- "id": "rotate_bottom_right_panel",
1197
- "type": "path",
1198
- "d": "M 682 435 L 908 435 Q 930 435 930 457 L 930 653 Q 930 675 908 675 L 682 675 Q 660 675 660 653 L 660 457 Q 660 435 682 435 Z",
1199
- "fill": "#0d1a2e",
1200
- "stroke": "#193252",
1201
- "strokeWidth": 1.5
1202
- },
1203
- {
1204
- "id": "rotate_bottom_right_title",
1205
- "type": "text",
1206
- "x": 680,
1207
- "y": 453,
1208
- "text": "Bottom-right origin",
1209
- "fontSize": 16,
1210
- "fontFamily": "Roboto, Arial, sans-serif",
1211
- "weight": 700,
1212
- "fill": "#f8fafc"
1213
- },
1214
- {
1215
- "id": "rotate_bottom_right_note",
1216
- "type": "text",
1217
- "x": 680,
1218
- "y": 477,
1219
- "text": "[180, 120]",
1220
- "fontSize": 12,
1221
- "fontFamily": "Roboto, Arial, sans-serif",
1222
- "weight": 500,
1223
- "fill": "#94a3b8"
1224
- },
1225
- {
1226
- "id": "rotate_bottom_right_guide_h",
1227
- "type": "path",
1228
- "d": "M 680 587 L 910 587",
1229
- "fill": "none",
1230
- "stroke": "#173054",
1231
- "strokeWidth": 1,
1232
- "dashArray": [
1233
- 6,
1234
- 6
1235
- ]
1236
- },
1237
- {
1238
- "id": "rotate_bottom_right_guide_v",
1239
- "type": "path",
1240
- "d": "M 800 503 L 800 655",
1241
- "fill": "none",
1242
- "stroke": "#173054",
1243
- "strokeWidth": 1,
1244
- "dashArray": [
1245
- 6,
1246
- 6
1247
- ]
1248
- },
1249
- {
1250
- "id": "rotate_bottom_right_frame",
1251
- "type": "path",
1252
- "d": "M 728 527 L 872 527 Q 890 527 890 545 L 890 629 Q 890 647 872 647 L 728 647 Q 710 647 710 629 L 710 545 Q 710 527 728 527 Z",
1253
- "fill": "none",
1254
- "stroke": "#31537f",
1255
- "strokeWidth": 1,
1256
- "dashArray": [
1257
- 8,
1258
- 6
1259
- ]
1260
- },
1261
- {
1262
- "id": "rotate_bottom_right_origin",
1263
- "type": "group",
1264
- "x": 874,
1265
- "y": 631,
1266
- "children": [
1267
- {
1268
- "id": "rotate_bottom_right_origin_cross_h",
1269
- "type": "path",
1270
- "d": "M 0 16 L 32 16",
1271
- "fill": "none",
1272
- "stroke": "#fde047",
1273
- "strokeWidth": 2,
1274
- "strokeCap": "round"
1275
- },
1276
- {
1277
- "id": "rotate_bottom_right_origin_cross_v",
1278
- "type": "path",
1279
- "d": "M 16 0 L 16 32",
1280
- "fill": "none",
1281
- "stroke": "#fde047",
1282
- "strokeWidth": 2,
1283
- "strokeCap": "round"
1284
- },
1285
- {
1286
- "id": "rotate_bottom_right_origin_dot",
1287
- "type": "path",
1288
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
1289
- "fill": "#fde047",
1290
- "stroke": "#0f172a",
1291
- "strokeWidth": 1.5
1292
- }
1293
- ]
1294
- },
1295
- {
1296
- "id": "rotate_bottom_right_group",
1297
- "type": "group",
1298
- "x": 710,
1299
- "y": 527,
1300
- "width": 180,
1301
- "height": 120,
1302
- "origin": [
1303
- 890,
1304
- 647
1305
- ],
1306
- "children": [
1307
- {
1308
- "id": "rotate_bottom_right_main",
1309
- "type": "path",
1310
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
1311
- "fill": "#22c55e",
1312
- "stroke": "#dbeafe",
1313
- "strokeWidth": 2
1314
- },
1315
- {
1316
- "id": "rotate_bottom_right_tag",
1317
- "type": "path",
1318
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
1319
- "fill": "#0f172a",
1320
- "stroke": "#7dd3fc",
1321
- "strokeWidth": 1.5
1322
- },
1323
- {
1324
- "id": "rotate_bottom_right_tag_text",
1325
- "type": "text",
1326
- "x": 45,
1327
- "y": 10,
1328
- "text": "GROUP",
1329
- "align": "center",
1330
- "valign": "middle",
1331
- "fontSize": 10,
1332
- "fontFamily": "Roboto, Arial, sans-serif",
1333
- "weight": 700,
1334
- "fill": "#7dd3fc"
1335
- },
1336
- {
1337
- "id": "rotate_bottom_right_accent",
1338
- "type": "path",
1339
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
1340
- "fill": "#0f172a",
1341
- "stroke": "#ffffff",
1342
- "strokeWidth": 1.5
1343
- },
1344
- {
1345
- "id": "rotate_bottom_right_bar_1",
1346
- "type": "path",
1347
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
1348
- "fill": "rgba(255,255,255,0.9)",
1349
- "stroke": "none"
1350
- },
1351
- {
1352
- "id": "rotate_bottom_right_bar_2",
1353
- "type": "path",
1354
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
1355
- "fill": "rgba(255,255,255,0.65)",
1356
- "stroke": "none"
1357
- },
1358
- {
1359
- "id": "rotate_bottom_right_footer",
1360
- "type": "path",
1361
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
1362
- "fill": "rgba(255,255,255,0.35)",
1363
- "stroke": "none"
1364
- }
1365
- ],
1366
- "timeline": {
1367
- "tracks": {
1368
- "rotation": {
1369
- "keyframes": [
1370
- {
1371
- "time": 0,
1372
- "value": 0,
1373
- "out": {
1374
- "type": "cubicBezier",
1375
- "x1": 0,
1376
- "y1": 0,
1377
- "x2": 0.2,
1378
- "y2": 1
1379
- }
1380
- },
1381
- {
1382
- "time": 1.5,
1383
- "value": 42,
1384
- "out": {
1385
- "type": "cubicBezier",
1386
- "x1": 0.25,
1387
- "y1": 0.1,
1388
- "x2": 0.25,
1389
- "y2": 1
1390
- }
1391
- },
1392
- {
1393
- "time": 3,
1394
- "value": -28,
1395
- "out": {
1396
- "type": "cubicBezier",
1397
- "x1": 0.25,
1398
- "y1": 0.1,
1399
- "x2": 0.25,
1400
- "y2": 1
1401
- }
1402
- },
1403
- {
1404
- "time": 4.5,
1405
- "value": 18,
1406
- "out": {
1407
- "type": "cubicBezier",
1408
- "x1": 0.25,
1409
- "y1": 0.1,
1410
- "x2": 0.25,
1411
- "y2": 1
1412
- }
1413
- },
1414
- {
1415
- "time": 5.8,
1416
- "value": 0
1417
- }
1418
- ]
1419
- }
1420
- }
1421
- }
1422
- },
1423
- {
1424
- "id": "scale_outside_right_panel",
1425
- "type": "path",
1426
- "d": "M 977 150 L 1203 150 Q 1225 150 1225 172 L 1225 368 Q 1225 390 1203 390 L 977 390 Q 955 390 955 368 L 955 172 Q 955 150 977 150 Z",
1427
- "fill": "#0d1a2e",
1428
- "stroke": "#193252",
1429
- "strokeWidth": 1.5
1430
- },
1431
- {
1432
- "id": "scale_outside_right_title",
1433
- "type": "text",
1434
- "x": 975,
1435
- "y": 168,
1436
- "text": "Outside-right origin",
1437
- "fontSize": 16,
1438
- "fontFamily": "Roboto, Arial, sans-serif",
1439
- "weight": 700,
1440
- "fill": "#f8fafc"
1441
- },
1442
- {
1443
- "id": "scale_outside_right_note",
1444
- "type": "text",
1445
- "x": 975,
1446
- "y": 192,
1447
- "text": "[220, 60]",
1448
- "fontSize": 12,
1449
- "fontFamily": "Roboto, Arial, sans-serif",
1450
- "weight": 500,
1451
- "fill": "#94a3b8"
1452
- },
1453
- {
1454
- "id": "scale_outside_right_guide_h",
1455
- "type": "path",
1456
- "d": "M 975 302 L 1205 302",
1457
- "fill": "none",
1458
- "stroke": "#173054",
1459
- "strokeWidth": 1,
1460
- "dashArray": [
1461
- 6,
1462
- 6
1463
- ]
1464
- },
1465
- {
1466
- "id": "scale_outside_right_guide_v",
1467
- "type": "path",
1468
- "d": "M 1095 218 L 1095 370",
1469
- "fill": "none",
1470
- "stroke": "#173054",
1471
- "strokeWidth": 1,
1472
- "dashArray": [
1473
- 6,
1474
- 6
1475
- ]
1476
- },
1477
- {
1478
- "id": "scale_outside_right_frame",
1479
- "type": "path",
1480
- "d": "M 1023 242 L 1167 242 Q 1185 242 1185 260 L 1185 344 Q 1185 362 1167 362 L 1023 362 Q 1005 362 1005 344 L 1005 260 Q 1005 242 1023 242 Z",
1481
- "fill": "none",
1482
- "stroke": "#31537f",
1483
- "strokeWidth": 1,
1484
- "dashArray": [
1485
- 8,
1486
- 6
1487
- ]
1488
- },
1489
- {
1490
- "id": "scale_outside_right_origin",
1491
- "type": "group",
1492
- "x": 1209,
1493
- "y": 286,
1494
- "children": [
1495
- {
1496
- "id": "scale_outside_right_origin_cross_h",
1497
- "type": "path",
1498
- "d": "M 0 16 L 32 16",
1499
- "fill": "none",
1500
- "stroke": "#fde047",
1501
- "strokeWidth": 2,
1502
- "strokeCap": "round"
1503
- },
1504
- {
1505
- "id": "scale_outside_right_origin_cross_v",
1506
- "type": "path",
1507
- "d": "M 16 0 L 16 32",
1508
- "fill": "none",
1509
- "stroke": "#fde047",
1510
- "strokeWidth": 2,
1511
- "strokeCap": "round"
1512
- },
1513
- {
1514
- "id": "scale_outside_right_origin_dot",
1515
- "type": "path",
1516
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
1517
- "fill": "#fde047",
1518
- "stroke": "#0f172a",
1519
- "strokeWidth": 1.5
1520
- }
1521
- ]
1522
- },
1523
- {
1524
- "id": "scale_outside_right_group",
1525
- "type": "group",
1526
- "x": 1005,
1527
- "y": 242,
1528
- "width": 180,
1529
- "height": 120,
1530
- "origin": [
1531
- 1225,
1532
- 302
1533
- ],
1534
- "children": [
1535
- {
1536
- "id": "scale_outside_right_main",
1537
- "type": "path",
1538
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
1539
- "fill": "#f59e0b",
1540
- "stroke": "#dbeafe",
1541
- "strokeWidth": 2
1542
- },
1543
- {
1544
- "id": "scale_outside_right_tag",
1545
- "type": "path",
1546
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
1547
- "fill": "#0f172a",
1548
- "stroke": "#7dd3fc",
1549
- "strokeWidth": 1.5
1550
- },
1551
- {
1552
- "id": "scale_outside_right_tag_text",
1553
- "type": "text",
1554
- "x": 45,
1555
- "y": 10,
1556
- "text": "GROUP",
1557
- "align": "center",
1558
- "valign": "middle",
1559
- "fontSize": 10,
1560
- "fontFamily": "Roboto, Arial, sans-serif",
1561
- "weight": 700,
1562
- "fill": "#7dd3fc"
1563
- },
1564
- {
1565
- "id": "scale_outside_right_accent",
1566
- "type": "path",
1567
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
1568
- "fill": "#0f172a",
1569
- "stroke": "#ffffff",
1570
- "strokeWidth": 1.5
1571
- },
1572
- {
1573
- "id": "scale_outside_right_bar_1",
1574
- "type": "path",
1575
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
1576
- "fill": "rgba(255,255,255,0.9)",
1577
- "stroke": "none"
1578
- },
1579
- {
1580
- "id": "scale_outside_right_bar_2",
1581
- "type": "path",
1582
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
1583
- "fill": "rgba(255,255,255,0.65)",
1584
- "stroke": "none"
1585
- },
1586
- {
1587
- "id": "scale_outside_right_footer",
1588
- "type": "path",
1589
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
1590
- "fill": "rgba(255,255,255,0.35)",
1591
- "stroke": "none"
1592
- }
1593
- ],
1594
- "timeline": {
1595
- "tracks": {
1596
- "scale": {
1597
- "keyframes": [
1598
- {
1599
- "time": 0,
1600
- "value": 1,
1601
- "out": {
1602
- "type": "cubicBezier",
1603
- "x1": 0,
1604
- "y1": 0,
1605
- "x2": 0.2,
1606
- "y2": 1
1607
- }
1608
- },
1609
- {
1610
- "time": 1.3,
1611
- "value": 1.45,
1612
- "out": {
1613
- "type": "cubicBezier",
1614
- "x1": 0.25,
1615
- "y1": 0.1,
1616
- "x2": 0.25,
1617
- "y2": 1
1618
- }
1619
- },
1620
- {
1621
- "time": 2.6,
1622
- "value": 0.72,
1623
- "out": {
1624
- "type": "cubicBezier",
1625
- "x1": 0.25,
1626
- "y1": 0.1,
1627
- "x2": 0.25,
1628
- "y2": 1
1629
- }
1630
- },
1631
- {
1632
- "time": 4,
1633
- "value": 1.18,
1634
- "out": {
1635
- "type": "cubicBezier",
1636
- "x1": 0.25,
1637
- "y1": 0.1,
1638
- "x2": 0.25,
1639
- "y2": 1
1640
- }
1641
- },
1642
- {
1643
- "time": 5.4,
1644
- "value": 1
1645
- }
1646
- ]
1647
- }
1648
- }
1649
- }
1650
- },
1651
- {
1652
- "id": "rotate_outside_right_panel",
1653
- "type": "path",
1654
- "d": "M 977 435 L 1203 435 Q 1225 435 1225 457 L 1225 653 Q 1225 675 1203 675 L 977 675 Q 955 675 955 653 L 955 457 Q 955 435 977 435 Z",
1655
- "fill": "#0d1a2e",
1656
- "stroke": "#193252",
1657
- "strokeWidth": 1.5
1658
- },
1659
- {
1660
- "id": "rotate_outside_right_title",
1661
- "type": "text",
1662
- "x": 975,
1663
- "y": 453,
1664
- "text": "Outside-right origin",
1665
- "fontSize": 16,
1666
- "fontFamily": "Roboto, Arial, sans-serif",
1667
- "weight": 700,
1668
- "fill": "#f8fafc"
1669
- },
1670
- {
1671
- "id": "rotate_outside_right_note",
1672
- "type": "text",
1673
- "x": 975,
1674
- "y": 477,
1675
- "text": "[220, 60]",
1676
- "fontSize": 12,
1677
- "fontFamily": "Roboto, Arial, sans-serif",
1678
- "weight": 500,
1679
- "fill": "#94a3b8"
1680
- },
1681
- {
1682
- "id": "rotate_outside_right_guide_h",
1683
- "type": "path",
1684
- "d": "M 975 587 L 1205 587",
1685
- "fill": "none",
1686
- "stroke": "#173054",
1687
- "strokeWidth": 1,
1688
- "dashArray": [
1689
- 6,
1690
- 6
1691
- ]
1692
- },
1693
- {
1694
- "id": "rotate_outside_right_guide_v",
1695
- "type": "path",
1696
- "d": "M 1095 503 L 1095 655",
1697
- "fill": "none",
1698
- "stroke": "#173054",
1699
- "strokeWidth": 1,
1700
- "dashArray": [
1701
- 6,
1702
- 6
1703
- ]
1704
- },
1705
- {
1706
- "id": "rotate_outside_right_frame",
1707
- "type": "path",
1708
- "d": "M 1023 527 L 1167 527 Q 1185 527 1185 545 L 1185 629 Q 1185 647 1167 647 L 1023 647 Q 1005 647 1005 629 L 1005 545 Q 1005 527 1023 527 Z",
1709
- "fill": "none",
1710
- "stroke": "#31537f",
1711
- "strokeWidth": 1,
1712
- "dashArray": [
1713
- 8,
1714
- 6
1715
- ]
1716
- },
1717
- {
1718
- "id": "rotate_outside_right_origin",
1719
- "type": "group",
1720
- "x": 1209,
1721
- "y": 571,
1722
- "children": [
1723
- {
1724
- "id": "rotate_outside_right_origin_cross_h",
1725
- "type": "path",
1726
- "d": "M 0 16 L 32 16",
1727
- "fill": "none",
1728
- "stroke": "#fde047",
1729
- "strokeWidth": 2,
1730
- "strokeCap": "round"
1731
- },
1732
- {
1733
- "id": "rotate_outside_right_origin_cross_v",
1734
- "type": "path",
1735
- "d": "M 16 0 L 16 32",
1736
- "fill": "none",
1737
- "stroke": "#fde047",
1738
- "strokeWidth": 2,
1739
- "strokeCap": "round"
1740
- },
1741
- {
1742
- "id": "rotate_outside_right_origin_dot",
1743
- "type": "path",
1744
- "d": "M 10 16 a 6 6 0 1 0 12 0 a 6 6 0 1 0 -12 0",
1745
- "fill": "#fde047",
1746
- "stroke": "#0f172a",
1747
- "strokeWidth": 1.5
1748
- }
1749
- ]
1750
- },
1751
- {
1752
- "id": "rotate_outside_right_group",
1753
- "type": "group",
1754
- "x": 1005,
1755
- "y": 527,
1756
- "width": 180,
1757
- "height": 120,
1758
- "origin": [
1759
- 1225,
1760
- 587
1761
- ],
1762
- "children": [
1763
- {
1764
- "id": "rotate_outside_right_main",
1765
- "type": "path",
1766
- "d": "M 18 18 L 162 18 Q 180 18 180 36 L 180 102 Q 180 120 162 120 L 18 120 Q 0 120 0 102 L 0 36 Q 0 18 18 18 Z",
1767
- "fill": "#f59e0b",
1768
- "stroke": "#dbeafe",
1769
- "strokeWidth": 2
1770
- },
1771
- {
1772
- "id": "rotate_outside_right_tag",
1773
- "type": "path",
1774
- "d": "M 22 0 L 68 0 Q 78 0 78 10 L 78 10 Q 78 20 68 20 L 22 20 Q 12 20 12 10 L 12 10 Q 12 0 22 0 Z",
1775
- "fill": "#0f172a",
1776
- "stroke": "#7dd3fc",
1777
- "strokeWidth": 1.5
1778
- },
1779
- {
1780
- "id": "rotate_outside_right_tag_text",
1781
- "type": "text",
1782
- "x": 45,
1783
- "y": 10,
1784
- "text": "GROUP",
1785
- "align": "center",
1786
- "valign": "middle",
1787
- "fontSize": 10,
1788
- "fontFamily": "Roboto, Arial, sans-serif",
1789
- "weight": 700,
1790
- "fill": "#7dd3fc"
1791
- },
1792
- {
1793
- "id": "rotate_outside_right_accent",
1794
- "type": "path",
1795
- "d": "M 138 38 L 152 38 Q 162 38 162 48 L 162 62 Q 162 72 152 72 L 138 72 Q 128 72 128 62 L 128 48 Q 128 38 138 38 Z",
1796
- "fill": "#0f172a",
1797
- "stroke": "#ffffff",
1798
- "strokeWidth": 1.5
1799
- },
1800
- {
1801
- "id": "rotate_outside_right_bar_1",
1802
- "type": "path",
1803
- "d": "M 21 50 L 89 50 Q 94 50 94 55 L 94 55 Q 94 60 89 60 L 21 60 Q 16 60 16 55 L 16 55 Q 16 50 21 50 Z",
1804
- "fill": "rgba(255,255,255,0.9)",
1805
- "stroke": "none"
1806
- },
1807
- {
1808
- "id": "rotate_outside_right_bar_2",
1809
- "type": "path",
1810
- "d": "M 21 70 L 123 70 Q 128 70 128 75 L 128 75 Q 128 80 123 80 L 21 80 Q 16 80 16 75 L 16 75 Q 16 70 21 70 Z",
1811
- "fill": "rgba(255,255,255,0.65)",
1812
- "stroke": "none"
1813
- },
1814
- {
1815
- "id": "rotate_outside_right_footer",
1816
- "type": "path",
1817
- "d": "M 22 92 L 102 92 Q 108 92 108 98 L 108 98 Q 108 104 102 104 L 22 104 Q 16 104 16 98 L 16 98 Q 16 92 22 92 Z",
1818
- "fill": "rgba(255,255,255,0.35)",
1819
- "stroke": "none"
1820
- }
1821
- ],
1822
- "timeline": {
1823
- "tracks": {
1824
- "rotation": {
1825
- "keyframes": [
1826
- {
1827
- "time": 0,
1828
- "value": 0,
1829
- "out": {
1830
- "type": "cubicBezier",
1831
- "x1": 0,
1832
- "y1": 0,
1833
- "x2": 0.2,
1834
- "y2": 1
1835
- }
1836
- },
1837
- {
1838
- "time": 1.5,
1839
- "value": 42,
1840
- "out": {
1841
- "type": "cubicBezier",
1842
- "x1": 0.25,
1843
- "y1": 0.1,
1844
- "x2": 0.25,
1845
- "y2": 1
1846
- }
1847
- },
1848
- {
1849
- "time": 3,
1850
- "value": -28,
1851
- "out": {
1852
- "type": "cubicBezier",
1853
- "x1": 0.25,
1854
- "y1": 0.1,
1855
- "x2": 0.25,
1856
- "y2": 1
1857
- }
1858
- },
1859
- {
1860
- "time": 4.5,
1861
- "value": 18,
1862
- "out": {
1863
- "type": "cubicBezier",
1864
- "x1": 0.25,
1865
- "y1": 0.1,
1866
- "x2": 0.25,
1867
- "y2": 1
1868
- }
1869
- },
1870
- {
1871
- "time": 5.8,
1872
- "value": 0
1873
- }
1874
- ]
1875
- }
1876
- }
1877
- }
1878
- }
1879
- ]
1880
- }