@nguyenphp/antigravity-marketing 1.0.16 → 1.0.19

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 (376) hide show
  1. package/README.md +187 -74
  2. package/bin/index.js +4 -4
  3. package/package.json +4 -3
  4. package/templates/.agent/agents/backend-specialist.md +263 -0
  5. package/templates/.agent/agents/database-architect.md +226 -0
  6. package/templates/.agent/agents/debugger.md +225 -0
  7. package/templates/.agent/agents/devops-engineer.md +242 -0
  8. package/templates/.agent/agents/documentation-writer.md +104 -0
  9. package/templates/.agent/agents/explorer-agent.md +73 -0
  10. package/templates/.agent/agents/frontend-specialist.md +527 -0
  11. package/templates/.agent/agents/game-developer.md +162 -0
  12. package/templates/.agent/agents/mobile-developer.md +377 -0
  13. package/templates/.agent/agents/orchestrator.md +400 -0
  14. package/templates/.agent/agents/penetration-tester.md +188 -0
  15. package/templates/.agent/agents/performance-optimizer.md +187 -0
  16. package/templates/.agent/agents/project-planner.md +403 -0
  17. package/templates/.agent/agents/security-auditor.md +170 -0
  18. package/templates/.agent/agents/seo-specialist.md +111 -0
  19. package/templates/.agent/agents/test-engineer.md +158 -0
  20. package/templates/.agent/rules/GEMINI.md +248 -0
  21. package/templates/.agent/skills/analytics-marketing/SKILL.md +172 -324
  22. package/templates/.agent/skills/api-patterns/SKILL.md +81 -0
  23. package/templates/.agent/skills/api-patterns/api-style.md +42 -0
  24. package/templates/.agent/skills/api-patterns/auth.md +24 -0
  25. package/templates/.agent/skills/api-patterns/documentation.md +26 -0
  26. package/templates/.agent/skills/api-patterns/graphql.md +41 -0
  27. package/templates/.agent/skills/api-patterns/rate-limiting.md +31 -0
  28. package/templates/.agent/skills/api-patterns/response.md +37 -0
  29. package/templates/.agent/skills/api-patterns/rest.md +40 -0
  30. package/templates/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
  31. package/templates/.agent/skills/api-patterns/security-testing.md +122 -0
  32. package/templates/.agent/skills/api-patterns/trpc.md +41 -0
  33. package/templates/.agent/skills/api-patterns/versioning.md +22 -0
  34. package/templates/.agent/skills/app-builder/SKILL.md +75 -0
  35. package/templates/.agent/skills/app-builder/agent-coordination.md +71 -0
  36. package/templates/.agent/skills/app-builder/feature-building.md +53 -0
  37. package/templates/.agent/skills/app-builder/project-detection.md +34 -0
  38. package/templates/.agent/skills/app-builder/scaffolding.md +118 -0
  39. package/templates/.agent/skills/app-builder/tech-stack.md +40 -0
  40. package/templates/.agent/skills/app-builder/templates/SKILL.md +39 -0
  41. package/templates/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  42. package/templates/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  43. package/templates/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  44. package/templates/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  45. package/templates/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  46. package/templates/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  47. package/templates/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  48. package/templates/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +82 -0
  49. package/templates/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +100 -0
  50. package/templates/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +106 -0
  51. package/templates/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +101 -0
  52. package/templates/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  53. package/templates/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +93 -0
  54. package/templates/.agent/skills/architecture/SKILL.md +55 -0
  55. package/templates/.agent/skills/architecture/context-discovery.md +43 -0
  56. package/templates/.agent/skills/architecture/examples.md +94 -0
  57. package/templates/.agent/skills/architecture/pattern-selection.md +68 -0
  58. package/templates/.agent/skills/architecture/patterns-reference.md +50 -0
  59. package/templates/.agent/skills/architecture/trade-off-analysis.md +77 -0
  60. package/templates/.agent/skills/banner-design/SKILL.md +192 -0
  61. package/templates/.agent/skills/banner-design/references/banner-sizes-and-styles.md +118 -0
  62. package/templates/.agent/skills/bash-linux/SKILL.md +199 -0
  63. package/templates/.agent/skills/behavioral-modes/SKILL.md +242 -0
  64. package/templates/.agent/skills/brainstorming/SKILL.md +163 -0
  65. package/templates/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
  66. package/templates/.agent/skills/brand/SKILL.md +97 -0
  67. package/templates/.agent/skills/brand/references/approval-checklist.md +169 -0
  68. package/templates/.agent/skills/brand/references/asset-organization.md +157 -0
  69. package/templates/.agent/skills/brand/references/brand-guideline-template.md +140 -0
  70. package/templates/.agent/skills/brand/references/color-palette-management.md +186 -0
  71. package/templates/.agent/skills/brand/references/consistency-checklist.md +94 -0
  72. package/templates/.agent/skills/brand/references/logo-usage-rules.md +185 -0
  73. package/templates/.agent/skills/brand/references/messaging-framework.md +85 -0
  74. package/templates/.agent/skills/brand/references/typography-specifications.md +214 -0
  75. package/templates/.agent/skills/brand/references/update.md +118 -0
  76. package/templates/.agent/skills/brand/references/visual-identity.md +96 -0
  77. package/templates/.agent/skills/brand/references/voice-framework.md +88 -0
  78. package/templates/.agent/skills/brand/scripts/extract-colors.cjs +341 -0
  79. package/templates/.agent/skills/brand/scripts/inject-brand-context.cjs +349 -0
  80. package/templates/.agent/skills/brand/scripts/sync-brand-to-tokens.cjs +266 -0
  81. package/templates/.agent/skills/brand/scripts/validate-asset.cjs +387 -0
  82. package/templates/.agent/skills/brand/templates/brand-guidelines-starter.md +275 -0
  83. package/templates/.agent/skills/clean-code/SKILL.md +201 -0
  84. package/templates/.agent/skills/code-review-checklist/SKILL.md +109 -0
  85. package/templates/.agent/skills/copywriting/SKILL.md +250 -0
  86. package/templates/.agent/skills/database-design/SKILL.md +52 -0
  87. package/templates/.agent/skills/database-design/database-selection.md +43 -0
  88. package/templates/.agent/skills/database-design/indexing.md +39 -0
  89. package/templates/.agent/skills/database-design/migrations.md +48 -0
  90. package/templates/.agent/skills/database-design/optimization.md +36 -0
  91. package/templates/.agent/skills/database-design/orm-selection.md +30 -0
  92. package/templates/.agent/skills/database-design/schema-design.md +56 -0
  93. package/templates/.agent/skills/database-design/scripts/schema_validator.py +172 -0
  94. package/templates/.agent/skills/deployment-procedures/SKILL.md +241 -0
  95. package/templates/.agent/skills/docker-expert/SKILL.md +409 -0
  96. package/templates/.agent/skills/frontend-design/animation-guide.md +331 -0
  97. package/templates/.agent/skills/frontend-design/color-system.md +311 -0
  98. package/templates/.agent/skills/frontend-design/decision-trees.md +418 -0
  99. package/templates/.agent/skills/frontend-design/motion-graphics.md +306 -0
  100. package/templates/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  101. package/templates/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
  102. package/templates/.agent/skills/frontend-design/typography-system.md +345 -0
  103. package/templates/.agent/skills/frontend-design/ux-psychology.md +541 -0
  104. package/templates/.agent/skills/frontend-design/visual-effects.md +383 -0
  105. package/templates/.agent/skills/frontend-slides/SKILL.md +92 -0
  106. package/templates/.agent/skills/frontend-slides/STYLE_PRESETS.md +347 -0
  107. package/templates/.agent/skills/frontend-slides/animation-patterns.md +110 -0
  108. package/templates/.agent/skills/frontend-slides/examples/n8n-jupviec-automation.html +789 -0
  109. package/templates/.agent/skills/frontend-slides/examples/n8n-jupviec-automation.pptx +0 -0
  110. package/templates/.agent/skills/frontend-slides/html-template.md +347 -0
  111. package/templates/.agent/skills/frontend-slides/scripts/export-pptx.py +58 -0
  112. package/templates/.agent/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  113. package/templates/.agent/skills/frontend-slides/viewport-base.css +153 -0
  114. package/templates/.agent/skills/game-development/2d-games/SKILL.md +119 -0
  115. package/templates/.agent/skills/game-development/3d-games/SKILL.md +135 -0
  116. package/templates/.agent/skills/game-development/SKILL.md +167 -0
  117. package/templates/.agent/skills/game-development/game-art/SKILL.md +185 -0
  118. package/templates/.agent/skills/game-development/game-audio/SKILL.md +190 -0
  119. package/templates/.agent/skills/game-development/game-design/SKILL.md +129 -0
  120. package/templates/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
  121. package/templates/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
  122. package/templates/.agent/skills/game-development/pc-games/SKILL.md +144 -0
  123. package/templates/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
  124. package/templates/.agent/skills/game-development/web-games/SKILL.md +150 -0
  125. package/templates/.agent/skills/geo-fundamentals/SKILL.md +156 -0
  126. package/templates/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  127. package/templates/.agent/skills/growth-engine/SKILL.md +244 -0
  128. package/templates/.agent/skills/i18n-localization/SKILL.md +154 -0
  129. package/templates/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  130. package/templates/.agent/skills/lint-and-validate/SKILL.md +45 -0
  131. package/templates/.agent/skills/lint-and-validate/scripts/lint_runner.py +172 -0
  132. package/templates/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  133. package/templates/.agent/skills/marketing-report-expert/SKILL.md +70 -0
  134. package/templates/.agent/skills/mcp-builder/SKILL.md +176 -0
  135. package/templates/.agent/skills/minimax-docx/LICENSE +21 -0
  136. package/templates/.agent/skills/minimax-docx/SKILL.md +274 -0
  137. package/templates/.agent/skills/minimax-docx/assets/styles/academic_styles.xml +250 -0
  138. package/templates/.agent/skills/minimax-docx/assets/styles/corporate_styles.xml +284 -0
  139. package/templates/.agent/skills/minimax-docx/assets/styles/default_styles.xml +449 -0
  140. package/templates/.agent/skills/minimax-docx/assets/xsd/aesthetic-rules.xsd +470 -0
  141. package/templates/.agent/skills/minimax-docx/assets/xsd/business-rules.xsd +130 -0
  142. package/templates/.agent/skills/minimax-docx/assets/xsd/common-types.xsd +159 -0
  143. package/templates/.agent/skills/minimax-docx/assets/xsd/wml-subset.xsd +589 -0
  144. package/templates/.agent/skills/minimax-docx/references/cjk_typography.md +357 -0
  145. package/templates/.agent/skills/minimax-docx/references/cjk_university_template_guide.md +184 -0
  146. package/templates/.agent/skills/minimax-docx/references/comments_guide.md +191 -0
  147. package/templates/.agent/skills/minimax-docx/references/design_good_bad_examples.md +829 -0
  148. package/templates/.agent/skills/minimax-docx/references/design_principles.md +819 -0
  149. package/templates/.agent/skills/minimax-docx/references/openxml_element_order.md +308 -0
  150. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part1.md +4061 -0
  151. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part2.md +2820 -0
  152. package/templates/.agent/skills/minimax-docx/references/openxml_encyclopedia_part3.md +3381 -0
  153. package/templates/.agent/skills/minimax-docx/references/openxml_namespaces.md +82 -0
  154. package/templates/.agent/skills/minimax-docx/references/openxml_units.md +72 -0
  155. package/templates/.agent/skills/minimax-docx/references/scenario_a_create.md +284 -0
  156. package/templates/.agent/skills/minimax-docx/references/scenario_b_edit_content.md +295 -0
  157. package/templates/.agent/skills/minimax-docx/references/scenario_c_apply_template.md +456 -0
  158. package/templates/.agent/skills/minimax-docx/references/track_changes_guide.md +200 -0
  159. package/templates/.agent/skills/minimax-docx/references/troubleshooting.md +506 -0
  160. package/templates/.agent/skills/minimax-docx/references/typography_guide.md +294 -0
  161. package/templates/.agent/skills/minimax-docx/references/xsd_validation_guide.md +158 -0
  162. package/templates/.agent/skills/minimax-docx/scripts/doc_to_docx.sh +40 -0
  163. package/templates/.agent/skills/minimax-docx/scripts/docx_preview.sh +37 -0
  164. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/MiniMaxAIDocx.Cli.csproj +19 -0
  165. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Cli/Program.cs +18 -0
  166. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/AnalyzeCommand.cs +147 -0
  167. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ApplyTemplateCommand.cs +322 -0
  168. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/CreateCommand.cs +324 -0
  169. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/DiffCommand.cs +155 -0
  170. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/EditContentCommand.cs +487 -0
  171. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/FixOrderCommand.cs +108 -0
  172. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/MergeRunsCommand.cs +122 -0
  173. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Commands/ValidateCommand.cs +107 -0
  174. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/MiniMaxAIDocx.Core.csproj +15 -0
  175. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/CommentSynchronizer.cs +169 -0
  176. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/ElementOrder.cs +80 -0
  177. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/NamespaceConstants.cs +42 -0
  178. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/RunMerger.cs +81 -0
  179. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/StyleAnalyzer.cs +81 -0
  180. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/TrackChangesHelper.cs +99 -0
  181. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/OpenXml/UnitConverter.cs +23 -0
  182. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples.cs +1832 -0
  183. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch1.cs +910 -0
  184. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch2.cs +999 -0
  185. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch3.cs +1048 -0
  186. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/AestheticRecipeSamples_Batch4.cs +1038 -0
  187. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/CharacterFormattingSamples.cs +1020 -0
  188. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/DocumentCreationSamples.cs +1121 -0
  189. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FieldAndTocSamples.cs +624 -0
  190. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/FootnoteAndCommentSamples.cs +675 -0
  191. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/HeaderFooterSamples.cs +838 -0
  192. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ImageSamples.cs +917 -0
  193. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ListAndNumberingSamples.cs +826 -0
  194. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/ParagraphFormattingSamples.cs +1199 -0
  195. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/StyleSystemSamples.cs +1487 -0
  196. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TableSamples.cs +1163 -0
  197. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Samples/TrackChangesSamples.cs +595 -0
  198. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/CjkHelper.cs +39 -0
  199. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/FontDefaults.cs +24 -0
  200. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Typography/PageSizes.cs +20 -0
  201. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/BusinessRuleValidator.cs +224 -0
  202. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/GateCheckValidator.cs +148 -0
  203. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/ValidationResult.cs +23 -0
  204. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.Core/Validation/XsdValidator.cs +69 -0
  205. package/templates/.agent/skills/minimax-docx/scripts/dotnet/MiniMaxAIDocx.slnx +4 -0
  206. package/templates/.agent/skills/minimax-docx/scripts/env_check.sh +196 -0
  207. package/templates/.agent/skills/minimax-docx/scripts/setup.ps1 +274 -0
  208. package/templates/.agent/skills/minimax-docx/scripts/setup.sh +504 -0
  209. package/templates/.agent/skills/minimax-multimodal-toolkit/SKILL.md +359 -0
  210. package/templates/.agent/skills/minimax-pdf/README.md +222 -0
  211. package/templates/.agent/skills/minimax-pdf/SKILL.md +201 -0
  212. package/templates/.agent/skills/minimax-pdf/design/design.md +381 -0
  213. package/templates/.agent/skills/minimax-pdf/scripts/cover.py +1579 -0
  214. package/templates/.agent/skills/minimax-pdf/scripts/fill_inspect.py +200 -0
  215. package/templates/.agent/skills/minimax-pdf/scripts/fill_write.py +242 -0
  216. package/templates/.agent/skills/minimax-pdf/scripts/make.sh +491 -0
  217. package/templates/.agent/skills/minimax-pdf/scripts/merge.py +112 -0
  218. package/templates/.agent/skills/minimax-pdf/scripts/palette.py +559 -0
  219. package/templates/.agent/skills/minimax-pdf/scripts/reformat_parse.py +374 -0
  220. package/templates/.agent/skills/minimax-pdf/scripts/render_body.py +1055 -0
  221. package/templates/.agent/skills/minimax-pdf/scripts/render_cover.cjs +111 -0
  222. package/templates/.agent/skills/minimax-xlsx/SKILL.md +138 -0
  223. package/templates/.agent/skills/minimax-xlsx/references/create.md +691 -0
  224. package/templates/.agent/skills/minimax-xlsx/references/edit.md +684 -0
  225. package/templates/.agent/skills/minimax-xlsx/references/fix.md +37 -0
  226. package/templates/.agent/skills/minimax-xlsx/references/format.md +768 -0
  227. package/templates/.agent/skills/minimax-xlsx/references/ooxml-cheatsheet.md +231 -0
  228. package/templates/.agent/skills/minimax-xlsx/references/read-analyze.md +97 -0
  229. package/templates/.agent/skills/minimax-xlsx/references/validate.md +772 -0
  230. package/templates/.agent/skills/minimax-xlsx/scripts/formula_check.py +422 -0
  231. package/templates/.agent/skills/minimax-xlsx/scripts/libreoffice_recalc.py +248 -0
  232. package/templates/.agent/skills/minimax-xlsx/scripts/shared_strings_builder.py +163 -0
  233. package/templates/.agent/skills/minimax-xlsx/scripts/style_audit.py +575 -0
  234. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_add_column.py +395 -0
  235. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_insert_row.py +274 -0
  236. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_pack.py +87 -0
  237. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_reader.py +362 -0
  238. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_shift_rows.py +396 -0
  239. package/templates/.agent/skills/minimax-xlsx/scripts/xlsx_unpack.py +130 -0
  240. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/[Content_Types].xml +9 -0
  241. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/_rels/.rels +6 -0
  242. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/_rels/workbook.xml.rels +19 -0
  243. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/sharedStrings.xml +33 -0
  244. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/styles.xml +160 -0
  245. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/workbook.xml +30 -0
  246. package/templates/.agent/skills/minimax-xlsx/templates/minimal_xlsx/xl/worksheets/sheet1.xml +70 -0
  247. package/templates/.agent/skills/mobile-design/SKILL.md +394 -0
  248. package/templates/.agent/skills/mobile-design/decision-trees.md +516 -0
  249. package/templates/.agent/skills/mobile-design/mobile-backend.md +491 -0
  250. package/templates/.agent/skills/mobile-design/mobile-color-system.md +420 -0
  251. package/templates/.agent/skills/mobile-design/mobile-debugging.md +122 -0
  252. package/templates/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
  253. package/templates/.agent/skills/mobile-design/mobile-navigation.md +458 -0
  254. package/templates/.agent/skills/mobile-design/mobile-performance.md +767 -0
  255. package/templates/.agent/skills/mobile-design/mobile-testing.md +356 -0
  256. package/templates/.agent/skills/mobile-design/mobile-typography.md +433 -0
  257. package/templates/.agent/skills/mobile-design/platform-android.md +666 -0
  258. package/templates/.agent/skills/mobile-design/platform-ios.md +561 -0
  259. package/templates/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
  260. package/templates/.agent/skills/mobile-design/touch-psychology.md +537 -0
  261. package/templates/.agent/skills/nestjs-expert/SKILL.md +552 -0
  262. package/templates/.agent/skills/nextjs-best-practices/SKILL.md +203 -0
  263. package/templates/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
  264. package/templates/.agent/skills/parallel-agents/SKILL.md +175 -0
  265. package/templates/.agent/skills/performance-profiling/SKILL.md +143 -0
  266. package/templates/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  267. package/templates/.agent/skills/plan-writing/SKILL.md +152 -0
  268. package/templates/.agent/skills/powershell-windows/SKILL.md +167 -0
  269. package/templates/.agent/skills/ppc-advertising/SKILL.md +183 -475
  270. package/templates/.agent/skills/pptx-generator/SKILL.md +249 -0
  271. package/templates/.agent/skills/pptx-generator/references/design-system.md +392 -0
  272. package/templates/.agent/skills/pptx-generator/references/editing.md +162 -0
  273. package/templates/.agent/skills/pptx-generator/references/pitfalls.md +112 -0
  274. package/templates/.agent/skills/pptx-generator/references/pptxgenjs.md +420 -0
  275. package/templates/.agent/skills/pptx-generator/references/slide-types.md +413 -0
  276. package/templates/.agent/skills/prisma-expert/SKILL.md +355 -0
  277. package/templates/.agent/skills/python-patterns/SKILL.md +441 -0
  278. package/templates/.agent/skills/react-patterns/SKILL.md +198 -0
  279. package/templates/.agent/skills/red-team-tactics/SKILL.md +199 -0
  280. package/templates/.agent/skills/remotion-best-practices/SKILL.md +45 -111
  281. package/templates/.agent/skills/remotion-best-practices/rules/3d.md +4 -4
  282. package/templates/.agent/skills/remotion-best-practices/rules/animations.md +5 -7
  283. package/templates/.agent/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  284. package/templates/.agent/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  285. package/templates/.agent/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
  286. package/templates/.agent/skills/remotion-best-practices/rules/assets.md +78 -0
  287. package/templates/.agent/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
  288. package/templates/.agent/skills/remotion-best-practices/rules/audio.md +1 -4
  289. package/templates/.agent/skills/remotion-best-practices/rules/calculate-metadata.md +47 -17
  290. package/templates/.agent/skills/remotion-best-practices/rules/can-decode.md +75 -0
  291. package/templates/.agent/skills/remotion-best-practices/rules/charts.md +80 -48
  292. package/templates/.agent/skills/remotion-best-practices/rules/compositions.md +22 -14
  293. package/templates/.agent/skills/remotion-best-practices/rules/display-captions.md +79 -21
  294. package/templates/.agent/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  295. package/templates/.agent/skills/remotion-best-practices/rules/ffmpeg.md +38 -0
  296. package/templates/.agent/skills/remotion-best-practices/rules/fonts.md +96 -54
  297. package/templates/.agent/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  298. package/templates/.agent/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  299. package/templates/.agent/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
  300. package/templates/.agent/skills/remotion-best-practices/rules/gifs.md +21 -18
  301. package/templates/.agent/skills/remotion-best-practices/rules/images.md +6 -2
  302. package/templates/.agent/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
  303. package/templates/.agent/skills/remotion-best-practices/rules/light-leaks.md +73 -0
  304. package/templates/.agent/skills/remotion-best-practices/rules/lottie.md +10 -7
  305. package/templates/.agent/skills/remotion-best-practices/rules/maps.md +412 -0
  306. package/templates/.agent/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  307. package/templates/.agent/skills/remotion-best-practices/rules/measuring-text.md +140 -0
  308. package/templates/.agent/skills/remotion-best-practices/rules/parameters.md +109 -0
  309. package/templates/.agent/skills/remotion-best-practices/rules/sequencing.md +13 -1
  310. package/templates/.agent/skills/remotion-best-practices/rules/sfx.md +26 -0
  311. package/templates/.agent/skills/remotion-best-practices/rules/subtitles.md +36 -0
  312. package/templates/.agent/skills/remotion-best-practices/rules/tailwind.md +11 -0
  313. package/templates/.agent/skills/remotion-best-practices/rules/text-animations.md +4 -115
  314. package/templates/.agent/skills/remotion-best-practices/rules/timing.md +19 -19
  315. package/templates/.agent/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
  316. package/templates/.agent/skills/remotion-best-practices/rules/transitions.md +117 -42
  317. package/templates/.agent/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
  318. package/templates/.agent/skills/remotion-best-practices/rules/trimming.md +51 -0
  319. package/templates/.agent/skills/remotion-best-practices/rules/voiceover.md +99 -0
  320. package/templates/.agent/skills/seo-fundamentals/SKILL.md +83 -441
  321. package/templates/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
  322. package/templates/.agent/skills/server-management/SKILL.md +161 -0
  323. package/templates/.agent/skills/systematic-debugging/SKILL.md +109 -0
  324. package/templates/.agent/skills/tdd-workflow/SKILL.md +149 -0
  325. package/templates/.agent/skills/testing-patterns/SKILL.md +178 -0
  326. package/templates/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
  327. package/templates/.agent/skills/tutorial-video-expert/SKILL.md +88 -0
  328. package/templates/.agent/skills/typescript-expert/SKILL.md +429 -0
  329. package/templates/.agent/skills/ui-ux-pro-max/SKILL.md +1 -1
  330. package/templates/.agent/skills/ui-ux-pro-max/data/charts.csv +26 -0
  331. package/templates/.agent/skills/ui-ux-pro-max/data/colors.csv +97 -0
  332. package/templates/.agent/skills/ui-ux-pro-max/data/icons.csv +101 -0
  333. package/templates/.agent/skills/ui-ux-pro-max/data/landing.csv +31 -0
  334. package/templates/.agent/skills/ui-ux-pro-max/data/products.csv +97 -0
  335. package/templates/.agent/skills/ui-ux-pro-max/data/prompts.csv +24 -0
  336. package/templates/.agent/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  337. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  338. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  339. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  340. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  341. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  342. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  343. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  344. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  345. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  346. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  347. package/templates/.agent/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  348. package/templates/.agent/skills/ui-ux-pro-max/data/styles.csv +59 -0
  349. package/templates/.agent/skills/ui-ux-pro-max/data/typography.csv +58 -0
  350. package/templates/.agent/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  351. package/templates/.agent/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  352. package/templates/.agent/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  353. package/templates/.agent/skills/ui-ux-pro-max/scripts/core.py +257 -0
  354. package/templates/.agent/skills/ui-ux-pro-max/scripts/design_system.py +487 -0
  355. package/templates/.agent/skills/ui-ux-pro-max/scripts/search.py +76 -0
  356. package/templates/.agent/skills/vision-analysis/SKILL.md +174 -0
  357. package/templates/.agent/skills/vue-expert/SKILL.md +374 -0
  358. package/templates/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
  359. package/templates/.agent/skills/vulnerability-scanner/checklists.md +121 -0
  360. package/templates/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
  361. package/templates/.agent/skills/webapp-testing/SKILL.md +187 -0
  362. package/templates/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  363. package/templates/.agent/workflows/analyze.md +3 -0
  364. package/templates/.agent/workflows/brainstorm.md +113 -0
  365. package/templates/.agent/workflows/brand-report.md +44 -0
  366. package/templates/.agent/workflows/create.md +59 -0
  367. package/templates/.agent/workflows/debug.md +103 -0
  368. package/templates/.agent/workflows/deploy.md +176 -0
  369. package/templates/.agent/workflows/enhance.md +63 -0
  370. package/templates/.agent/workflows/orchestrate.md +237 -0
  371. package/templates/.agent/workflows/plan.md +89 -0
  372. package/templates/.agent/workflows/preview.md +80 -0
  373. package/templates/.agent/workflows/report.md +49 -0
  374. package/templates/.agent/workflows/status.md +86 -0
  375. package/templates/.agent/workflows/test.md +144 -0
  376. package/templates/.agent/workflows/ui-ux-pro-max.md +231 -0
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: sfx
3
+ description: Including sound effects
4
+ metadata:
5
+ tags: sfx, sound, effect, audio
6
+ ---
7
+
8
+ To include a sound effect, use the `<Audio>` tag:
9
+
10
+ ```tsx
11
+ import { Audio } from "@remotion/sfx";
12
+
13
+ <Audio src={"https://remotion.media/whoosh.wav"} />;
14
+ ```
15
+
16
+ The following sound effects are available:
17
+
18
+ - `https://remotion.media/whoosh.wav`
19
+ - `https://remotion.media/whip.wav`
20
+ - `https://remotion.media/page-turn.wav`
21
+ - `https://remotion.media/switch.wav`
22
+ - `https://remotion.media/mouse-click.wav`
23
+ - `https://remotion.media/shutter-modern.wav`
24
+ - `https://remotion.media/shutter-old.wav`
25
+
26
+ For more sound effects, search the internet. A good resource is https://github.com/kapishdima/soundcn/tree/main/assets.
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: subtitles
3
+ description: subtitles and caption rules
4
+ metadata:
5
+ tags: subtitles, captions, remotion, json
6
+ ---
7
+
8
+ All captions must be processed in JSON. The captions must use the `Caption` type which is the following:
9
+
10
+ ```ts
11
+ import type { Caption } from "@remotion/captions";
12
+ ```
13
+
14
+ This is the definition:
15
+
16
+ ```ts
17
+ type Caption = {
18
+ text: string;
19
+ startMs: number;
20
+ endMs: number;
21
+ timestampMs: number | null;
22
+ confidence: number | null;
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,11 @@
1
+ ---
2
+ name: tailwind
3
+ description: Using TailwindCSS in Remotion.
4
+ metadata:
5
+ ---
6
+
7
+ You can and should use TailwindCSS in Remotion, if TailwindCSS is installed in the project.
8
+
9
+ Don't use `transition-*` or `animate-*` classes - always animate using the `useCurrentFrame()` hook.
10
+
11
+ Tailwind must be installed and enabled first in a Remotion project - fetch https://www.remotion.dev/docs/tailwind using WebFetch for instructions.
@@ -2,7 +2,7 @@
2
2
  name: text-animations
3
3
  description: Typography and text animation patterns for Remotion.
4
4
  metadata:
5
- tags: typography, text, typewriter, highlighter
5
+ tags: typography, text, typewriter, highlighter ken
6
6
  ---
7
7
 
8
8
  ## Text animations
@@ -11,121 +11,10 @@ Based on `useCurrentFrame()`, reduce the string character by character to create
11
11
 
12
12
  ## Typewriter Effect
13
13
 
14
- Always use string slicing for typewriter effects. Never use per-character opacity.
15
-
16
- ```tsx
17
- import { useCurrentFrame, useVideoConfig, interpolate } from "remotion";
18
-
19
- export const Typewriter = ({ text }: { text: string }) => {
20
- const frame = useCurrentFrame();
21
- const { fps } = useVideoConfig();
22
-
23
- // Characters per second
24
- const CHARS_PER_SECOND = 20;
25
- const charsToShow = Math.floor((frame / fps) * CHARS_PER_SECOND);
26
-
27
- const displayText = text.slice(0, charsToShow);
28
-
29
- return (
30
- <div style={{ fontFamily: "monospace", fontSize: 48 }}>
31
- {displayText}
32
- <span style={{ opacity: frame % 30 < 15 ? 1 : 0 }}>|</span>
33
- </div>
34
- );
35
- };
36
- ```
37
-
38
- ### With cursor blink
39
-
40
- ```tsx
41
- const cursorOpacity = Math.sin(frame * 0.3) > 0 ? 1 : 0;
42
-
43
- <span style={{ opacity: cursorOpacity }}>|</span>
44
- ```
45
-
46
- ## Word-by-word reveal
47
-
48
- ```tsx
49
- const words = text.split(" ");
50
- const frame = useCurrentFrame();
51
- const { fps } = useVideoConfig();
14
+ See [Typewriter](assets/text-animations-typewriter.tsx) for an advanced example with a blinking cursor and a pause after the first sentence.
52
15
 
53
- const WORDS_PER_SECOND = 3;
54
- const wordsToShow = Math.floor((frame / fps) * WORDS_PER_SECOND);
55
-
56
- const displayWords = words.slice(0, wordsToShow).join(" ");
57
- ```
16
+ Always use string slicing for typewriter effects. Never use per-character opacity.
58
17
 
59
18
  ## Word Highlighting
60
19
 
61
- Animate a highlighter effect on specific words:
62
-
63
- ```tsx
64
- import { useCurrentFrame, useVideoConfig, interpolate, spring } from "remotion";
65
-
66
- export const HighlightedWord = ({ text }: { text: string }) => {
67
- const frame = useCurrentFrame();
68
- const { fps } = useVideoConfig();
69
-
70
- const highlightWidth = spring({
71
- frame,
72
- fps,
73
- config: { damping: 200 },
74
- });
75
-
76
- const width = interpolate(highlightWidth, [0, 1], [0, 100]);
77
-
78
- return (
79
- <span style={{ position: "relative", display: "inline-block" }}>
80
- <span
81
- style={{
82
- position: "absolute",
83
- bottom: 0,
84
- left: 0,
85
- width: `${width}%`,
86
- height: "30%",
87
- backgroundColor: "#ffff00",
88
- zIndex: -1,
89
- }}
90
- />
91
- {text}
92
- </span>
93
- );
94
- };
95
- ```
96
-
97
- ## Staggered text entrance
98
-
99
- ```tsx
100
- const words = text.split(" ");
101
-
102
- return (
103
- <div>
104
- {words.map((word, i) => {
105
- const delay = i * 5; // 5 frames delay per word
106
- const opacity = interpolate(frame - delay, [0, 10], [0, 1], {
107
- extrapolateLeft: "clamp",
108
- extrapolateRight: "clamp",
109
- });
110
- const y = interpolate(frame - delay, [0, 10], [20, 0], {
111
- extrapolateLeft: "clamp",
112
- extrapolateRight: "clamp",
113
- });
114
-
115
- return (
116
- <span
117
- key={i}
118
- style={{
119
- display: "inline-block",
120
- opacity,
121
- transform: `translateY(${y}px)`,
122
- marginRight: 8,
123
- }}
124
- >
125
- {word}
126
- </span>
127
- );
128
- })}
129
- </div>
130
- );
131
- ```
20
+ See [Word Highlight](assets/text-animations-word-highlight.tsx) for an example for how a word highlight is animated, like with a highlighter pen.
@@ -8,7 +8,7 @@ metadata:
8
8
  A simple linear interpolation is done using the `interpolate` function.
9
9
 
10
10
  ```ts title="Going from 0 to 1 over 100 frames"
11
- import {interpolate} from 'remotion';
11
+ import { interpolate } from "remotion";
12
12
 
13
13
  const opacity = interpolate(frame, [0, 100], [0, 1]);
14
14
  ```
@@ -18,8 +18,8 @@ Here is how they can be clamped:
18
18
 
19
19
  ```ts title="Going from 0 to 1 over 100 frames with extrapolation"
20
20
  const opacity = interpolate(frame, [0, 100], [0, 1], {
21
- extrapolateRight: 'clamp',
22
- extrapolateLeft: 'clamp',
21
+ extrapolateRight: "clamp",
22
+ extrapolateLeft: "clamp",
23
23
  });
24
24
  ```
25
25
 
@@ -29,10 +29,10 @@ Spring animations have a more natural motion.
29
29
  They go from 0 to 1 over time.
30
30
 
31
31
  ```ts title="Spring animation from 0 to 1 over 100 frames"
32
- import {spring, useCurrentFrame, useVideoConfig} from 'remotion';
32
+ import { spring, useCurrentFrame, useVideoConfig } from "remotion";
33
33
 
34
34
  const frame = useCurrentFrame();
35
- const {fps} = useVideoConfig();
35
+ const { fps } = useVideoConfig();
36
36
 
37
37
  const scale = spring({
38
38
  frame,
@@ -51,7 +51,7 @@ The config can be overwritten like this:
51
51
  const scale = spring({
52
52
  frame,
53
53
  fps,
54
- config: {damping: 200},
54
+ config: { damping: 200 },
55
55
  });
56
56
  ```
57
57
 
@@ -60,10 +60,10 @@ The recommended configuration for a natural motion without a bounce is: `{ dampi
60
60
  Here are some common configurations:
61
61
 
62
62
  ```tsx
63
- const smooth = {damping: 200}; // Smooth, no bounce (subtle reveals)
64
- const snappy = {damping: 20, stiffness: 200}; // Snappy, minimal bounce (UI elements)
65
- const bouncy = {damping: 8}; // Bouncy entrance (playful animations)
66
- const heavy = {damping: 15, stiffness: 80, mass: 2}; // Heavy, slow, small bounce
63
+ const smooth = { damping: 200 }; // Smooth, no bounce (subtle reveals)
64
+ const snappy = { damping: 20, stiffness: 200 }; // Snappy, minimal bounce (UI elements)
65
+ const bouncy = { damping: 8 }; // Bouncy entrance (playful animations)
66
+ const heavy = { damping: 15, stiffness: 80, mass: 2 }; // Heavy, slow, small bounce
67
67
  ```
68
68
 
69
69
  ### Delay
@@ -105,7 +105,7 @@ const springProgress = spring({
105
105
  // Map to rotation
106
106
  const rotation = interpolate(springProgress, [0, 1], [0, 360]);
107
107
 
108
- <div style={{rotate: rotation + 'deg'}} />;
108
+ <div style={{ rotate: rotation + "deg" }} />;
109
109
  ```
110
110
 
111
111
  ### Adding springs
@@ -114,7 +114,7 @@ Springs return just numbers, so math can be performed:
114
114
 
115
115
  ```tsx
116
116
  const frame = useCurrentFrame();
117
- const {fps, durationInFrames} = useVideoConfig();
117
+ const { fps, durationInFrames } = useVideoConfig();
118
118
 
119
119
  const inAnimation = spring({
120
120
  frame,
@@ -135,12 +135,12 @@ const scale = inAnimation - outAnimation;
135
135
  Easing can be added to the `interpolate` function:
136
136
 
137
137
  ```ts
138
- import {interpolate, Easing} from 'remotion';
138
+ import { interpolate, Easing } from "remotion";
139
139
 
140
140
  const value1 = interpolate(frame, [0, 100], [0, 1], {
141
141
  easing: Easing.inOut(Easing.quad),
142
- extrapolateLeft: 'clamp',
143
- extrapolateRight: 'clamp',
142
+ extrapolateLeft: "clamp",
143
+ extrapolateRight: "clamp",
144
144
  });
145
145
  ```
146
146
 
@@ -163,8 +163,8 @@ Convexities and curves need be combined for an easing function:
163
163
  ```ts
164
164
  const value1 = interpolate(frame, [0, 100], [0, 1], {
165
165
  easing: Easing.inOut(Easing.quad),
166
- extrapolateLeft: 'clamp',
167
- extrapolateRight: 'clamp',
166
+ extrapolateLeft: "clamp",
167
+ extrapolateRight: "clamp",
168
168
  });
169
169
  ```
170
170
 
@@ -173,7 +173,7 @@ Cubic bezier curves are also supported:
173
173
  ```ts
174
174
  const value1 = interpolate(frame, [0, 100], [0, 1], {
175
175
  easing: Easing.bezier(0.8, 0.22, 0.96, 0.65),
176
- extrapolateLeft: 'clamp',
177
- extrapolateRight: 'clamp',
176
+ extrapolateLeft: "clamp",
177
+ extrapolateRight: "clamp",
178
178
  });
179
179
  ```
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: transcribe-captions
3
+ description: Transcribing audio to generate captions in Remotion
4
+ metadata:
5
+ tags: captions, transcribe, whisper, audio, speech-to-text
6
+ ---
7
+
8
+ # Transcribing audio
9
+
10
+ To transcribe audio to generate captions in Remotion, you can use the [`transcribe()`](https://www.remotion.dev/docs/install-whisper-cpp/transcribe) function from the [`@remotion/install-whisper-cpp`](https://www.remotion.dev/docs/install-whisper-cpp) package.
11
+
12
+ ## Prerequisites
13
+
14
+ First, the @remotion/install-whisper-cpp package needs to be installed.
15
+ If it is not installed, use the following command:
16
+
17
+ ```bash
18
+ npx remotion add @remotion/install-whisper-cpp
19
+ ```
20
+
21
+ ## Transcribing
22
+
23
+ Make a Node.js script to download Whisper.cpp and a model, and transcribe the audio.
24
+
25
+ ```ts
26
+ import path from "path";
27
+ import {
28
+ downloadWhisperModel,
29
+ installWhisperCpp,
30
+ transcribe,
31
+ toCaptions,
32
+ } from "@remotion/install-whisper-cpp";
33
+ import fs from "fs";
34
+
35
+ const to = path.join(process.cwd(), "whisper.cpp");
36
+
37
+ await installWhisperCpp({
38
+ to,
39
+ version: "1.5.5",
40
+ });
41
+
42
+ await downloadWhisperModel({
43
+ model: "medium.en",
44
+ folder: to,
45
+ });
46
+
47
+ // Convert the audio to a 16KHz wav file first if needed:
48
+ // import {execSync} from 'child_process';
49
+ // execSync('ffmpeg -i /path/to/audio.mp4 -ar 16000 /path/to/audio.wav -y');
50
+
51
+ const whisperCppOutput = await transcribe({
52
+ model: "medium.en",
53
+ whisperPath: to,
54
+ whisperCppVersion: "1.5.5",
55
+ inputPath: "/path/to/audio123.wav",
56
+ tokenLevelTimestamps: true,
57
+ });
58
+
59
+ // Optional: Apply our recommended postprocessing
60
+ const { captions } = toCaptions({
61
+ whisperCppOutput,
62
+ });
63
+
64
+ // Write it to the public/ folder so it can be fetched from Remotion
65
+ fs.writeFileSync("captions123.json", JSON.stringify(captions, null, 2));
66
+ ```
67
+
68
+ Transcribe each clip individually and create multiple JSON files.
69
+
70
+ See [Displaying captions](display-captions.md) for how to display the captions in Remotion.
@@ -1,102 +1,172 @@
1
1
  ---
2
2
  name: transitions
3
- description: Fullscreen scene transitions for Remotion.
3
+ description: Scene transitions and overlays for Remotion using TransitionSeries.
4
4
  metadata:
5
- tags: transitions, fade, slide, wipe, scenes
5
+ tags: transitions, overlays, fade, slide, wipe, scenes
6
6
  ---
7
7
 
8
- ## Fullscreen transitions
8
+ ## TransitionSeries
9
9
 
10
- Using `<TransitionSeries>` to animate between multiple scenes or clips.
11
- This will absolutely position the children.
10
+ `<TransitionSeries>` arranges scenes and supports two ways to enhance the cut point between them:
12
11
 
13
- ## Prerequisites
12
+ - **Transitions** (`<TransitionSeries.Transition>`) — crossfade, slide, wipe, etc. between two scenes. Shortens the timeline because both scenes play simultaneously during the transition.
13
+ - **Overlays** (`<TransitionSeries.Overlay>`) — render an effect (e.g. a light leak) on top of the cut point without shortening the timeline.
14
+
15
+ Children are absolutely positioned.
14
16
 
15
- First, the @remotion/transitions package needs to be installed.
16
- If it is not, use the following command:
17
+ ## Prerequisites
17
18
 
18
19
  ```bash
19
- npx remotion add @remotion/transitions # If project uses npm
20
- bunx remotion add @remotion/transitions # If project uses bun
21
- yarn remotion add @remotion/transitions # If project uses yarn
22
- pnpm exec remotion add @remotion/transitions # If project uses pnpm
20
+ npx remotion add @remotion/transitions
23
21
  ```
24
22
 
25
- ## Example usage
23
+ ## Transition example
26
24
 
27
25
  ```tsx
28
- import {TransitionSeries, linearTiming} from '@remotion/transitions';
29
- import {fade} from '@remotion/transitions/fade';
26
+ import { TransitionSeries, linearTiming } from "@remotion/transitions";
27
+ import { fade } from "@remotion/transitions/fade";
30
28
 
31
29
  <TransitionSeries>
32
30
  <TransitionSeries.Sequence durationInFrames={60}>
33
31
  <SceneA />
34
32
  </TransitionSeries.Sequence>
35
- <TransitionSeries.Transition presentation={fade()} timing={linearTiming({durationInFrames: 15})} />
33
+ <TransitionSeries.Transition
34
+ presentation={fade()}
35
+ timing={linearTiming({ durationInFrames: 15 })}
36
+ />
36
37
  <TransitionSeries.Sequence durationInFrames={60}>
37
38
  <SceneB />
38
39
  </TransitionSeries.Sequence>
39
40
  </TransitionSeries>;
40
41
  ```
41
42
 
42
- ## Available Transition Types
43
+ ## Overlay example
43
44
 
44
- Import transitions from their respective modules:
45
+ Any React component can be used as an overlay. For a ready-made effect, see the **light-leaks** rule.
46
+
47
+ ```tsx
48
+ import { TransitionSeries } from "@remotion/transitions";
49
+ import { LightLeak } from "@remotion/light-leaks";
50
+
51
+ <TransitionSeries>
52
+ <TransitionSeries.Sequence durationInFrames={60}>
53
+ <SceneA />
54
+ </TransitionSeries.Sequence>
55
+ <TransitionSeries.Overlay durationInFrames={20}>
56
+ <LightLeak />
57
+ </TransitionSeries.Overlay>
58
+ <TransitionSeries.Sequence durationInFrames={60}>
59
+ <SceneB />
60
+ </TransitionSeries.Sequence>
61
+ </TransitionSeries>;
62
+ ```
63
+
64
+ ## Mixing transitions and overlays
65
+
66
+ Transitions and overlays can coexist in the same `<TransitionSeries>`, but an overlay cannot be adjacent to a transition or another overlay.
45
67
 
46
68
  ```tsx
47
- import {fade} from '@remotion/transitions/fade';
48
- import {slide} from '@remotion/transitions/slide';
49
- import {wipe} from '@remotion/transitions/wipe';
50
- import {flip} from '@remotion/transitions/flip';
51
- import {clockWipe} from '@remotion/transitions/clock-wipe';
69
+ import { TransitionSeries, linearTiming } from "@remotion/transitions";
70
+ import { fade } from "@remotion/transitions/fade";
71
+ import { LightLeak } from "@remotion/light-leaks";
72
+
73
+ <TransitionSeries>
74
+ <TransitionSeries.Sequence durationInFrames={60}>
75
+ <SceneA />
76
+ </TransitionSeries.Sequence>
77
+ <TransitionSeries.Overlay durationInFrames={30}>
78
+ <LightLeak />
79
+ </TransitionSeries.Overlay>
80
+ <TransitionSeries.Sequence durationInFrames={60}>
81
+ <SceneB />
82
+ </TransitionSeries.Sequence>
83
+ <TransitionSeries.Transition
84
+ presentation={fade()}
85
+ timing={linearTiming({ durationInFrames: 15 })}
86
+ />
87
+ <TransitionSeries.Sequence durationInFrames={60}>
88
+ <SceneC />
89
+ </TransitionSeries.Sequence>
90
+ </TransitionSeries>;
52
91
  ```
53
92
 
54
- ## Slide Transition with Direction
93
+ ## Transition props
94
+
95
+ `<TransitionSeries.Transition>` requires:
96
+
97
+ - `presentation` — the visual effect (e.g. `fade()`, `slide()`, `wipe()`).
98
+ - `timing` — controls speed and easing (e.g. `linearTiming()`, `springTiming()`).
99
+
100
+ ## Overlay props
101
+
102
+ `<TransitionSeries.Overlay>` accepts:
103
+
104
+ - `durationInFrames` — how long the overlay is visible (positive integer).
105
+ - `offset?` — shifts the overlay relative to the cut point center. Positive = later, negative = earlier. Default: `0`.
106
+
107
+ ## Available transition types
108
+
109
+ Import transitions from their respective modules:
110
+
111
+ ```tsx
112
+ import { fade } from "@remotion/transitions/fade";
113
+ import { slide } from "@remotion/transitions/slide";
114
+ import { wipe } from "@remotion/transitions/wipe";
115
+ import { flip } from "@remotion/transitions/flip";
116
+ import { clockWipe } from "@remotion/transitions/clock-wipe";
117
+ ```
55
118
 
56
- Specify slide direction for enter/exit animations.
119
+ ## Slide transition with direction
57
120
 
58
121
  ```tsx
59
- import {slide} from '@remotion/transitions/slide';
122
+ import { slide } from "@remotion/transitions/slide";
60
123
 
61
- <TransitionSeries.Transition presentation={slide({direction: 'from-left'})} timing={linearTiming({durationInFrames: 20})} />;
124
+ <TransitionSeries.Transition
125
+ presentation={slide({ direction: "from-left" })}
126
+ timing={linearTiming({ durationInFrames: 20 })}
127
+ />;
62
128
  ```
63
129
 
64
130
  Directions: `"from-left"`, `"from-right"`, `"from-top"`, `"from-bottom"`
65
131
 
66
- ## Timing Options
132
+ ## Timing options
67
133
 
68
134
  ```tsx
69
- import {linearTiming, springTiming} from '@remotion/transitions';
135
+ import { linearTiming, springTiming } from "@remotion/transitions";
70
136
 
71
137
  // Linear timing - constant speed
72
- linearTiming({durationInFrames: 20});
138
+ linearTiming({ durationInFrames: 20 });
73
139
 
74
140
  // Spring timing - organic motion
75
- springTiming({config: {damping: 200}, durationInFrames: 25});
141
+ springTiming({ config: { damping: 200 }, durationInFrames: 25 });
76
142
  ```
77
143
 
78
144
  ## Duration calculation
79
145
 
80
- Transitions overlap adjacent scenes, so the total composition length is **shorter** than the sum of all sequence durations.
146
+ Transitions overlap adjacent scenes, so the total composition length is **shorter** than the sum of all sequence durations. Overlays do **not** affect the total duration.
81
147
 
82
148
  For example, with two 60-frame sequences and a 15-frame transition:
83
149
 
84
150
  - Without transitions: `60 + 60 = 120` frames
85
151
  - With transition: `60 + 60 - 15 = 105` frames
86
152
 
87
- The transition duration is subtracted because both scenes play simultaneously during the transition.
153
+ Adding an overlay between two other sequences does not change the total.
88
154
 
89
155
  ### Getting the duration of a transition
90
156
 
91
157
  Use the `getDurationInFrames()` method on the timing object:
92
158
 
93
159
  ```tsx
94
- import {linearTiming, springTiming} from '@remotion/transitions';
160
+ import { linearTiming, springTiming } from "@remotion/transitions";
95
161
 
96
- const linearDuration = linearTiming({durationInFrames: 20}).getDurationInFrames({fps: 30});
162
+ const linearDuration = linearTiming({
163
+ durationInFrames: 20,
164
+ }).getDurationInFrames({ fps: 30 });
97
165
  // Returns 20
98
166
 
99
- const springDuration = springTiming({config: {damping: 200}}).getDurationInFrames({fps: 30});
167
+ const springDuration = springTiming({
168
+ config: { damping: 200 },
169
+ }).getDurationInFrames({ fps: 30 });
100
170
  // Returns calculated duration based on spring physics
101
171
  ```
102
172
 
@@ -105,18 +175,23 @@ For `springTiming` without an explicit `durationInFrames`, the duration depends
105
175
  ### Calculating total composition duration
106
176
 
107
177
  ```tsx
108
- import {linearTiming} from '@remotion/transitions';
178
+ import { linearTiming } from "@remotion/transitions";
109
179
 
110
180
  const scene1Duration = 60;
111
181
  const scene2Duration = 60;
112
182
  const scene3Duration = 60;
113
183
 
114
- const timing1 = linearTiming({durationInFrames: 15});
115
- const timing2 = linearTiming({durationInFrames: 20});
184
+ const timing1 = linearTiming({ durationInFrames: 15 });
185
+ const timing2 = linearTiming({ durationInFrames: 20 });
116
186
 
117
- const transition1Duration = timing1.getDurationInFrames({fps: 30});
118
- const transition2Duration = timing2.getDurationInFrames({fps: 30});
187
+ const transition1Duration = timing1.getDurationInFrames({ fps: 30 });
188
+ const transition2Duration = timing2.getDurationInFrames({ fps: 30 });
119
189
 
120
- const totalDuration = scene1Duration + scene2Duration + scene3Duration - transition1Duration - transition2Duration;
190
+ const totalDuration =
191
+ scene1Duration +
192
+ scene2Duration +
193
+ scene3Duration -
194
+ transition1Duration -
195
+ transition2Duration;
121
196
  // 60 + 60 + 60 - 15 - 20 = 145 frames
122
197
  ```