motionrender 0.0.0-stage → 0.2.1

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 (203) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +61 -2
  3. package/blocks/badge.json +68 -0
  4. package/blocks/big-stat.json +240 -0
  5. package/blocks/cta-end.json +283 -0
  6. package/blocks/feature-list.json +286 -0
  7. package/blocks/footage.json +43 -0
  8. package/blocks/fx-background-swap.json +170 -0
  9. package/blocks/fx-before-after.json +212 -0
  10. package/blocks/fx-captions.json +34 -0
  11. package/blocks/fx-chat.json +368 -0
  12. package/blocks/fx-checklist.json +609 -0
  13. package/blocks/fx-clone-wall.json +181 -0
  14. package/blocks/fx-color-pop.json +92 -0
  15. package/blocks/fx-command-bridge.json +358 -0
  16. package/blocks/fx-counter-hero.json +206 -0
  17. package/blocks/fx-cta-card.json +337 -0
  18. package/blocks/fx-day-to-night.json +174 -0
  19. package/blocks/fx-duo-title.json +245 -0
  20. package/blocks/fx-duotone.json +95 -0
  21. package/blocks/fx-extruded-title.json +309 -0
  22. package/blocks/fx-gallery.json +239 -0
  23. package/blocks/fx-glass-cards.json +921 -0
  24. package/blocks/fx-glitch-title.json +373 -0
  25. package/blocks/fx-grade-look.json +91 -0
  26. package/blocks/fx-highlighter.json +53 -0
  27. package/blocks/fx-icon-orbit.json +2694 -0
  28. package/blocks/fx-lens-flare.json +325 -0
  29. package/blocks/fx-letterbox.json +105 -0
  30. package/blocks/fx-light-leak.json +140 -0
  31. package/blocks/fx-map-journey.json +443 -0
  32. package/blocks/fx-neon-outline.json +743 -0
  33. package/blocks/fx-notifications.json +456 -0
  34. package/blocks/fx-progress-ring.json +143 -0
  35. package/blocks/fx-pull-out.json +68 -0
  36. package/blocks/fx-punch-in.json +81 -0
  37. package/blocks/fx-rgb-flash.json +166 -0
  38. package/blocks/fx-shake-hit.json +120 -0
  39. package/blocks/fx-split-reveal.json +110 -0
  40. package/blocks/fx-spotlight.json +1383 -0
  41. package/blocks/fx-stats-split.json +500 -0
  42. package/blocks/fx-step-tracker.json +528 -0
  43. package/blocks/fx-sticker-freeze.json +584 -0
  44. package/blocks/fx-strike-rewrite.json +79 -0
  45. package/blocks/fx-ticker.json +179 -0
  46. package/blocks/fx-timeline.json +1287 -0
  47. package/blocks/fx-tracked-label.json +167 -0
  48. package/blocks/fx-typewriter-quote.json +164 -0
  49. package/blocks/handle.json +43 -0
  50. package/blocks/icon-row.json +404 -0
  51. package/blocks/image-caption.json +248 -0
  52. package/blocks/lower-third.json +106 -0
  53. package/blocks/phone-mockup.json +459 -0
  54. package/blocks/progress-bar.json +51 -0
  55. package/blocks/quote.json +347 -0
  56. package/blocks/section-title.json +240 -0
  57. package/blocks/split-screen.json +283 -0
  58. package/blocks/stat-grid.json +315 -0
  59. package/blocks/steps.json +266 -0
  60. package/blocks/title-hero.json +287 -0
  61. package/dist/builder.d.ts +1 -0
  62. package/dist/builder.js +169 -0
  63. package/dist/cli.js +9301 -0
  64. package/dist/fonts/LICENSE-Inter.txt +93 -0
  65. package/dist/fonts/inter-cyrillic-ext-opsz-italic.woff2 +0 -0
  66. package/dist/fonts/inter-cyrillic-ext-opsz-normal.woff2 +0 -0
  67. package/dist/fonts/inter-cyrillic-opsz-italic.woff2 +0 -0
  68. package/dist/fonts/inter-cyrillic-opsz-normal.woff2 +0 -0
  69. package/dist/fonts/inter-greek-ext-opsz-italic.woff2 +0 -0
  70. package/dist/fonts/inter-greek-ext-opsz-normal.woff2 +0 -0
  71. package/dist/fonts/inter-greek-opsz-italic.woff2 +0 -0
  72. package/dist/fonts/inter-greek-opsz-normal.woff2 +0 -0
  73. package/dist/fonts/inter-latin-ext-opsz-italic.woff2 +0 -0
  74. package/dist/fonts/inter-latin-ext-opsz-normal.woff2 +0 -0
  75. package/dist/fonts/inter-latin-opsz-italic.woff2 +0 -0
  76. package/dist/fonts/inter-latin-opsz-normal.woff2 +0 -0
  77. package/dist/fonts/inter-vietnamese-opsz-italic.woff2 +0 -0
  78. package/dist/fonts/inter-vietnamese-opsz-normal.woff2 +0 -0
  79. package/dist/index.d.ts +2 -0
  80. package/dist/index.js +2330 -0
  81. package/dist/player.d.ts +1 -0
  82. package/dist/player.js +80 -0
  83. package/dist/react.d.ts +1 -0
  84. package/dist/react.js +140 -0
  85. package/dist/runtime/canvas-runtime.js +261 -0
  86. package/dist/runtime/lottie_light_canvas.min.js +1 -0
  87. package/dist/runtime/text-layout.js +50 -0
  88. package/dist/sfx/click.wav +0 -0
  89. package/dist/sfx/ding.wav +0 -0
  90. package/dist/sfx/pop.wav +0 -0
  91. package/dist/sfx/riser.wav +0 -0
  92. package/dist/sfx/thump.wav +0 -0
  93. package/dist/sfx/tick.wav +0 -0
  94. package/dist/sfx/whoosh.wav +0 -0
  95. package/dist/types/packages/ai/src/assets.d.ts +26 -0
  96. package/dist/types/packages/ai/src/batch.d.ts +19 -0
  97. package/dist/types/packages/ai/src/compose.d.ts +34 -0
  98. package/dist/types/packages/ai/src/history.d.ts +37 -0
  99. package/dist/types/packages/ai/src/image.d.ts +19 -0
  100. package/dist/types/packages/ai/src/index.d.ts +13 -0
  101. package/dist/types/packages/ai/src/json.d.ts +2 -0
  102. package/dist/types/packages/ai/src/narrate.d.ts +63 -0
  103. package/dist/types/packages/ai/src/patch.d.ts +15 -0
  104. package/dist/types/packages/ai/src/project.d.ts +27 -0
  105. package/dist/types/packages/ai/src/prompt.d.ts +30 -0
  106. package/dist/types/packages/ai/src/providers.d.ts +109 -0
  107. package/dist/types/packages/ai/src/template.d.ts +80 -0
  108. package/dist/types/packages/ai/src/voiceover.d.ts +49 -0
  109. package/dist/types/packages/animation/src/index.d.ts +27 -0
  110. package/dist/types/packages/assets/src/cache.d.ts +26 -0
  111. package/dist/types/packages/assets/src/index.d.ts +8 -0
  112. package/dist/types/packages/builder/src/index.d.ts +270 -0
  113. package/dist/types/packages/cli/src/ai-studio-page.d.ts +1 -0
  114. package/dist/types/packages/cli/src/ai-studio.d.ts +35 -0
  115. package/dist/types/packages/cli/src/ai.d.ts +3 -0
  116. package/dist/types/packages/cli/src/args.d.ts +9 -0
  117. package/dist/types/packages/cli/src/blocks-cli.d.ts +3 -0
  118. package/dist/types/packages/cli/src/blocks.d.ts +50 -0
  119. package/dist/types/packages/cli/src/build.d.ts +1 -0
  120. package/dist/types/packages/cli/src/dev-page.d.ts +1 -0
  121. package/dist/types/packages/cli/src/dev.d.ts +13 -0
  122. package/dist/types/packages/cli/src/index.d.ts +2 -0
  123. package/dist/types/packages/cli/src/init.d.ts +10 -0
  124. package/dist/types/packages/cli/src/serve.d.ts +2 -0
  125. package/dist/types/packages/cli/src/studio.d.ts +36 -0
  126. package/dist/types/packages/cli/src/templates.d.ts +63 -0
  127. package/dist/types/packages/cli/src/thumbnail.d.ts +20 -0
  128. package/dist/types/packages/cli/src/track.d.ts +35 -0
  129. package/dist/types/packages/cli/src/worker.d.ts +13 -0
  130. package/dist/types/packages/contracts/src/index.d.ts +377 -0
  131. package/dist/types/packages/core/src/audio.d.ts +14 -0
  132. package/dist/types/packages/core/src/distributed.d.ts +50 -0
  133. package/dist/types/packages/core/src/index.d.ts +63 -0
  134. package/dist/types/packages/core/src/media.d.ts +11 -0
  135. package/dist/types/packages/core/src/review.d.ts +29 -0
  136. package/dist/types/packages/ffmpeg/src/index.d.ts +68 -0
  137. package/dist/types/packages/graphics/src/fonts.d.ts +3 -0
  138. package/dist/types/packages/graphics/src/index.d.ts +121 -0
  139. package/dist/types/packages/graphics/src/runtime.d.ts +10 -0
  140. package/dist/types/packages/jobs/src/env.d.ts +78 -0
  141. package/dist/types/packages/jobs/src/handlers.d.ts +17 -0
  142. package/dist/types/packages/jobs/src/index.d.ts +5 -0
  143. package/dist/types/packages/jobs/src/input.d.ts +18 -0
  144. package/dist/types/packages/jobs/src/queue.d.ts +70 -0
  145. package/dist/types/packages/jobs/src/redis.d.ts +42 -0
  146. package/dist/types/packages/player/src/bundle.d.ts +4 -0
  147. package/dist/types/packages/player/src/canvas-runtime.d.ts +11 -0
  148. package/dist/types/packages/player/src/index.d.ts +29 -0
  149. package/dist/types/packages/react/src/index.d.ts +76 -0
  150. package/dist/types/packages/renderer/src/index.d.ts +35 -0
  151. package/dist/types/packages/renderer/src/pool.d.ts +7 -0
  152. package/dist/types/packages/renderer/src/video.d.ts +9 -0
  153. package/dist/types/packages/schema/src/captions.d.ts +24 -0
  154. package/dist/types/packages/schema/src/expression.d.ts +1 -0
  155. package/dist/types/packages/schema/src/index.d.ts +1213 -0
  156. package/dist/types/packages/schema/src/variables.d.ts +115 -0
  157. package/dist/types/packages/storage/src/index.d.ts +78 -0
  158. package/dist/types/packages/timeline/src/index.d.ts +104 -0
  159. package/package.json +78 -4
  160. package/skills/ove/SKILL.md +356 -0
  161. package/skills/ove-ai-compose/SKILL.md +36 -0
  162. package/skills/ove-batch-videos/SKILL.md +23 -0
  163. package/skills/ove-code-video/SKILL.md +68 -0
  164. package/skills/ove-effects/SKILL.md +65 -0
  165. package/skills/ove-make-reel/SKILL.md +30 -0
  166. package/skills/ove-voiceover-captions/SKILL.md +31 -0
  167. package/studio/assets/index-CzOvWv9w.css +1 -0
  168. package/studio/assets/index-J_fvKgng.js +11 -0
  169. package/studio/index.html +16 -0
  170. package/templates/case-study/composition.json +358 -0
  171. package/templates/case-study/template.json +8 -0
  172. package/templates/event-invite/composition.json +245 -0
  173. package/templates/event-invite/template.json +8 -0
  174. package/templates/explainer-square/composition.json +1335 -0
  175. package/templates/explainer-square/template.json +13 -0
  176. package/templates/keynote-wide/composition.json +1458 -0
  177. package/templates/keynote-wide/template.json +13 -0
  178. package/templates/launch-wide/composition.json +1306 -0
  179. package/templates/launch-wide/template.json +13 -0
  180. package/templates/product-card/composition.json +196 -0
  181. package/templates/product-card/data.example.json +5 -0
  182. package/templates/product-card/template.json +8 -0
  183. package/templates/product-wide/composition.json +1609 -0
  184. package/templates/product-wide/template.json +14 -0
  185. package/templates/quote-card/composition.json +123 -0
  186. package/templates/quote-card/template.json +8 -0
  187. package/templates/sale-promo/composition.json +290 -0
  188. package/templates/sale-promo/template.json +8 -0
  189. package/templates/showcase-tall/composition.json +1646 -0
  190. package/templates/showcase-tall/template.json +14 -0
  191. package/templates/slideshow/composition.json +167 -0
  192. package/templates/slideshow/template.json +8 -0
  193. package/templates/social-reel/composition.json +252 -0
  194. package/templates/social-reel/template.json +8 -0
  195. package/templates/starter/assets/logo.svg +4 -0
  196. package/templates/starter/composition.json +84 -0
  197. package/templates/story-tall/composition.json +1379 -0
  198. package/templates/story-tall/template.json +13 -0
  199. package/themes/espresso.json +15 -0
  200. package/themes/midnight.json +15 -0
  201. package/themes/neon.json +15 -0
  202. package/themes/paper.json +15 -0
  203. package/themes/signal.json +15 -0
@@ -0,0 +1,1458 @@
1
+ {
2
+ "$schema": "./composition.schema.json",
3
+ "version": "1.0",
4
+ "id": "keynote-wide",
5
+ "name": "Keynote (16:9)",
6
+ "width": 1920,
7
+ "height": 1080,
8
+ "fps": 30,
9
+ "durationFrames": "auto",
10
+ "motionBlur": {
11
+ "samples": 4,
12
+ "shutter": 180
13
+ },
14
+ "variables": {
15
+ "bg": {
16
+ "type": "color",
17
+ "default": "#2a1a12",
18
+ "description": "Theme: bg"
19
+ },
20
+ "surface": {
21
+ "type": "color",
22
+ "default": "#3d2a1f",
23
+ "description": "Theme: surface"
24
+ },
25
+ "text": {
26
+ "type": "color",
27
+ "default": "#f6ead9",
28
+ "description": "Theme: text"
29
+ },
30
+ "muted": {
31
+ "type": "color",
32
+ "default": "#c4a98c",
33
+ "description": "Theme: muted"
34
+ },
35
+ "accent": {
36
+ "type": "color",
37
+ "default": "#f4a259",
38
+ "description": "Theme: accent"
39
+ },
40
+ "accent2": {
41
+ "type": "color",
42
+ "default": "#e76f51",
43
+ "description": "Theme: accent2"
44
+ },
45
+ "radius": {
46
+ "type": "number",
47
+ "default": 16,
48
+ "description": "Theme: radius"
49
+ },
50
+ "headWeight": {
51
+ "type": "number",
52
+ "default": 800,
53
+ "description": "Theme: headWeight"
54
+ },
55
+ "sectionNumber": {
56
+ "type": "string",
57
+ "default": "01",
58
+ "description": "Short number such as 01"
59
+ },
60
+ "sectionTitle": {
61
+ "type": "string",
62
+ "default": "Our story",
63
+ "description": "Name of the section"
64
+ },
65
+ "quote": {
66
+ "type": "string",
67
+ "default": "The best work is built one honest detail at a time.",
68
+ "description": "A pull quote"
69
+ },
70
+ "author": {
71
+ "type": "string",
72
+ "default": "Mira Chen",
73
+ "description": "Who said it"
74
+ },
75
+ "role": {
76
+ "type": "string",
77
+ "default": "Creative director",
78
+ "description": "Their role"
79
+ },
80
+ "resultsTitle": {
81
+ "type": "string",
82
+ "default": "In numbers",
83
+ "description": "Heading of the numbers"
84
+ },
85
+ "results": {
86
+ "type": "list",
87
+ "items": {
88
+ "value": {
89
+ "type": "string",
90
+ "default": ""
91
+ },
92
+ "label": {
93
+ "type": "string",
94
+ "default": ""
95
+ }
96
+ },
97
+ "default": [
98
+ {
99
+ "value": "12 yrs",
100
+ "label": "in business"
101
+ },
102
+ {
103
+ "value": "4,000",
104
+ "label": "customers"
105
+ },
106
+ {
107
+ "value": "98%",
108
+ "label": "come back"
109
+ }
110
+ ],
111
+ "description": "Exactly three numbers with labels"
112
+ },
113
+ "ctaHeadline": {
114
+ "type": "string",
115
+ "default": "Come say hello",
116
+ "description": "Closing line"
117
+ },
118
+ "ctaButton": {
119
+ "type": "string",
120
+ "default": "Visit us",
121
+ "description": "Button text"
122
+ },
123
+ "url": {
124
+ "type": "string",
125
+ "default": "example.com",
126
+ "description": "Web address"
127
+ }
128
+ },
129
+ "scenes": [
130
+ {
131
+ "id": "section-title",
132
+ "name": "Section title",
133
+ "durationFrames": 75,
134
+ "camera": {
135
+ "animations": [
136
+ {
137
+ "property": "zoom",
138
+ "keyframes": [
139
+ {
140
+ "frame": 0,
141
+ "value": 1.08
142
+ },
143
+ {
144
+ "frame": 75,
145
+ "value": 1,
146
+ "easing": "drift"
147
+ }
148
+ ]
149
+ }
150
+ ]
151
+ },
152
+ "layers": [
153
+ {
154
+ "use": "section_title",
155
+ "id": "section-title-block",
156
+ "with": {
157
+ "number": "{{sectionNumber}}",
158
+ "title": "{{sectionTitle}}"
159
+ }
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "id": "quote",
165
+ "name": "Quote",
166
+ "durationFrames": 150,
167
+ "camera": {
168
+ "animations": [
169
+ {
170
+ "property": "zoom",
171
+ "keyframes": [
172
+ {
173
+ "frame": 0,
174
+ "value": 1
175
+ },
176
+ {
177
+ "frame": 150,
178
+ "value": 1.05,
179
+ "easing": "drift"
180
+ }
181
+ ]
182
+ }
183
+ ]
184
+ },
185
+ "layers": [
186
+ {
187
+ "use": "quote",
188
+ "id": "quote-block",
189
+ "with": {
190
+ "quote": "{{quote}}",
191
+ "author": "{{author}}",
192
+ "role": "{{role}}"
193
+ }
194
+ },
195
+ {
196
+ "use": "lower_third",
197
+ "id": "lower-third",
198
+ "startFrame": 20,
199
+ "endFrame": 140,
200
+ "fixed": true,
201
+ "with": {
202
+ "name": "{{author}}",
203
+ "role": "{{role}}"
204
+ }
205
+ }
206
+ ],
207
+ "transitionIn": {
208
+ "type": "push",
209
+ "durationFrames": 16,
210
+ "direction": "left",
211
+ "easing": "glide"
212
+ }
213
+ },
214
+ {
215
+ "id": "stat-grid",
216
+ "name": "Stat grid",
217
+ "durationFrames": 120,
218
+ "camera": {
219
+ "animations": [
220
+ {
221
+ "property": "zoom",
222
+ "keyframes": [
223
+ {
224
+ "frame": 0,
225
+ "value": 1
226
+ },
227
+ {
228
+ "frame": 120,
229
+ "value": 1.05,
230
+ "easing": "drift"
231
+ }
232
+ ]
233
+ }
234
+ ]
235
+ },
236
+ "layers": [
237
+ {
238
+ "use": "stat_grid",
239
+ "id": "stat-grid-block",
240
+ "with": {
241
+ "title": "{{resultsTitle}}",
242
+ "stats": "{{results}}"
243
+ }
244
+ }
245
+ ],
246
+ "transitionIn": {
247
+ "type": "push",
248
+ "durationFrames": 16,
249
+ "direction": "left",
250
+ "easing": "glide"
251
+ }
252
+ },
253
+ {
254
+ "id": "cta-end",
255
+ "name": "Call to action",
256
+ "durationFrames": 120,
257
+ "camera": {
258
+ "animations": [
259
+ {
260
+ "property": "zoom",
261
+ "keyframes": [
262
+ {
263
+ "frame": 0,
264
+ "value": 1
265
+ },
266
+ {
267
+ "frame": 120,
268
+ "value": 1.06,
269
+ "easing": "drift"
270
+ }
271
+ ]
272
+ }
273
+ ]
274
+ },
275
+ "layers": [
276
+ {
277
+ "use": "cta_end",
278
+ "id": "cta-end-block",
279
+ "with": {
280
+ "headline": "{{ctaHeadline}}",
281
+ "button": "{{ctaButton}}",
282
+ "url": "{{url}}"
283
+ }
284
+ }
285
+ ],
286
+ "transitionIn": {
287
+ "type": "push",
288
+ "durationFrames": 16,
289
+ "direction": "left",
290
+ "easing": "glide"
291
+ }
292
+ }
293
+ ],
294
+ "components": {
295
+ "section_title": {
296
+ "description": "A short divider: a big number and a section name.",
297
+ "params": {
298
+ "number": {
299
+ "type": "string",
300
+ "default": "01"
301
+ },
302
+ "title": {
303
+ "type": "string",
304
+ "default": "The setup"
305
+ }
306
+ },
307
+ "layers": [
308
+ {
309
+ "id": "bg",
310
+ "type": "rect",
311
+ "x": 0,
312
+ "y": 0,
313
+ "width": "{{canvas.width}}",
314
+ "height": "{{canvas.height}}",
315
+ "fill": "{{bg}}"
316
+ },
317
+ {
318
+ "id": "glow",
319
+ "type": "circle",
320
+ "x": "{{round(canvas.width * 0.8)}}",
321
+ "y": "{{round(canvas.height * 0.1)}}",
322
+ "width": "{{round(min(canvas.width, canvas.height) * 1.1)}}",
323
+ "fill": "{{accent}}",
324
+ "opacity": 0.12,
325
+ "blur": 120,
326
+ "animations": [
327
+ {
328
+ "property": "scale",
329
+ "keyframes": [
330
+ {
331
+ "frame": 0,
332
+ "value": 0.9
333
+ },
334
+ {
335
+ "frame": 150,
336
+ "value": 1.1,
337
+ "easing": "drift"
338
+ }
339
+ ]
340
+ },
341
+ {
342
+ "property": "x",
343
+ "keyframes": [
344
+ {
345
+ "frame": 0,
346
+ "value": "{{round(canvas.width * 0.8)}}"
347
+ },
348
+ {
349
+ "frame": 180,
350
+ "value": "{{round(canvas.width * 0.7000000000000001)}}",
351
+ "easing": "drift"
352
+ }
353
+ ]
354
+ }
355
+ ]
356
+ },
357
+ {
358
+ "id": "glow2",
359
+ "type": "circle",
360
+ "x": "{{round(canvas.width * 0.19999999999999996)}}",
361
+ "y": "{{round(canvas.height * 0.9)}}",
362
+ "width": "{{round(min(canvas.width, canvas.height) * 0.8)}}",
363
+ "fill": "{{accent2}}",
364
+ "opacity": 0.072,
365
+ "blur": 140,
366
+ "animations": [
367
+ {
368
+ "property": "y",
369
+ "keyframes": [
370
+ {
371
+ "frame": 0,
372
+ "value": "{{round(canvas.height * 0.9)}}"
373
+ },
374
+ {
375
+ "frame": 180,
376
+ "value": "{{round(canvas.height * 0.8)}}",
377
+ "easing": "drift"
378
+ }
379
+ ]
380
+ },
381
+ {
382
+ "property": "scale",
383
+ "keyframes": [
384
+ {
385
+ "frame": 0,
386
+ "value": 1.1
387
+ },
388
+ {
389
+ "frame": 150,
390
+ "value": 0.9,
391
+ "easing": "drift"
392
+ }
393
+ ]
394
+ }
395
+ ]
396
+ },
397
+ {
398
+ "id": "stack",
399
+ "type": "group",
400
+ "x": "{{round(canvas.width * 0.08)}}",
401
+ "y": 0,
402
+ "width": "{{round(canvas.width * 0.84)}}",
403
+ "height": "{{canvas.height}}",
404
+ "layout": {
405
+ "direction": "column",
406
+ "gap": "{{round(min(canvas.width, canvas.height) * 0.012)}}",
407
+ "align": "start",
408
+ "justify": "center"
409
+ },
410
+ "children": [
411
+ {
412
+ "id": "number",
413
+ "type": "text",
414
+ "content": "{{number}}",
415
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.26)}}",
416
+ "color": "{{accent}}",
417
+ "fontWeight": 900,
418
+ "lineHeight": 0.9,
419
+ "startFrame": 0,
420
+ "animations": [
421
+ {
422
+ "property": "opacity",
423
+ "keyframes": [
424
+ {
425
+ "frame": 0,
426
+ "value": 0
427
+ },
428
+ {
429
+ "frame": 14,
430
+ "value": 1,
431
+ "easing": "glide"
432
+ }
433
+ ]
434
+ },
435
+ {
436
+ "property": "y",
437
+ "keyframes": [
438
+ {
439
+ "frame": 0,
440
+ "value": 40,
441
+ "easing": "land"
442
+ },
443
+ {
444
+ "frame": 18,
445
+ "value": 0
446
+ }
447
+ ]
448
+ }
449
+ ]
450
+ },
451
+ {
452
+ "id": "title",
453
+ "type": "text",
454
+ "content": "{{title}}",
455
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.075)}}",
456
+ "color": "{{text}}",
457
+ "fontWeight": "{{headWeight}}",
458
+ "maxWidth": "{{round(canvas.width * 0.84)}}",
459
+ "maxLines": 2,
460
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.05)}}",
461
+ "startFrame": 10,
462
+ "animations": [
463
+ {
464
+ "property": "opacity",
465
+ "keyframes": [
466
+ {
467
+ "frame": 0,
468
+ "value": 0
469
+ },
470
+ {
471
+ "frame": 14,
472
+ "value": 1,
473
+ "easing": "glide"
474
+ }
475
+ ]
476
+ },
477
+ {
478
+ "property": "y",
479
+ "keyframes": [
480
+ {
481
+ "frame": 0,
482
+ "value": 28,
483
+ "easing": "land"
484
+ },
485
+ {
486
+ "frame": 18,
487
+ "value": 0
488
+ }
489
+ ]
490
+ }
491
+ ]
492
+ }
493
+ ]
494
+ },
495
+ {
496
+ "id": "sfx-hit",
497
+ "type": "audio",
498
+ "src": "sfx:thump",
499
+ "startFrame": 0,
500
+ "volume": 0.5
501
+ }
502
+ ]
503
+ },
504
+ "quote": {
505
+ "description": "A pull quote with author and role.",
506
+ "params": {
507
+ "quote": {
508
+ "type": "string",
509
+ "default": "The best videos are built one honest frame at a time."
510
+ },
511
+ "author": {
512
+ "type": "string",
513
+ "default": "Mira Chen"
514
+ },
515
+ "role": {
516
+ "type": "string",
517
+ "default": "Creative director"
518
+ }
519
+ },
520
+ "layers": [
521
+ {
522
+ "id": "bg",
523
+ "type": "rect",
524
+ "x": 0,
525
+ "y": 0,
526
+ "width": "{{canvas.width}}",
527
+ "height": "{{canvas.height}}",
528
+ "fill": "{{bg}}"
529
+ },
530
+ {
531
+ "id": "glow",
532
+ "type": "circle",
533
+ "x": "{{round(canvas.width * 0.6)}}",
534
+ "y": "{{round(canvas.height * -0.2)}}",
535
+ "width": "{{round(min(canvas.width, canvas.height) * 1.1)}}",
536
+ "fill": "{{accent}}",
537
+ "opacity": 0.1,
538
+ "blur": 120,
539
+ "animations": [
540
+ {
541
+ "property": "scale",
542
+ "keyframes": [
543
+ {
544
+ "frame": 0,
545
+ "value": 0.9
546
+ },
547
+ {
548
+ "frame": 150,
549
+ "value": 1.1,
550
+ "easing": "drift"
551
+ }
552
+ ]
553
+ },
554
+ {
555
+ "property": "x",
556
+ "keyframes": [
557
+ {
558
+ "frame": 0,
559
+ "value": "{{round(canvas.width * 0.6)}}"
560
+ },
561
+ {
562
+ "frame": 180,
563
+ "value": "{{round(canvas.width * 0.5)}}",
564
+ "easing": "drift"
565
+ }
566
+ ]
567
+ }
568
+ ]
569
+ },
570
+ {
571
+ "id": "glow2",
572
+ "type": "circle",
573
+ "x": "{{round(canvas.width * 0.4)}}",
574
+ "y": "{{round(canvas.height * 1.2)}}",
575
+ "width": "{{round(min(canvas.width, canvas.height) * 0.8)}}",
576
+ "fill": "{{accent2}}",
577
+ "opacity": 0.06,
578
+ "blur": 140,
579
+ "animations": [
580
+ {
581
+ "property": "y",
582
+ "keyframes": [
583
+ {
584
+ "frame": 0,
585
+ "value": "{{round(canvas.height * 1.2)}}"
586
+ },
587
+ {
588
+ "frame": 180,
589
+ "value": "{{round(canvas.height * 1.1)}}",
590
+ "easing": "drift"
591
+ }
592
+ ]
593
+ },
594
+ {
595
+ "property": "scale",
596
+ "keyframes": [
597
+ {
598
+ "frame": 0,
599
+ "value": 1.1
600
+ },
601
+ {
602
+ "frame": 150,
603
+ "value": 0.9,
604
+ "easing": "drift"
605
+ }
606
+ ]
607
+ }
608
+ ]
609
+ },
610
+ {
611
+ "id": "stack",
612
+ "type": "group",
613
+ "x": "{{round(canvas.width * 0.08)}}",
614
+ "y": 0,
615
+ "width": "{{round(canvas.width * 0.84)}}",
616
+ "height": "{{canvas.height}}",
617
+ "layout": {
618
+ "direction": "column",
619
+ "gap": "{{round(min(canvas.width, canvas.height) * 0.025)}}",
620
+ "align": "start",
621
+ "justify": "center"
622
+ },
623
+ "children": [
624
+ {
625
+ "id": "mark",
626
+ "type": "text",
627
+ "content": "“",
628
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.26)}}",
629
+ "color": "{{accent}}",
630
+ "fontWeight": 900,
631
+ "lineHeight": 0.7,
632
+ "startFrame": 0,
633
+ "animations": [
634
+ {
635
+ "property": "opacity",
636
+ "keyframes": [
637
+ {
638
+ "frame": 0,
639
+ "value": 0
640
+ },
641
+ {
642
+ "frame": 14,
643
+ "value": 1,
644
+ "easing": "glide"
645
+ }
646
+ ]
647
+ },
648
+ {
649
+ "property": "y",
650
+ "keyframes": [
651
+ {
652
+ "frame": 0,
653
+ "value": 20,
654
+ "easing": "land"
655
+ },
656
+ {
657
+ "frame": 18,
658
+ "value": 0
659
+ }
660
+ ]
661
+ }
662
+ ]
663
+ },
664
+ {
665
+ "id": "quote",
666
+ "type": "text",
667
+ "content": "{{quote}}",
668
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.06)}}",
669
+ "color": "{{text}}",
670
+ "fontWeight": 700,
671
+ "lineHeight": 1.15,
672
+ "maxWidth": "{{round(canvas.width * 0.84)}}",
673
+ "maxLines": 6,
674
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.04)}}",
675
+ "startFrame": 8,
676
+ "animations": [
677
+ {
678
+ "property": "opacity",
679
+ "keyframes": [
680
+ {
681
+ "frame": 0,
682
+ "value": 0
683
+ },
684
+ {
685
+ "frame": 14,
686
+ "value": 1,
687
+ "easing": "glide"
688
+ }
689
+ ]
690
+ },
691
+ {
692
+ "property": "y",
693
+ "keyframes": [
694
+ {
695
+ "frame": 0,
696
+ "value": 28,
697
+ "easing": "land"
698
+ },
699
+ {
700
+ "frame": 18,
701
+ "value": 0
702
+ }
703
+ ]
704
+ }
705
+ ]
706
+ },
707
+ {
708
+ "id": "rule",
709
+ "type": "rect",
710
+ "width": "{{round(min(canvas.width, canvas.height) * 0.12)}}",
711
+ "height": "{{round(min(canvas.width, canvas.height) * 0.008)}}",
712
+ "radius": "{{round(min(canvas.width, canvas.height) * 0.004)}}",
713
+ "fill": "{{accent}}",
714
+ "startFrame": 30,
715
+ "animations": [
716
+ {
717
+ "property": "width",
718
+ "keyframes": [
719
+ {
720
+ "frame": 0,
721
+ "value": 1
722
+ },
723
+ {
724
+ "frame": 20,
725
+ "value": "{{round(min(canvas.width, canvas.height) * 0.12)}}",
726
+ "easing": "land"
727
+ }
728
+ ]
729
+ }
730
+ ]
731
+ },
732
+ {
733
+ "id": "author",
734
+ "type": "text",
735
+ "content": "{{author}}",
736
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.04)}}",
737
+ "color": "{{text}}",
738
+ "fontWeight": 700,
739
+ "startFrame": 38,
740
+ "animations": [
741
+ {
742
+ "property": "opacity",
743
+ "keyframes": [
744
+ {
745
+ "frame": 0,
746
+ "value": 0
747
+ },
748
+ {
749
+ "frame": 14,
750
+ "value": 1,
751
+ "easing": "glide"
752
+ }
753
+ ]
754
+ },
755
+ {
756
+ "property": "y",
757
+ "keyframes": [
758
+ {
759
+ "frame": 0,
760
+ "value": 18,
761
+ "easing": "land"
762
+ },
763
+ {
764
+ "frame": 18,
765
+ "value": 0
766
+ }
767
+ ]
768
+ }
769
+ ]
770
+ },
771
+ {
772
+ "id": "role",
773
+ "type": "text",
774
+ "content": "{{role}}",
775
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.032)}}",
776
+ "color": "{{muted}}",
777
+ "startFrame": 42,
778
+ "animations": [
779
+ {
780
+ "property": "opacity",
781
+ "keyframes": [
782
+ {
783
+ "frame": 0,
784
+ "value": 0
785
+ },
786
+ {
787
+ "frame": 14,
788
+ "value": 1,
789
+ "easing": "glide"
790
+ }
791
+ ]
792
+ },
793
+ {
794
+ "property": "y",
795
+ "keyframes": [
796
+ {
797
+ "frame": 0,
798
+ "value": 18,
799
+ "easing": "land"
800
+ },
801
+ {
802
+ "frame": 18,
803
+ "value": 0
804
+ }
805
+ ]
806
+ }
807
+ ]
808
+ }
809
+ ]
810
+ },
811
+ {
812
+ "id": "sfx-in",
813
+ "type": "audio",
814
+ "src": "sfx:tick",
815
+ "startFrame": 6,
816
+ "volume": 0.35
817
+ }
818
+ ]
819
+ },
820
+ "lower_third": {
821
+ "description": "A name and role plate that slides in at the bottom left and out again.",
822
+ "params": {
823
+ "name": {
824
+ "type": "string",
825
+ "default": "Mira Chen"
826
+ },
827
+ "role": {
828
+ "type": "string",
829
+ "default": "Creative director"
830
+ }
831
+ },
832
+ "layers": [
833
+ {
834
+ "id": "plate",
835
+ "type": "group",
836
+ "x": "{{round(canvas.width * 0.06)}}",
837
+ "y": "{{round(canvas.height * 0.78)}}",
838
+ "animations": [
839
+ {
840
+ "property": "x",
841
+ "keyframes": [
842
+ {
843
+ "frame": 0,
844
+ "value": "{{round(-canvas.width * 0.5)}}",
845
+ "easing": "land"
846
+ },
847
+ {
848
+ "frame": 18,
849
+ "value": 0
850
+ },
851
+ {
852
+ "frame": 100,
853
+ "value": 0
854
+ },
855
+ {
856
+ "frame": 118,
857
+ "value": "{{round(-canvas.width * 0.5)}}",
858
+ "easing": "exit"
859
+ }
860
+ ]
861
+ }
862
+ ],
863
+ "children": [
864
+ {
865
+ "id": "panel",
866
+ "type": "rect",
867
+ "x": 0,
868
+ "y": 0,
869
+ "width": "{{round(canvas.width * 0.42)}}",
870
+ "height": "{{round(min(canvas.width, canvas.height) * 0.15)}}",
871
+ "radius": "{{radius}}",
872
+ "fill": "{{surface}}",
873
+ "opacity": 0.92
874
+ },
875
+ {
876
+ "id": "bar",
877
+ "type": "rect",
878
+ "x": 0,
879
+ "y": 0,
880
+ "width": "{{round(min(canvas.width, canvas.height) * 0.012)}}",
881
+ "height": "{{round(min(canvas.width, canvas.height) * 0.15)}}",
882
+ "radius": "{{radius}}",
883
+ "fill": "{{accent}}"
884
+ },
885
+ {
886
+ "id": "name",
887
+ "type": "text",
888
+ "content": "{{name}}",
889
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.04)}}",
890
+ "color": "{{text}}",
891
+ "x": "{{round(min(canvas.width, canvas.height) * 0.04)}}",
892
+ "y": "{{round(min(canvas.width, canvas.height) * 0.026)}}",
893
+ "fontWeight": 800,
894
+ "maxWidth": "{{round(canvas.width * 0.42 - min(canvas.width, canvas.height) * 0.06)}}",
895
+ "maxLines": 1,
896
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.032)}}"
897
+ },
898
+ {
899
+ "id": "role",
900
+ "type": "text",
901
+ "content": "{{role}}",
902
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.032)}}",
903
+ "color": "{{muted}}",
904
+ "x": "{{round(min(canvas.width, canvas.height) * 0.04)}}",
905
+ "y": "{{round(min(canvas.width, canvas.height) * 0.088)}}",
906
+ "maxWidth": "{{round(canvas.width * 0.42 - min(canvas.width, canvas.height) * 0.06)}}",
907
+ "maxLines": 1,
908
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.024)}}"
909
+ }
910
+ ]
911
+ },
912
+ {
913
+ "id": "sfx-in",
914
+ "type": "audio",
915
+ "src": "sfx:whoosh",
916
+ "startFrame": 0,
917
+ "volume": 0.3
918
+ }
919
+ ]
920
+ },
921
+ "stat_grid": {
922
+ "description": "Three numbers side by side, each with a label.",
923
+ "params": {
924
+ "title": {
925
+ "type": "string",
926
+ "default": "The results"
927
+ },
928
+ "stats": {
929
+ "type": "list",
930
+ "items": {
931
+ "value": {
932
+ "type": "string",
933
+ "default": ""
934
+ },
935
+ "label": {
936
+ "type": "string",
937
+ "default": ""
938
+ }
939
+ },
940
+ "default": [
941
+ {
942
+ "value": "3x",
943
+ "label": "faster to make"
944
+ },
945
+ {
946
+ "value": "40%",
947
+ "label": "lower cost"
948
+ },
949
+ {
950
+ "value": "100%",
951
+ "label": "repeatable"
952
+ }
953
+ ]
954
+ }
955
+ },
956
+ "layers": [
957
+ {
958
+ "id": "bg",
959
+ "type": "rect",
960
+ "x": 0,
961
+ "y": 0,
962
+ "width": "{{canvas.width}}",
963
+ "height": "{{canvas.height}}",
964
+ "fill": "{{bg}}"
965
+ },
966
+ {
967
+ "id": "glow",
968
+ "type": "circle",
969
+ "x": "{{round(canvas.width * 0.5)}}",
970
+ "y": "{{round(canvas.height * 0.8)}}",
971
+ "width": "{{round(min(canvas.width, canvas.height) * 1.1)}}",
972
+ "fill": "{{accent}}",
973
+ "opacity": 0.1,
974
+ "blur": 120,
975
+ "animations": [
976
+ {
977
+ "property": "scale",
978
+ "keyframes": [
979
+ {
980
+ "frame": 0,
981
+ "value": 0.9
982
+ },
983
+ {
984
+ "frame": 150,
985
+ "value": 1.1,
986
+ "easing": "drift"
987
+ }
988
+ ]
989
+ },
990
+ {
991
+ "property": "x",
992
+ "keyframes": [
993
+ {
994
+ "frame": 0,
995
+ "value": "{{round(canvas.width * 0.5)}}"
996
+ },
997
+ {
998
+ "frame": 180,
999
+ "value": "{{round(canvas.width * 0.4)}}",
1000
+ "easing": "drift"
1001
+ }
1002
+ ]
1003
+ }
1004
+ ]
1005
+ },
1006
+ {
1007
+ "id": "glow2",
1008
+ "type": "circle",
1009
+ "x": "{{round(canvas.width * 0.5)}}",
1010
+ "y": "{{round(canvas.height * 0.19999999999999996)}}",
1011
+ "width": "{{round(min(canvas.width, canvas.height) * 0.8)}}",
1012
+ "fill": "{{accent2}}",
1013
+ "opacity": 0.06,
1014
+ "blur": 140,
1015
+ "animations": [
1016
+ {
1017
+ "property": "y",
1018
+ "keyframes": [
1019
+ {
1020
+ "frame": 0,
1021
+ "value": "{{round(canvas.height * 0.19999999999999996)}}"
1022
+ },
1023
+ {
1024
+ "frame": 180,
1025
+ "value": "{{round(canvas.height * 0.09999999999999998)}}",
1026
+ "easing": "drift"
1027
+ }
1028
+ ]
1029
+ },
1030
+ {
1031
+ "property": "scale",
1032
+ "keyframes": [
1033
+ {
1034
+ "frame": 0,
1035
+ "value": 1.1
1036
+ },
1037
+ {
1038
+ "frame": 150,
1039
+ "value": 0.9,
1040
+ "easing": "drift"
1041
+ }
1042
+ ]
1043
+ }
1044
+ ]
1045
+ },
1046
+ {
1047
+ "id": "stack",
1048
+ "type": "group",
1049
+ "x": "{{round(canvas.width * 0.08)}}",
1050
+ "y": 0,
1051
+ "width": "{{round(canvas.width * 0.84)}}",
1052
+ "height": "{{canvas.height}}",
1053
+ "layout": {
1054
+ "direction": "column",
1055
+ "gap": "{{round(min(canvas.width, canvas.height) * 0.07)}}",
1056
+ "align": "start",
1057
+ "justify": "center"
1058
+ },
1059
+ "children": [
1060
+ {
1061
+ "id": "title",
1062
+ "type": "text",
1063
+ "content": "{{title}}",
1064
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.05)}}",
1065
+ "color": "{{text}}",
1066
+ "fontWeight": "{{headWeight}}",
1067
+ "maxWidth": "{{round(canvas.width * 0.84)}}",
1068
+ "maxLines": 2,
1069
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.036)}}",
1070
+ "startFrame": 0,
1071
+ "animations": [
1072
+ {
1073
+ "property": "opacity",
1074
+ "keyframes": [
1075
+ {
1076
+ "frame": 0,
1077
+ "value": 0
1078
+ },
1079
+ {
1080
+ "frame": 14,
1081
+ "value": 1,
1082
+ "easing": "glide"
1083
+ }
1084
+ ]
1085
+ },
1086
+ {
1087
+ "property": "y",
1088
+ "keyframes": [
1089
+ {
1090
+ "frame": 0,
1091
+ "value": 24,
1092
+ "easing": "land"
1093
+ },
1094
+ {
1095
+ "frame": 18,
1096
+ "value": 0
1097
+ }
1098
+ ]
1099
+ }
1100
+ ]
1101
+ },
1102
+ {
1103
+ "id": "cells",
1104
+ "type": "group",
1105
+ "width": "{{round(canvas.width * 0.84)}}",
1106
+ "layout": {
1107
+ "direction": "row",
1108
+ "gap": "{{round(min(canvas.width, canvas.height) * 0.04)}}",
1109
+ "align": "start",
1110
+ "justify": "space-between"
1111
+ },
1112
+ "children": [
1113
+ {
1114
+ "repeat": "{{stats}}",
1115
+ "as": "st",
1116
+ "each": [
1117
+ {
1118
+ "id": "cell-{{index}}",
1119
+ "type": "group",
1120
+ "startFrame": "{{14 + index * 12}}",
1121
+ "layout": {
1122
+ "direction": "column",
1123
+ "gap": "{{round(min(canvas.width, canvas.height) * 0.012)}}"
1124
+ },
1125
+ "animations": [
1126
+ {
1127
+ "property": "opacity",
1128
+ "keyframes": [
1129
+ {
1130
+ "frame": 0,
1131
+ "value": 0
1132
+ },
1133
+ {
1134
+ "frame": 12,
1135
+ "value": 1
1136
+ }
1137
+ ]
1138
+ },
1139
+ {
1140
+ "property": "y",
1141
+ "keyframes": [
1142
+ {
1143
+ "frame": 0,
1144
+ "value": 30,
1145
+ "easing": "land"
1146
+ },
1147
+ {
1148
+ "frame": 18,
1149
+ "value": 0
1150
+ }
1151
+ ]
1152
+ }
1153
+ ],
1154
+ "children": [
1155
+ {
1156
+ "id": "bar-{{index}}",
1157
+ "type": "rect",
1158
+ "width": "{{round(canvas.width * 0.84 / max(count, 1) - min(canvas.width, canvas.height) * 0.04)}}",
1159
+ "height": "{{round(min(canvas.width, canvas.height) * 0.008)}}",
1160
+ "fill": "{{accent}}"
1161
+ },
1162
+ {
1163
+ "id": "v-{{index}}",
1164
+ "type": "text",
1165
+ "content": "{{st.value}}",
1166
+ "fontSize": "{{round(min(min(canvas.width, canvas.height) * 0.08, (canvas.width * 0.84 / max(count, 1) - min(canvas.width, canvas.height) * 0.04) * 0.3))}}",
1167
+ "color": "{{accent}}",
1168
+ "fontWeight": 900,
1169
+ "maxWidth": "{{round(canvas.width * 0.84 / max(count, 1) - min(canvas.width, canvas.height) * 0.04)}}",
1170
+ "lineHeight": 1.05
1171
+ },
1172
+ {
1173
+ "id": "l-{{index}}",
1174
+ "type": "text",
1175
+ "content": "{{st.label}}",
1176
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.032)}}",
1177
+ "color": "{{muted}}",
1178
+ "maxWidth": "{{round(canvas.width * 0.84 / max(count, 1) - min(canvas.width, canvas.height) * 0.04)}}",
1179
+ "maxLines": 3,
1180
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.026)}}"
1181
+ }
1182
+ ]
1183
+ }
1184
+ ]
1185
+ }
1186
+ ]
1187
+ }
1188
+ ]
1189
+ },
1190
+ {
1191
+ "repeat": "{{stats}}",
1192
+ "as": "x",
1193
+ "each": [
1194
+ {
1195
+ "id": "sfx-cell-{{index}}",
1196
+ "type": "audio",
1197
+ "src": "sfx:pop",
1198
+ "startFrame": "{{14 + index * 12}}",
1199
+ "volume": 0.4
1200
+ }
1201
+ ]
1202
+ }
1203
+ ]
1204
+ },
1205
+ "cta_end": {
1206
+ "description": "Closing scene: a headline, a button and a web address.",
1207
+ "params": {
1208
+ "headline": {
1209
+ "type": "string",
1210
+ "default": "Ready to start?"
1211
+ },
1212
+ "button": {
1213
+ "type": "string",
1214
+ "default": "Get started"
1215
+ },
1216
+ "url": {
1217
+ "type": "string",
1218
+ "default": "example.com"
1219
+ }
1220
+ },
1221
+ "layers": [
1222
+ {
1223
+ "id": "bg",
1224
+ "type": "rect",
1225
+ "x": 0,
1226
+ "y": 0,
1227
+ "width": "{{canvas.width}}",
1228
+ "height": "{{canvas.height}}",
1229
+ "fill": "{{bg}}"
1230
+ },
1231
+ {
1232
+ "id": "glow",
1233
+ "type": "circle",
1234
+ "x": "{{round(canvas.width * 0.5)}}",
1235
+ "y": "{{round(canvas.height * 0.4)}}",
1236
+ "width": "{{round(min(canvas.width, canvas.height) * 1.1)}}",
1237
+ "fill": "{{accent}}",
1238
+ "opacity": 0.16,
1239
+ "blur": 120,
1240
+ "animations": [
1241
+ {
1242
+ "property": "scale",
1243
+ "keyframes": [
1244
+ {
1245
+ "frame": 0,
1246
+ "value": 0.9
1247
+ },
1248
+ {
1249
+ "frame": 150,
1250
+ "value": 1.1,
1251
+ "easing": "drift"
1252
+ }
1253
+ ]
1254
+ },
1255
+ {
1256
+ "property": "x",
1257
+ "keyframes": [
1258
+ {
1259
+ "frame": 0,
1260
+ "value": "{{round(canvas.width * 0.5)}}"
1261
+ },
1262
+ {
1263
+ "frame": 180,
1264
+ "value": "{{round(canvas.width * 0.4)}}",
1265
+ "easing": "drift"
1266
+ }
1267
+ ]
1268
+ }
1269
+ ]
1270
+ },
1271
+ {
1272
+ "id": "glow2",
1273
+ "type": "circle",
1274
+ "x": "{{round(canvas.width * 0.5)}}",
1275
+ "y": "{{round(canvas.height * 0.6)}}",
1276
+ "width": "{{round(min(canvas.width, canvas.height) * 0.8)}}",
1277
+ "fill": "{{accent2}}",
1278
+ "opacity": 0.096,
1279
+ "blur": 140,
1280
+ "animations": [
1281
+ {
1282
+ "property": "y",
1283
+ "keyframes": [
1284
+ {
1285
+ "frame": 0,
1286
+ "value": "{{round(canvas.height * 0.6)}}"
1287
+ },
1288
+ {
1289
+ "frame": 180,
1290
+ "value": "{{round(canvas.height * 0.5)}}",
1291
+ "easing": "drift"
1292
+ }
1293
+ ]
1294
+ },
1295
+ {
1296
+ "property": "scale",
1297
+ "keyframes": [
1298
+ {
1299
+ "frame": 0,
1300
+ "value": 1.1
1301
+ },
1302
+ {
1303
+ "frame": 150,
1304
+ "value": 0.9,
1305
+ "easing": "drift"
1306
+ }
1307
+ ]
1308
+ }
1309
+ ]
1310
+ },
1311
+ {
1312
+ "id": "stack",
1313
+ "type": "group",
1314
+ "x": 0,
1315
+ "y": 0,
1316
+ "width": "{{canvas.width}}",
1317
+ "height": "{{canvas.height}}",
1318
+ "layout": {
1319
+ "direction": "column",
1320
+ "gap": "{{round(min(canvas.width, canvas.height) * 0.05)}}",
1321
+ "align": "center",
1322
+ "justify": "center"
1323
+ },
1324
+ "children": [
1325
+ {
1326
+ "id": "headline",
1327
+ "type": "text",
1328
+ "content": "{{headline}}",
1329
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.1)}}",
1330
+ "color": "{{text}}",
1331
+ "fontWeight": "{{headWeight}}",
1332
+ "textAlign": "center",
1333
+ "maxWidth": "{{round(canvas.width * 0.84)}}",
1334
+ "maxLines": 3,
1335
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.06)}}",
1336
+ "lineHeight": 1.05,
1337
+ "split": {
1338
+ "by": "words",
1339
+ "stagger": 4,
1340
+ "preset": "rise",
1341
+ "duration": 18
1342
+ }
1343
+ },
1344
+ {
1345
+ "id": "btn",
1346
+ "type": "group",
1347
+ "width": "{{round(canvas.width * 0.42)}}",
1348
+ "height": "{{round(min(canvas.width, canvas.height) * 0.13)}}",
1349
+ "startFrame": 24,
1350
+ "animations": [
1351
+ {
1352
+ "property": "scale",
1353
+ "keyframes": [
1354
+ {
1355
+ "frame": 0,
1356
+ "value": 0.85,
1357
+ "easing": "pop"
1358
+ },
1359
+ {
1360
+ "frame": 16,
1361
+ "value": 1
1362
+ }
1363
+ ]
1364
+ },
1365
+ {
1366
+ "property": "opacity",
1367
+ "keyframes": [
1368
+ {
1369
+ "frame": 0,
1370
+ "value": 0
1371
+ },
1372
+ {
1373
+ "frame": 8,
1374
+ "value": 1
1375
+ }
1376
+ ]
1377
+ }
1378
+ ],
1379
+ "children": [
1380
+ {
1381
+ "id": "pill",
1382
+ "type": "rect",
1383
+ "x": 0,
1384
+ "y": 0,
1385
+ "width": "{{round(canvas.width * 0.42)}}",
1386
+ "height": "{{round(min(canvas.width, canvas.height) * 0.13)}}",
1387
+ "radius": "{{round(min(canvas.width, canvas.height) * 0.065)}}",
1388
+ "fill": "{{accent}}"
1389
+ },
1390
+ {
1391
+ "id": "label",
1392
+ "type": "text",
1393
+ "content": "{{button}}",
1394
+ "x": "{{round(canvas.width * 0.21)}}",
1395
+ "y": "{{round(min(canvas.width, canvas.height) * 0.065 - min(canvas.width, canvas.height) * 0.03)}}",
1396
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.05)}}",
1397
+ "fontWeight": 800,
1398
+ "color": "{{bg}}",
1399
+ "textAlign": "center",
1400
+ "maxWidth": "{{round(canvas.width * 0.38)}}",
1401
+ "maxLines": 1,
1402
+ "minFontSize": "{{round(min(canvas.width, canvas.height) * 0.032)}}"
1403
+ }
1404
+ ]
1405
+ },
1406
+ {
1407
+ "id": "url",
1408
+ "type": "text",
1409
+ "content": "{{url}}",
1410
+ "fontSize": "{{round(min(canvas.width, canvas.height) * 0.04)}}",
1411
+ "color": "{{muted}}",
1412
+ "textAlign": "center",
1413
+ "maxWidth": "{{round(canvas.width * 0.8)}}",
1414
+ "startFrame": 34,
1415
+ "animations": [
1416
+ {
1417
+ "property": "opacity",
1418
+ "keyframes": [
1419
+ {
1420
+ "frame": 0,
1421
+ "value": 0
1422
+ },
1423
+ {
1424
+ "frame": 14,
1425
+ "value": 1,
1426
+ "easing": "glide"
1427
+ }
1428
+ ]
1429
+ },
1430
+ {
1431
+ "property": "y",
1432
+ "keyframes": [
1433
+ {
1434
+ "frame": 0,
1435
+ "value": 16,
1436
+ "easing": "land"
1437
+ },
1438
+ {
1439
+ "frame": 18,
1440
+ "value": 0
1441
+ }
1442
+ ]
1443
+ }
1444
+ ]
1445
+ }
1446
+ ]
1447
+ },
1448
+ {
1449
+ "id": "sfx-btn",
1450
+ "type": "audio",
1451
+ "src": "sfx:ding",
1452
+ "startFrame": 24,
1453
+ "volume": 0.45
1454
+ }
1455
+ ]
1456
+ }
1457
+ }
1458
+ }