dsh-remotion 0.2.0 → 0.3.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 (294) hide show
  1. package/README.en.md +37 -6
  2. package/README.md +33 -4
  3. package/lib/index.d.ts +8 -41
  4. package/lib/index.js +30 -99
  5. package/lib/skill-bundle.d.ts +56 -0
  6. package/lib/skill-bundle.js +218 -0
  7. package/package.json +1 -1
  8. package/skills/remotion-best-practices/SKILL.md +59 -0
  9. package/skills/remotion-best-practices/agents/openai.yaml +7 -0
  10. package/skills/remotion-best-practices/assets/remotion-icon.png +0 -0
  11. package/skills/remotion-best-practices/remotion-captions/SKILL.md +36 -0
  12. package/skills/remotion-best-practices/remotion-captions/agents/openai.yaml +7 -0
  13. package/skills/remotion-best-practices/remotion-captions/assets/remotion-icon.png +0 -0
  14. package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/display-captions.md +9 -3
  15. package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/import-srt-captions.md +5 -1
  16. package/skills/remotion-best-practices/remotion-create/SKILL.md +68 -0
  17. package/skills/remotion-best-practices/remotion-create/agents/openai.yaml +7 -0
  18. package/skills/remotion-best-practices/remotion-create/assets/remotion-icon.png +0 -0
  19. package/skills/{remotion/rules → remotion-best-practices/remotion-create}/tailwind.md +1 -1
  20. package/skills/remotion-best-practices/remotion-create/video-layout.md +9 -0
  21. package/skills/remotion-best-practices/remotion-docs/SKILL.md +46 -0
  22. package/skills/remotion-best-practices/remotion-docs/agents/openai.yaml +7 -0
  23. package/skills/remotion-best-practices/remotion-docs/assets/remotion-icon.png +0 -0
  24. package/skills/remotion-best-practices/remotion-interactivity/SKILL.md +247 -0
  25. package/skills/remotion-best-practices/remotion-interactivity/agents/openai.yaml +7 -0
  26. package/skills/remotion-best-practices/remotion-interactivity/assets/remotion-icon.png +0 -0
  27. package/skills/remotion-best-practices/remotion-maps/SKILL.md +36 -0
  28. package/skills/remotion-best-practices/remotion-maps/agents/openai.yaml +7 -0
  29. package/skills/remotion-best-practices/remotion-maps/assets/remotion-icon.png +0 -0
  30. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  31. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  32. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  33. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  34. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  35. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  36. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  37. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  38. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  39. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  40. package/skills/remotion-best-practices/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  41. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  42. package/skills/remotion-best-practices/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  43. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  44. package/skills/remotion-best-practices/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  45. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  46. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  47. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  48. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  49. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  50. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  51. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  52. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  53. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  54. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  55. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  56. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  57. package/skills/remotion-best-practices/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  58. package/skills/remotion-best-practices/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  59. package/skills/remotion-best-practices/remotion-markup/SKILL.md +365 -0
  60. package/skills/remotion-best-practices/remotion-markup/agents/openai.yaml +7 -0
  61. package/skills/remotion-best-practices/remotion-markup/assets/remotion-icon.png +0 -0
  62. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio.md +4 -2
  63. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/calculate-metadata.md +4 -2
  64. package/skills/remotion-best-practices/remotion-markup/compositions.md +117 -0
  65. package/skills/remotion-best-practices/remotion-markup/cropping.md +34 -0
  66. package/skills/remotion-best-practices/remotion-markup/effects.md +251 -0
  67. package/skills/{remotion/rules/videos.md → remotion-best-practices/remotion-markup/embedding-videos.md} +6 -4
  68. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/ffmpeg.md +5 -1
  69. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/gifs.md +55 -9
  70. package/skills/remotion-best-practices/remotion-markup/google-fonts.md +76 -0
  71. package/skills/remotion-best-practices/remotion-markup/html-in-canvas.md +128 -0
  72. package/skills/remotion-best-practices/remotion-markup/images.md +73 -0
  73. package/skills/remotion-best-practices/remotion-markup/light-leaks.md +106 -0
  74. package/skills/remotion-best-practices/remotion-markup/local-fonts.md +69 -0
  75. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/lottie.md +4 -1
  76. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-dom-nodes.md +5 -1
  77. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/measuring-text.md +8 -2
  78. package/skills/remotion-best-practices/remotion-markup/multi-scene-video.md +81 -0
  79. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/parameters.md +3 -1
  80. package/skills/remotion-best-practices/remotion-markup/remotion-maps/SKILL.md +36 -0
  81. package/skills/remotion-best-practices/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  82. package/skills/remotion-best-practices/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  83. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  84. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  85. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  86. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  87. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  88. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  89. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  90. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  91. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  92. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  93. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  94. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  95. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  96. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  97. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  98. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  99. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  100. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  101. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  102. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  103. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  104. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  105. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  106. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  107. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  108. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  109. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  110. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  111. package/skills/remotion-best-practices/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  112. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/sequencing.md +63 -12
  113. package/skills/remotion-best-practices/remotion-markup/sfx.md +51 -0
  114. package/skills/remotion-best-practices/remotion-markup/text-highlights.md +56 -0
  115. package/skills/remotion-best-practices/remotion-markup/timing.md +111 -0
  116. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/transitions.md +49 -7
  117. package/skills/remotion-best-practices/remotion-markup/video-editing.md +90 -0
  118. package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/voiceover.md +2 -2
  119. package/skills/remotion-best-practices/remotion-multimedia/SKILL.md +20 -0
  120. package/skills/remotion-best-practices/remotion-multimedia/agents/openai.yaml +7 -0
  121. package/skills/remotion-best-practices/remotion-multimedia/assets/remotion-icon.png +0 -0
  122. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-audio-duration.md +1 -3
  123. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-dimensions.md +1 -3
  124. package/skills/{remotion/rules → remotion-best-practices/remotion-multimedia}/get-video-duration.md +1 -3
  125. package/skills/remotion-best-practices/remotion-render/SKILL.md +27 -0
  126. package/skills/remotion-best-practices/remotion-render/agents/openai.yaml +7 -0
  127. package/skills/remotion-best-practices/remotion-render/assets/remotion-icon.png +0 -0
  128. package/skills/remotion-best-practices/remotion-saas/SKILL.md +33 -0
  129. package/skills/remotion-best-practices/remotion-saas/agents/openai.yaml +7 -0
  130. package/skills/remotion-best-practices/remotion-saas/assets/remotion-icon.png +0 -0
  131. package/skills/remotion-best-practices/remotion-saas/framework.md +21 -0
  132. package/skills/remotion-best-practices/remotion-saas/player.md +33 -0
  133. package/skills/remotion-best-practices/remotion-saas/rendering.md +69 -0
  134. package/skills/remotion-best-practices/remotion-studio/SKILL.md +24 -0
  135. package/skills/remotion-best-practices/remotion-studio/agents/openai.yaml +7 -0
  136. package/skills/remotion-best-practices/remotion-studio/assets/remotion-icon.png +0 -0
  137. package/skills/remotion-best-practices/remotion-upgrade/SKILL.md +31 -0
  138. package/skills/remotion-best-practices/remotion-upgrade/agents/openai.yaml +7 -0
  139. package/skills/remotion-best-practices/remotion-upgrade/assets/remotion-icon.png +0 -0
  140. package/skills/remotion-captions/SKILL.md +36 -0
  141. package/skills/remotion-captions/agents/openai.yaml +7 -0
  142. package/skills/remotion-captions/assets/remotion-icon.png +0 -0
  143. package/skills/remotion-captions/display-captions.md +190 -0
  144. package/skills/remotion-captions/import-srt-captions.md +73 -0
  145. package/skills/remotion-captions/transcribe-captions.md +70 -0
  146. package/skills/remotion-create/SKILL.md +68 -0
  147. package/skills/remotion-create/agents/openai.yaml +7 -0
  148. package/skills/remotion-create/assets/remotion-icon.png +0 -0
  149. package/skills/remotion-create/tailwind.md +11 -0
  150. package/skills/remotion-create/video-layout.md +9 -0
  151. package/skills/remotion-docs/SKILL.md +46 -0
  152. package/skills/remotion-docs/agents/openai.yaml +7 -0
  153. package/skills/remotion-docs/assets/remotion-icon.png +0 -0
  154. package/skills/remotion-interactivity/SKILL.md +247 -0
  155. package/skills/remotion-interactivity/agents/openai.yaml +7 -0
  156. package/skills/remotion-interactivity/assets/remotion-icon.png +0 -0
  157. package/skills/remotion-maps/SKILL.md +36 -0
  158. package/skills/remotion-maps/agents/openai.yaml +7 -0
  159. package/skills/remotion-maps/assets/remotion-icon.png +0 -0
  160. package/skills/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  161. package/skills/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  162. package/skills/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  163. package/skills/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  164. package/skills/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  165. package/skills/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  166. package/skills/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  167. package/skills/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  168. package/skills/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  169. package/skills/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  170. package/skills/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  171. package/skills/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  172. package/skills/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  173. package/skills/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  174. package/skills/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  175. package/skills/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  176. package/skills/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  177. package/skills/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  178. package/skills/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  179. package/skills/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  180. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  181. package/skills/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  182. package/skills/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  183. package/skills/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  184. package/skills/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  185. package/skills/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  186. package/skills/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  187. package/skills/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  188. package/skills/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  189. package/skills/remotion-markup/3d.md +86 -0
  190. package/skills/remotion-markup/SKILL.md +365 -0
  191. package/skills/remotion-markup/agents/openai.yaml +7 -0
  192. package/skills/remotion-markup/assets/remotion-icon.png +0 -0
  193. package/skills/remotion-markup/audio-visualization.md +198 -0
  194. package/skills/remotion-markup/audio.md +171 -0
  195. package/skills/remotion-markup/calculate-metadata.md +136 -0
  196. package/skills/remotion-markup/compositions.md +117 -0
  197. package/skills/remotion-markup/cropping.md +34 -0
  198. package/skills/remotion-markup/effects.md +251 -0
  199. package/skills/remotion-markup/embedding-videos.md +173 -0
  200. package/skills/remotion-markup/ffmpeg.md +38 -0
  201. package/skills/remotion-markup/gifs.md +187 -0
  202. package/skills/remotion-markup/google-fonts.md +76 -0
  203. package/skills/remotion-markup/html-in-canvas.md +128 -0
  204. package/skills/remotion-markup/images.md +73 -0
  205. package/skills/remotion-markup/light-leaks.md +106 -0
  206. package/skills/remotion-markup/local-fonts.md +69 -0
  207. package/skills/remotion-markup/lottie.md +73 -0
  208. package/skills/remotion-markup/measuring-dom-nodes.md +38 -0
  209. package/skills/remotion-markup/measuring-text.md +146 -0
  210. package/skills/remotion-markup/multi-scene-video.md +81 -0
  211. package/skills/remotion-markup/parameters.md +111 -0
  212. package/skills/remotion-markup/remotion-maps/SKILL.md +36 -0
  213. package/skills/remotion-markup/remotion-maps/agents/openai.yaml +7 -0
  214. package/skills/remotion-markup/remotion-maps/assets/remotion-icon.png +0 -0
  215. package/skills/remotion-markup/remotion-maps/techniques/cesium/TECHNIQUE.md +89 -0
  216. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/CesiumFlythrough.tsx +284 -0
  217. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/cesium-path.json +299 -0
  218. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/city-path.json +12 -0
  219. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/example-Root.tsx +39 -0
  220. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/flight-path.ts +35 -0
  221. package/skills/remotion-markup/remotion-maps/techniques/cesium/assets/sample-river.geojson +215 -0
  222. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-data-sources.md +43 -0
  223. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-flyover-architecture.md +128 -0
  224. package/skills/remotion-markup/remotion-maps/techniques/cesium/references/3d-troubleshooting.md +57 -0
  225. package/skills/remotion-markup/remotion-maps/techniques/cesium/scripts/prep-cesium-path.mjs +161 -0
  226. package/skills/remotion-markup/remotion-maps/techniques/mapbox/TECHNIQUE.md +449 -0
  227. package/skills/remotion-markup/remotion-maps/techniques/mapbox/references/render-stability.md +64 -0
  228. package/skills/remotion-markup/remotion-maps/techniques/maplibre/TECHNIQUE.md +465 -0
  229. package/skills/remotion-markup/remotion-maps/techniques/maplibre/references/render-stability.md +64 -0
  230. package/skills/remotion-markup/remotion-maps/techniques/maptiler/TECHNIQUE.md +80 -0
  231. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/CountryLabel.tsx +70 -0
  232. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/MapTilerVectorElement.ts +80 -0
  233. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/RiverReveal.tsx +363 -0
  234. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/example-Root.tsx +22 -0
  235. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/country-meta.json +7535 -0
  236. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/sample-data/yarlung-flow.json +605 -0
  237. package/skills/remotion-markup/remotion-maps/techniques/maptiler/assets/tokens.ts +34 -0
  238. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-data-sources.md +91 -0
  239. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-explainer-architecture.md +129 -0
  240. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/map-geo-prep.md +85 -0
  241. package/skills/remotion-markup/remotion-maps/techniques/maptiler/references/render-stability.md +64 -0
  242. package/skills/remotion-markup/remotion-maps/techniques/maptiler/scripts/prep-geo.mjs +202 -0
  243. package/skills/remotion-markup/remotion-maps/techniques/static-map/TECHNIQUE.md +37 -0
  244. package/skills/remotion-markup/sequencing.md +169 -0
  245. package/skills/remotion-markup/sfx.md +51 -0
  246. package/skills/remotion-markup/silence-detection.md +71 -0
  247. package/skills/remotion-markup/text-highlights.md +56 -0
  248. package/skills/remotion-markup/timing.md +111 -0
  249. package/skills/remotion-markup/transitions.md +239 -0
  250. package/skills/remotion-markup/video-editing.md +90 -0
  251. package/skills/remotion-markup/voiceover.md +99 -0
  252. package/skills/remotion-multimedia/SKILL.md +20 -0
  253. package/skills/remotion-multimedia/agents/openai.yaml +7 -0
  254. package/skills/remotion-multimedia/assets/remotion-icon.png +0 -0
  255. package/skills/remotion-multimedia/get-audio-duration.md +56 -0
  256. package/skills/remotion-multimedia/get-video-dimensions.md +66 -0
  257. package/skills/remotion-multimedia/get-video-duration.md +58 -0
  258. package/skills/remotion-render/SKILL.md +27 -0
  259. package/skills/remotion-render/agents/openai.yaml +7 -0
  260. package/skills/remotion-render/assets/remotion-icon.png +0 -0
  261. package/skills/remotion-render/transparent-videos.md +106 -0
  262. package/skills/remotion-saas/SKILL.md +33 -0
  263. package/skills/remotion-saas/agents/openai.yaml +7 -0
  264. package/skills/remotion-saas/assets/remotion-icon.png +0 -0
  265. package/skills/remotion-saas/framework.md +21 -0
  266. package/skills/remotion-saas/player.md +33 -0
  267. package/skills/remotion-saas/rendering.md +69 -0
  268. package/skills/remotion-studio/SKILL.md +24 -0
  269. package/skills/remotion-studio/agents/openai.yaml +7 -0
  270. package/skills/remotion-studio/assets/remotion-icon.png +0 -0
  271. package/skills/remotion-upgrade/SKILL.md +31 -0
  272. package/skills/remotion-upgrade/agents/openai.yaml +7 -0
  273. package/skills/remotion-upgrade/assets/remotion-icon.png +0 -0
  274. package/skills/remotion/SKILL.md +0 -95
  275. package/skills/remotion/rules/animations.md +0 -31
  276. package/skills/remotion/rules/assets.md +0 -78
  277. package/skills/remotion/rules/can-decode.md +0 -81
  278. package/skills/remotion/rules/charts.md +0 -120
  279. package/skills/remotion/rules/compositions.md +0 -154
  280. package/skills/remotion/rules/extract-frames.md +0 -229
  281. package/skills/remotion/rules/fonts.md +0 -152
  282. package/skills/remotion/rules/images.md +0 -134
  283. package/skills/remotion/rules/light-leaks.md +0 -73
  284. package/skills/remotion/rules/maps.md +0 -412
  285. package/skills/remotion/rules/sfx.md +0 -30
  286. package/skills/remotion/rules/subtitles.md +0 -36
  287. package/skills/remotion/rules/text-animations.md +0 -20
  288. package/skills/remotion/rules/timing.md +0 -136
  289. package/skills/remotion/rules/trimming.md +0 -51
  290. /package/skills/{remotion/rules → remotion-best-practices/remotion-captions}/transcribe-captions.md +0 -0
  291. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/3d.md +0 -0
  292. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/audio-visualization.md +0 -0
  293. /package/skills/{remotion/rules → remotion-best-practices/remotion-markup}/silence-detection.md +0 -0
  294. /package/skills/{remotion/rules → remotion-best-practices/remotion-render}/transparent-videos.md +0 -0
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: remotion-best-practices
3
+ description: Router for all Remotion skills
4
+ version: 4.0.519
5
+ ---
6
+
7
+ ## Preserve user changes
8
+
9
+ Users may make edits in the code outside of the conversation.
10
+
11
+ If you detect a surprising change made in the meanwhile, don't overwrite it, assume it was intentional or ask for confirmation.
12
+
13
+ ## Creating a video
14
+
15
+ If the user asks to make, create, or build a new video or composition, load [Create a new Remotion video](./remotion-create/SKILL.md), whether or not a Remotion project already exists.
16
+
17
+ ## New project setup
18
+
19
+ If no Remotion project currently exists, load [Create a new Remotion project](./remotion-create/SKILL.md)
20
+
21
+ ## React Markup Best Practices
22
+
23
+ If you are writing Remotion React Markup, load [Remotion Markup Best Practices](./remotion-markup/SKILL.md)
24
+
25
+ ## Maps
26
+
27
+ For static maps, animated routes and markers, geographic explainers, Mapbox, MapLibre, MapTiler, GeoJSON, or 3D geographic flyovers, load [Remotion Maps](./remotion-maps/SKILL.md).
28
+
29
+ ## Multimedia
30
+
31
+ For achieving multimedia tasks in the browser, such as trimming, cropping videos, or getting metadata from them, load [Remotion Multimedia](./remotion-multimedia/SKILL.md)
32
+
33
+ ## Improving Interactivity
34
+
35
+ By structuring the Remotion markup well, we can allow users to interactively change things in the Studio and write back to code. If relevant: [Interactivity Best Practices](./remotion-interactivity/SKILL.md)
36
+
37
+ ## Rendering
38
+
39
+ For advanced rendering beyond simple `npx remotion render`, see: [Rendering Best Practices](./remotion-render/SKILL.md)
40
+
41
+ ## Opening Remotion Studio
42
+
43
+ To launch a project in Remotion Studio, open its exact local URL, or configure Studio CLI flags, load [Remotion Studio](./remotion-studio/SKILL.md).
44
+
45
+ ## Captions
46
+
47
+ When working with Captions, load [Remotion Captions](./remotion-captions/SKILL.md).
48
+
49
+ ## Creating a SaaS, automation or application
50
+
51
+ Use the [Remotion SaaS skill](./remotion-saas/SKILL.md) for knowledge about Remotion-powered SaaS apps, such as `<Player>`, rendering on Lambda, Vercel, Cloudflare, via Express.js, client-side rendering, or for finding the right SaaS template.
52
+
53
+ ## Looking up Remotion APIs and documentation
54
+
55
+ To find and read current Remotion documentation, load [Remotion Docs](./remotion-docs/SKILL.md).
56
+
57
+ ## Upgrading
58
+
59
+ To upgrade Remotion, related packages, compatible Mediabunny packages, and installed Remotion Agent Skills, load [Remotion Upgrade](./remotion-upgrade/SKILL.md).
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-best-practices'
3
+ short_description: 'Route Remotion tasks to the right workflow'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-best-practices: Make a promo video for my product'
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: remotion-captions
3
+ description: Transcribing, displaying and animating captions
4
+ version: 4.0.519
5
+ ---
6
+
7
+ All captions must be processed in JSON. The captions must use the [`Caption`](https://www.remotion.dev/docs/captions/caption.md) type which is the following:
8
+
9
+ ```ts
10
+ import type { Caption } from "@remotion/captions";
11
+ ```
12
+
13
+ This is the definition:
14
+
15
+ ```ts
16
+ type Caption = {
17
+ text: string;
18
+ startMs: number;
19
+ endMs: number;
20
+ timestampMs: number | null;
21
+ confidence: number | null;
22
+ pageBreakAfter?: boolean;
23
+ };
24
+ ```
25
+
26
+ ## Generating captions
27
+
28
+ To transcribe video and audio files to generate captions, load the [transcribe-captions.md](transcribe-captions.md) file for more instructions.
29
+
30
+ ## Displaying captions
31
+
32
+ To display captions in your video, load the [display-captions.md](display-captions.md) file for more instructions.
33
+
34
+ ## Importing captions
35
+
36
+ To import captions from a .srt file, load the [import-srt-captions.md](import-srt-captions.md) file for more instructions.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-captions'
3
+ short_description: 'Transcribe, display, and animate captions'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-captions: Transcribe my video and display captions'
@@ -54,7 +54,11 @@ export const MyComponent: React.FC = () => {
54
54
  return null;
55
55
  }
56
56
 
57
- return <AbsoluteFill>{/* Render captions here */}</AbsoluteFill>;
57
+ return (
58
+ <AbsoluteFill>
59
+ {/* Render captions here */}
60
+ </AbsoluteFill>
61
+ );
58
62
  };
59
63
  ```
60
64
 
@@ -80,6 +84,8 @@ const { pages } = useMemo(() => {
80
84
  }, [captions]);
81
85
  ```
82
86
 
87
+ If a caption has `pageBreakAfter: true`, the current page ends after that caption and the next caption starts a new page.
88
+
83
89
  ## Rendering with Sequences
84
90
 
85
91
  Map over the pages and render each one in a `<Sequence>`. Calculate the start frame and duration from the page timing:
@@ -152,13 +158,13 @@ const CaptionPage: React.FC<{ page: TikTokPage }> = ({ page }) => {
152
158
  return (
153
159
  <AbsoluteFill style={{ justifyContent: "center", alignItems: "center" }}>
154
160
  <div style={{ fontSize: 80, fontWeight: "bold", whiteSpace: "pre" }}>
155
- {page.tokens.map((token) => {
161
+ {page.tokens.map((token, tokenIndex) => {
156
162
  const isActive =
157
163
  token.fromMs <= absoluteTimeMs && token.toMs > absoluteTimeMs;
158
164
 
159
165
  return (
160
166
  <span
161
- key={token.fromMs}
167
+ key={`${token.fromMs}-${tokenIndex}`}
162
168
  style={{ color: isActive ? HIGHLIGHT_COLOR : "white" }}
163
169
  >
164
170
  {token.text}
@@ -58,7 +58,11 @@ export const MyComponent: React.FC = () => {
58
58
  return null;
59
59
  }
60
60
 
61
- return <AbsoluteFill>{/* Use captions here */}</AbsoluteFill>;
61
+ return (
62
+ <AbsoluteFill>
63
+ {/* Use captions here */}
64
+ </AbsoluteFill>
65
+ );
62
66
  };
63
67
  ```
64
68
 
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: remotion-create
3
+ description: Create a new Remotion video
4
+ version: 4.0.519
5
+ ---
6
+
7
+ These are instructions for making a new Remotion project and composition.
8
+ If this is not the next task, see [Remotion Best Practices](../remotion-best-practices/SKILL.md)
9
+
10
+ ## Scaffold a project
11
+
12
+ If a project already exists, skip this.
13
+ Ensure Node.js and Git is installed, and the current folder is appropriate for starting a new project.
14
+
15
+ Scaffold one using:
16
+
17
+ ```bash
18
+ npx create-video@latest --yes --blank --no-tailwind my-video
19
+ cd my-video
20
+ npm i
21
+ ```
22
+
23
+ Replace `my-video` with a suitable project name.
24
+
25
+ ## Designing a video
26
+
27
+ Keep the scaffold and add React Markup.
28
+ Follow [Remotion React Markup Best Practices](../remotion-markup/SKILL.md) and [Video Layout Rules](video-layout.md) for video-first layout and text sizing guidance.
29
+
30
+ ## Is this a multi-scene video?
31
+
32
+ If this is a video with multiple subsequence videos, follow guidance at [Multi-scene videos](../remotion-markup/multi-scene-video.md).
33
+
34
+ ## Interactivity Best Practices
35
+
36
+ By structuring the React Markup following [Remotion Interactivity Best Practices](../remotion-interactivity/SKILL.md), you allow the user to make edits in the Studio which write back to code.
37
+
38
+ ## TailwindCSS
39
+
40
+ If Tailwind is requested, see [tailwind.md](tailwind.md) for using TailwindCSS in Remotion.
41
+
42
+ ## Open the preview
43
+
44
+ Start the preview server after building the composition:
45
+
46
+ ```bash
47
+ npx remotion studio --no-open
48
+ ```
49
+
50
+ This will start a long-running process and print the server URL for the preview.
51
+ If the server is already started, it will print the URL.
52
+ If an in-harness browser is available, open it there.
53
+ You can visit a specific composition by navigating to `/[composition-id]`, for example `http://localhost:3000/MapAnimation`.
54
+
55
+ ## Render the video
56
+
57
+ Only render if the user explicitly asks for it.
58
+
59
+ ```
60
+ npx remotion render
61
+ ```
62
+
63
+ For more options, see [Rendering](../remotion-render/SKILL.md).
64
+
65
+ ## Follow-up
66
+
67
+ The video creation process has finished.
68
+ For follow-up prompts, use [Remotion Best Practices](../remotion-best-practices/SKILL.md)
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-create'
3
+ short_description: 'Create a new Remotion video project'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-create: Create a Remotion video and make a promo for my product'
@@ -8,4 +8,4 @@ You can and should use TailwindCSS in Remotion, if TailwindCSS is installed in t
8
8
 
9
9
  Don't use `transition-*` or `animate-*` classes - always animate using the `useCurrentFrame()` hook.
10
10
 
11
- Tailwind must be installed and enabled first in a Remotion project - fetch https://www.remotion.dev/docs/tailwind using WebFetch for instructions.
11
+ Tailwind must be installed and enabled first in a Remotion project - see https://www.remotion.dev/docs/tailwind.
@@ -0,0 +1,9 @@
1
+ You are designing a video, not a webpage.
2
+
3
+ - Decide what the viewer should notice first in each scene. Build the frame around that one thing.
4
+ - Keep important content inside a generous safe area. For 1080px-wide videos, keep key text at least 80px from the sides and 100px from the top and bottom.
5
+ - Do not add redundant elements.
6
+ - For 1080px-wide compositions, use these rough minimums:
7
+ - Main headline: 84px
8
+ - Important supporting text: 44px
9
+ - Scale those values with the composition width.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: remotion-docs
3
+ description: Search Remotion documentation
4
+ version: 4.0.519
5
+ ---
6
+
7
+ This skill teaches you how to discover and read current Remotion documentation.
8
+ If this is not relevant, load [Remotion Best Practices](../remotion-best-practices/SKILL.md) instead.
9
+
10
+ ## Searching the docs
11
+
12
+ Use the Algolia search API to find relevant documentation pages:
13
+
14
+ ```
15
+ POST https://plsduol1ca-dsn.algolia.net/1/indexes/*/queries?x-algolia-api-key=3e42dbd4f895fe93ff5cf40d860c4a85&x-algolia-application-id=PLSDUOL1CA
16
+ Content-Type: application/x-www-form-urlencoded
17
+
18
+ {
19
+ "requests": [
20
+ {
21
+ "query": "<your search query>",
22
+ "indexName": "remotion",
23
+ "params": "attributesToRetrieve=[\"hierarchy.lvl0\",\"hierarchy.lvl1\",\"hierarchy.lvl2\",\"url\"]&hitsPerPage=10"
24
+ }
25
+ ]
26
+ }
27
+ ```
28
+
29
+ Each hit contains a `url` field pointing to the documentation page.
30
+
31
+ ## Fetching a page as Markdown
32
+
33
+ Append `.md` to any Remotion docs URL to retrieve its Markdown source (saves tokens):
34
+
35
+ ```
36
+ https://www.remotion.dev/docs/use-video-config.md
37
+ https://www.remotion.dev/docs/sequence.md
38
+ https://www.remotion.dev/docs/lambda/rendermediaonlambda.md
39
+ ```
40
+
41
+ ## Workflow
42
+
43
+ 1. Search Algolia for the concept or API you need.
44
+ 2. Pick the most relevant URL(s) from the results.
45
+ 3. Fetch each URL with the `.md` suffix.
46
+ 4. Implement using the current documentation rather than memorized API knowledge.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-docs'
3
+ short_description: 'Search current Remotion documentation'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-docs: What server-side rendering options does Remotion have?'
@@ -0,0 +1,247 @@
1
+ ---
2
+ name: remotion-interactivity
3
+ description: Structure Remotion markup for interactivity
4
+ version: 4.0.519
5
+ ---
6
+
7
+ By writing Remotion markup in a specific way, the Remotion Studio is able to recognize the structure of the code and makes it interactive:
8
+
9
+ - Allowing items to be selected by clicking on them
10
+ - Allowing drag+drop, resizing and rotation
11
+ - Editing the CSS styles
12
+ - Making keyframes and easing values editable
13
+
14
+ If the markup is too complex for the Studio to make it interactive, then the values become grayed out.
15
+
16
+ ## Make an HTML element interactive using `Interactive`
17
+
18
+ Every HTML and SVG element (except `<Img>`, it already is interactive) such as `<div>` can be turned interactive using `Interactive`:
19
+
20
+ ```tsx title="Interactive elements"
21
+ <Interactive.Div
22
+ name="Greeting card"
23
+ style={{fontSize: 80, padding: 24}}
24
+ >
25
+ Hello
26
+ </Interactive.Div>
27
+ ```
28
+
29
+ This allows styles and keyframes to be set in the Studio. Be sensible, if a component has many elements, the timeline might get messy.
30
+
31
+ ## Prefer inline text
32
+
33
+ If text is fixed and only used once, write it directly inside the interactive element instead of extracting it into a constant.
34
+
35
+ ```tsx title="Inline text"
36
+ // 👍 Fixed copy stays editable
37
+ <Interactive.Div name="Title">
38
+ Remotion Best Practices
39
+ </Interactive.Div>
40
+ ```
41
+
42
+ Use a prop or variable only when the text is dynamic or reused.
43
+
44
+ ## Give interactive elements a descriptive name
45
+
46
+ Add a `name` prop to elements to make them easily identifyable.
47
+ Avoid computed names, hardcode them.
48
+
49
+ ```tsx title="Interactive names"
50
+ <>
51
+ <Interactive.Div name="Hero title" style={{fontSize: 80}}>
52
+ Launch day
53
+ </Interactive.Div>
54
+ <Img name="Avatar" src="https://remotion.media/image.jpeg" />
55
+ <Video name="Background" src="https://remotion.media/video.mp4" />
56
+ <Sequence name="Title">
57
+ Launch day
58
+ </Sequence>
59
+ </>
60
+ ```
61
+
62
+ ## Keep all CSS styles inline
63
+
64
+ The best way is to just pass a plain object to `style` - no referring to constants, no object spreading, no math.
65
+
66
+ ```tsx title="Interactive example"
67
+ <Interactive.Div
68
+ style={{
69
+ fontSize: 80,
70
+ color: 'red',
71
+ }}
72
+ >
73
+ Hello World!
74
+ </Interactive.Div>
75
+ ```
76
+
77
+ ```tsx title="❌ Bad for interactivity"
78
+ const baseStyle = useMemo(() => {
79
+ return {
80
+ fontSize: 12 // ❌ Non-inline styles are not supported
81
+ }
82
+ }, []);
83
+
84
+ <Interactive.Div
85
+ style={{
86
+ ...baseStyle, // ❌ Spreading is not supported
87
+ color: RED, // ❌ Referring to constants is not supported
88
+ scale: frame * 10 // ❌ Math is not supported
89
+ }}
90
+ >
91
+ Hello World!
92
+ </Interactive.Div>
93
+ ```
94
+
95
+ ## Animate using `interpolate()`
96
+
97
+ Write animations as inline `interpolate()` calls on the property that changes.
98
+ The output range, easing, extrapolation and `output` property should use hardcoded values.
99
+
100
+ The input range may additionally use `durationInFrames`, `fps`, `width` and `height` destructured directly from `useVideoConfig()`. Bare identifiers such as `durationInFrames`, multiplication with a number such as `2 * fps` or `fps * 2`, and subtraction of a number such as `durationInFrames - 1` are supported.
101
+
102
+ ```tsx title="Inline values"
103
+ const {fps, durationInFrames} = useVideoConfig();
104
+
105
+ // 👍 Inline values can be standardized and keyframed
106
+ <Interactive.Div
107
+ name="Product card"
108
+ style={{
109
+ color: 'white',
110
+ fontSize: 80,
111
+ scale: interpolate(frame, [0, fps], [0, 1], {
112
+ easing: Easing.spring({damping: 200}),
113
+ output: 'perceptual-scale',
114
+ extrapolateLeft: 'clamp',
115
+ extrapolateRight: 'clamp'
116
+ }),
117
+ rotate: interpolate(frame, [0, 1 * fps], ['0deg', '20deg'], {
118
+ easing: Easing.spring({damping: 200}),
119
+ extrapolateLeft: 'clamp',
120
+ extrapolateRight: 'clamp'
121
+ }),
122
+ translate: interpolate(
123
+ frame,
124
+ [durationInFrames - 30, durationInFrames],
125
+ ['0px 0px', '0px 120px'],
126
+ {
127
+ easing: Easing.spring({damping: 200}),
128
+ output: 'perceptual-scale',
129
+ extrapolateLeft: 'clamp',
130
+ extrapolateRight: 'clamp'
131
+ }
132
+ ),
133
+ }}
134
+ />
135
+ ```
136
+
137
+ ```tsx title="❌ Bad interactivity"
138
+ const translateY = interpolate(frame, [0, 30], [0, 120]); // ❌ Math should be directly in the markup
139
+
140
+ <Interactive.Div
141
+ name="Product card"
142
+ style={{
143
+ translate: translateY, // ❌ Only inline interpolate() calls are supported,
144
+ rotate: interpolate(frame, [start, start + 10], [0, Math.PI]), // ❌ Cannot use math with arbitrary variables, cannot use constants
145
+ scale: interpolate(anyVariable, [0, 30], [0, 1]) // ❌ Can only interpret the `frame` variable.
146
+ }}
147
+ />
148
+ ```
149
+
150
+ ## Use `scale`, `translate`, `rotate` CSS properties
151
+
152
+ Avoid the `transform` CSS property.
153
+ If possible, use `scale`, `rotate` and `translate` instead because only they are interactively editable.
154
+
155
+ ## Keep composition metadata inline
156
+
157
+ When scaffolding a composition, keep `width`, `height`, `fps`, `durationInFrames` and `defaultProps` inline and make no type assertions.
158
+
159
+ The Props editor can save visual edits back to your code when `defaultProps` is an inline object literal on `<Composition>` or `<Still>`.
160
+
161
+ ```tsx
162
+ // 👍 Static values are in <Composition>, dynamic values are in calculateMetadata()
163
+ const calculateMetadata = useMemo(async () => {
164
+ const dimensions = await getDimensions(); // just an example
165
+ return {width: dimensions.width, height: dimensions.height};
166
+ });
167
+
168
+ <Composition
169
+ id="my-video"
170
+ component={MyComponent}
171
+ durationInFrames={150}
172
+ fps={30}
173
+ calculateMetadata={calculateMetadata}
174
+ defaultProps={{title: 'Hello', color: '#0b84ff'}}
175
+ />
176
+ ```
177
+
178
+ ```tsx title="Negative examples"
179
+ const defaultProps = {title: 'Hello', color: '#0b84ff'}; // ❌ Don't extract defaultProps, must be inline
180
+ const calculateMetadata = useMemo(() => {
181
+ // ❌ Unnecessary because no calculation is being done,
182
+ return {durationInFrames: 150, fps: 30, width: 1920, height: 1080};
183
+ });
184
+
185
+ <Composition
186
+ id="my-video"
187
+ component={MyComponent}
188
+ calculateMetadata={calculateMetadata}
189
+ defaultProps={{
190
+ title: 'Hello',
191
+ } as Props} // ❌ Don't have type assertions, instead type MyComponent correctly
192
+ />
193
+ ```
194
+
195
+ Use only `calculateMetadata()` for the part of the metadata that is dynamic.
196
+
197
+ ## Effects should be inline too
198
+
199
+ The effects array should not be computed.
200
+ The same rules for setting keyframes as `interpolate()` apply too here: All values should also be hardcoded: Input range, output range, easing, extrapolation, `output` property.
201
+
202
+ ```tsx title="Effects"
203
+ // 👍 Parameters are inline and the array shape is stable
204
+ <CanvasImage
205
+ src={src}
206
+ width={1280}
207
+ height={720}
208
+ effects={[
209
+ radialProgressiveBlur({
210
+ center: [0.5, 0.5],
211
+ width: 1.2,
212
+ height: 0.8,
213
+ start: 0.2,
214
+ disabled: true,
215
+ rotation: interpolate(frame, [0, 120], [0, 180]),
216
+ }),
217
+ ]}
218
+ />
219
+
220
+ const center = [0.5, 0.5] as const;
221
+ const rotation = frame * 1.5;
222
+
223
+ <CanvasImage
224
+ src={src}
225
+ width={1280}
226
+ height={720}
227
+ // ❌ Conditional effect is not animateable
228
+ effects={enabled ? [
229
+ radialProgressiveBlur({
230
+ // ❌ Not inline
231
+ center,
232
+ rotation,
233
+ }),
234
+ ] : []}
235
+ />
236
+ ```
237
+
238
+ Render separate elements if one version should have effects and another should not.
239
+
240
+ ## Making your own component interactive
241
+
242
+ To make a custom userland component interactive, use:
243
+ [Make a component interactive](https://www.remotion.dev/docs/studio/make-component-interactive.md)
244
+
245
+ ## Video editing
246
+
247
+ If a Remotion component mainly consists of video and audio clips, see [Video editing](../remotion-markup/video-editing.md) for best practices on how to structure Remotion markup so the clips are interactively editable in the timeline.
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-interactivity'
3
+ short_description: 'Make compositions editable in Remotion Studio'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-interactivity: Make the markup in MyComp.tsx interactive'
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: remotion-maps
3
+ description: Remotion Map animation knowledge
4
+ version: 4.0.519
5
+ ---
6
+
7
+ # Remotion Maps
8
+
9
+ Choose exactly one technique from the intended shot, then load only that technique's `TECHNIQUE.md`.
10
+ Every technique directory is self-contained and may be removed without breaking the others.
11
+
12
+ ## [Static map](techniques/static-map/TECHNIQUE.md)
13
+
14
+ - Requires you grab a satellite image and mount it in a `<Img>` tag, and animate on top
15
+
16
+ ## [Mapbox](techniques/mapbox/TECHNIQUE.md)
17
+
18
+ - Requires a Mapbox key
19
+ - Nicer styles by default
20
+ - Map can display a round globe when zoomed out
21
+ - Includes nice 3D buildings such as the Eiffel tower
22
+
23
+ ## [MapLibre](techniques/maplibre/TECHNIQUE.md)
24
+
25
+ - Requires no API key, fully free
26
+ - Does not include 3D building
27
+
28
+ ## [MapTiler](techniques/maptiler/TECHNIQUE.md)
29
+
30
+ - Uses MapTiler
31
+ - Annotations can be drawn on top of geographic features: borders, rivers, labels
32
+
33
+ ## [CesiumJS](techniques/cesium/TECHNIQUE.md)
34
+
35
+ - Flythroughs through terrain and mountains
36
+ - "Flight simulator" perspective
@@ -0,0 +1,7 @@
1
+ interface:
2
+ display_name: '/remotion-maps'
3
+ short_description: 'Create animated maps in Remotion videos'
4
+ icon_small: './assets/remotion-icon.png'
5
+ icon_large: './assets/remotion-icon.png'
6
+ brand_color: '#0B84F3'
7
+ default_prompt: '$remotion-maps: Animate a dot from Zurich to New York.'