zilmate 1.7.8 → 1.8.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.
- package/.agents/skills/agent-browser/SKILL.md +55 -0
- package/.agents/skills/agentmail/SKILL.md +282 -0
- package/.agents/skills/agentmail/references/webhooks.md +220 -0
- package/.agents/skills/agentmail/references/websockets.md +263 -0
- package/.agents/skills/ai-elements/SKILL.md +160 -0
- package/.agents/skills/ai-elements/references/agent.md +134 -0
- package/.agents/skills/ai-elements/references/artifact.md +84 -0
- package/.agents/skills/ai-elements/references/attachments.md +190 -0
- package/.agents/skills/ai-elements/references/audio-player.md +134 -0
- package/.agents/skills/ai-elements/references/canvas.md +34 -0
- package/.agents/skills/ai-elements/references/chain-of-thought.md +81 -0
- package/.agents/skills/ai-elements/references/checkpoint.md +183 -0
- package/.agents/skills/ai-elements/references/code-block.md +170 -0
- package/.agents/skills/ai-elements/references/commit.md +177 -0
- package/.agents/skills/ai-elements/references/confirmation.md +262 -0
- package/.agents/skills/ai-elements/references/connection.md +34 -0
- package/.agents/skills/ai-elements/references/context.md +126 -0
- package/.agents/skills/ai-elements/references/controls.md +32 -0
- package/.agents/skills/ai-elements/references/conversation.md +224 -0
- package/.agents/skills/ai-elements/references/edge.md +52 -0
- package/.agents/skills/ai-elements/references/environment-variables.md +102 -0
- package/.agents/skills/ai-elements/references/file-tree.md +72 -0
- package/.agents/skills/ai-elements/references/image.md +146 -0
- package/.agents/skills/ai-elements/references/inline-citation.md +299 -0
- package/.agents/skills/ai-elements/references/jsx-preview.md +104 -0
- package/.agents/skills/ai-elements/references/message.md +237 -0
- package/.agents/skills/ai-elements/references/mic-selector.md +189 -0
- package/.agents/skills/ai-elements/references/model-selector.md +112 -0
- package/.agents/skills/ai-elements/references/node.md +73 -0
- package/.agents/skills/ai-elements/references/open-in-chat.md +67 -0
- package/.agents/skills/ai-elements/references/package-info.md +95 -0
- package/.agents/skills/ai-elements/references/panel.md +33 -0
- package/.agents/skills/ai-elements/references/persona.md +166 -0
- package/.agents/skills/ai-elements/references/plan.md +79 -0
- package/.agents/skills/ai-elements/references/prompt-input.md +579 -0
- package/.agents/skills/ai-elements/references/queue.md +172 -0
- package/.agents/skills/ai-elements/references/reasoning.md +238 -0
- package/.agents/skills/ai-elements/references/sandbox.md +129 -0
- package/.agents/skills/ai-elements/references/schema-display.md +102 -0
- package/.agents/skills/ai-elements/references/shimmer.md +48 -0
- package/.agents/skills/ai-elements/references/snippet.md +64 -0
- package/.agents/skills/ai-elements/references/sources.md +209 -0
- package/.agents/skills/ai-elements/references/speech-input.md +163 -0
- package/.agents/skills/ai-elements/references/stack-trace.md +224 -0
- package/.agents/skills/ai-elements/references/suggestion.md +124 -0
- package/.agents/skills/ai-elements/references/task.md +222 -0
- package/.agents/skills/ai-elements/references/terminal.md +103 -0
- package/.agents/skills/ai-elements/references/test-results.md +157 -0
- package/.agents/skills/ai-elements/references/tool.md +285 -0
- package/.agents/skills/ai-elements/references/toolbar.md +32 -0
- package/.agents/skills/ai-elements/references/transcription.md +120 -0
- package/.agents/skills/ai-elements/references/voice-selector.md +241 -0
- package/.agents/skills/ai-elements/references/web-preview.md +200 -0
- package/.agents/skills/ai-elements/scripts/agent.tsx +61 -0
- package/.agents/skills/ai-elements/scripts/artifact.tsx +127 -0
- package/.agents/skills/ai-elements/scripts/attachments-inline.tsx +128 -0
- package/.agents/skills/ai-elements/scripts/attachments-list.tsx +95 -0
- package/.agents/skills/ai-elements/scripts/attachments.tsx +85 -0
- package/.agents/skills/ai-elements/scripts/audio-player-remote.tsx +35 -0
- package/.agents/skills/ai-elements/scripts/audio-player.tsx +68 -0
- package/.agents/skills/ai-elements/scripts/chain-of-thought.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/checkpoint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/code-block-dark.tsx +46 -0
- package/.agents/skills/ai-elements/scripts/code-block.tsx +120 -0
- package/.agents/skills/ai-elements/scripts/commit.tsx +94 -0
- package/.agents/skills/ai-elements/scripts/confirmation-accepted.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-rejected.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/confirmation-request.tsx +54 -0
- package/.agents/skills/ai-elements/scripts/confirmation.tsx +55 -0
- package/.agents/skills/ai-elements/scripts/context.tsx +45 -0
- package/.agents/skills/ai-elements/scripts/conversation.tsx +177 -0
- package/.agents/skills/ai-elements/scripts/environment-variables.tsx +62 -0
- package/.agents/skills/ai-elements/scripts/file-tree-basic.tsx +18 -0
- package/.agents/skills/ai-elements/scripts/file-tree-expanded.tsx +21 -0
- package/.agents/skills/ai-elements/scripts/file-tree-selection.tsx +24 -0
- package/.agents/skills/ai-elements/scripts/file-tree.tsx +42 -0
- package/.agents/skills/ai-elements/scripts/image.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/inline-citation.tsx +97 -0
- package/.agents/skills/ai-elements/scripts/jsx-preview.tsx +104 -0
- package/.agents/skills/ai-elements/scripts/message.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/mic-selector.tsx +49 -0
- package/.agents/skills/ai-elements/scripts/model-selector.tsx +365 -0
- package/.agents/skills/ai-elements/scripts/open-in-chat.tsx +33 -0
- package/.agents/skills/ai-elements/scripts/package-info.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/persona-command.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-glint.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-halo.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-mana.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-obsidian.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/persona-opal.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/plan.tsx +65 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-cursor.tsx +502 -0
- package/.agents/skills/ai-elements/scripts/prompt-input-tooltip.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/prompt-input.tsx +267 -0
- package/.agents/skills/ai-elements/scripts/queue-prompt-input.tsx +394 -0
- package/.agents/skills/ai-elements/scripts/queue.tsx +295 -0
- package/.agents/skills/ai-elements/scripts/reasoning.tsx +71 -0
- package/.agents/skills/ai-elements/scripts/sandbox.tsx +178 -0
- package/.agents/skills/ai-elements/scripts/schema-display-basic.tsx +9 -0
- package/.agents/skills/ai-elements/scripts/schema-display-body.tsx +20 -0
- package/.agents/skills/ai-elements/scripts/schema-display-nested.tsx +23 -0
- package/.agents/skills/ai-elements/scripts/schema-display-params.tsx +16 -0
- package/.agents/skills/ai-elements/scripts/schema-display.tsx +110 -0
- package/.agents/skills/ai-elements/scripts/shimmer-duration.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/shimmer-elements.tsx +43 -0
- package/.agents/skills/ai-elements/scripts/shimmer.tsx +17 -0
- package/.agents/skills/ai-elements/scripts/snippet-plain.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/snippet.tsx +25 -0
- package/.agents/skills/ai-elements/scripts/sources-custom.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/sources.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/speech-input.tsx +84 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-collapsed.tsx +39 -0
- package/.agents/skills/ai-elements/scripts/stack-trace-no-internal.tsx +41 -0
- package/.agents/skills/ai-elements/scripts/stack-trace.tsx +58 -0
- package/.agents/skills/ai-elements/scripts/suggestion-input.tsx +144 -0
- package/.agents/skills/ai-elements/scripts/suggestion.tsx +32 -0
- package/.agents/skills/ai-elements/scripts/task.tsx +59 -0
- package/.agents/skills/ai-elements/scripts/terminal-basic.tsx +7 -0
- package/.agents/skills/ai-elements/scripts/terminal-clear.tsx +19 -0
- package/.agents/skills/ai-elements/scripts/terminal-streaming.tsx +38 -0
- package/.agents/skills/ai-elements/scripts/terminal.tsx +82 -0
- package/.agents/skills/ai-elements/scripts/test-results-basic.tsx +27 -0
- package/.agents/skills/ai-elements/scripts/test-results-errors.tsx +51 -0
- package/.agents/skills/ai-elements/scripts/test-results-suites.tsx +40 -0
- package/.agents/skills/ai-elements/scripts/test-results.tsx +102 -0
- package/.agents/skills/ai-elements/scripts/tool-input-available.tsx +31 -0
- package/.agents/skills/ai-elements/scripts/tool-input-streaming.tsx +30 -0
- package/.agents/skills/ai-elements/scripts/tool-output-available.tsx +80 -0
- package/.agents/skills/ai-elements/scripts/tool-output-error.tsx +44 -0
- package/.agents/skills/ai-elements/scripts/tool.tsx +222 -0
- package/.agents/skills/ai-elements/scripts/transcription.tsx +290 -0
- package/.agents/skills/ai-elements/scripts/voice-selector.tsx +245 -0
- package/.agents/skills/ai-elements/scripts/web-preview.tsx +115 -0
- package/.agents/skills/ai-sdk/SKILL.md +78 -0
- package/.agents/skills/ai-sdk/references/ai-gateway.md +66 -0
- package/.agents/skills/ai-sdk/references/common-errors.md +443 -0
- package/.agents/skills/ai-sdk/references/devtools.md +52 -0
- package/.agents/skills/ai-sdk/references/type-safe-agents.md +204 -0
- package/.agents/skills/chat-sdk/SKILL.md +240 -0
- package/.agents/skills/composio/AGENTS.md +404 -0
- package/.agents/skills/composio/SKILL.md +55 -0
- package/.agents/skills/composio/rules/_template.md +38 -0
- package/.agents/skills/composio/rules/app-auth-configs.md +224 -0
- package/.agents/skills/composio/rules/app-auth-popup-ui.md +143 -0
- package/.agents/skills/composio/rules/app-connected-accounts.md +240 -0
- package/.agents/skills/composio/rules/app-custom-tools.md +220 -0
- package/.agents/skills/composio/rules/app-execute-tools.md +202 -0
- package/.agents/skills/composio/rules/app-fetch-tools.md +292 -0
- package/.agents/skills/composio/rules/app-modifiers.md +148 -0
- package/.agents/skills/composio/rules/app-tool-versions.md +343 -0
- package/.agents/skills/composio/rules/app-toolkits.md +184 -0
- package/.agents/skills/composio/rules/app-user-context.md +222 -0
- package/.agents/skills/composio/rules/building-with-composio.md +134 -0
- package/.agents/skills/composio/rules/composio-cli.md +223 -0
- package/.agents/skills/composio/rules/setup-api-keys.md +230 -0
- package/.agents/skills/composio/rules/tr-auth-auto.md +110 -0
- package/.agents/skills/composio/rules/tr-auth-connections.md +167 -0
- package/.agents/skills/composio/rules/tr-auth-manual.md +161 -0
- package/.agents/skills/composio/rules/tr-building-chat-ui.md +348 -0
- package/.agents/skills/composio/rules/tr-framework-ai-sdk.md +240 -0
- package/.agents/skills/composio/rules/tr-framework-integration.md +818 -0
- package/.agents/skills/composio/rules/tr-framework-mastra.md +185 -0
- package/.agents/skills/composio/rules/tr-mcp-vs-native.md +248 -0
- package/.agents/skills/composio/rules/tr-session-basic.md +82 -0
- package/.agents/skills/composio/rules/tr-session-config.md +172 -0
- package/.agents/skills/composio/rules/tr-session-lifecycle.md +385 -0
- package/.agents/skills/composio/rules/tr-toolkit-query.md +135 -0
- package/.agents/skills/composio/rules/tr-userid-best-practices.md +476 -0
- package/.agents/skills/composio/rules/triggers-create.md +246 -0
- package/.agents/skills/composio/rules/triggers-manage.md +275 -0
- package/.agents/skills/composio/rules/triggers-subscribe.md +173 -0
- package/.agents/skills/composio/rules/triggers-webhook.md +227 -0
- package/.agents/skills/create-auth-skill/SKILL.md +321 -0
- package/.agents/skills/design-md/README.md +34 -0
- package/.agents/skills/design-md/SKILL.md +172 -0
- package/.agents/skills/design-md/examples/DESIGN.md +154 -0
- package/.agents/skills/expo-tailwind-setup/SKILL.md +480 -0
- package/.agents/skills/expo-tailwind-setup/agents/openai.yaml +4 -0
- package/.agents/skills/find-skills/SKILL.md +142 -0
- package/.agents/skills/firecrawl/SKILL.md +321 -0
- package/.agents/skills/firecrawl/rules/install.md +85 -0
- package/.agents/skills/firecrawl/rules/security.md +26 -0
- package/.agents/skills/frontend-design/LICENSE.txt +177 -0
- package/.agents/skills/frontend-design/SKILL.md +55 -0
- package/.agents/skills/linkup-search/SKILL.md +298 -0
- package/.agents/skills/mcp-builder/LICENSE.txt +202 -0
- package/.agents/skills/mcp-builder/SKILL.md +236 -0
- package/.agents/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.agents/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/.agents/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/.agents/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/.agents/skills/mcp-builder/scripts/connections.py +151 -0
- package/.agents/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.agents/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.agents/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.agents/skills/mobile-android-design/SKILL.md +101 -0
- package/.agents/skills/mobile-android-design/references/android-navigation.md +698 -0
- package/.agents/skills/mobile-android-design/references/compose-components.md +796 -0
- package/.agents/skills/mobile-android-design/references/details.md +337 -0
- package/.agents/skills/mobile-android-design/references/material3-theming.md +604 -0
- package/.agents/skills/mobile-ios-design/SKILL.md +259 -0
- package/.agents/skills/mobile-ios-design/references/hig-patterns.md +529 -0
- package/.agents/skills/mobile-ios-design/references/ios-navigation.md +556 -0
- package/.agents/skills/mobile-ios-design/references/swiftui-components.md +575 -0
- package/.agents/skills/neon-drizzle/SKILL.md +81 -0
- package/.agents/skills/neon-drizzle/guides/existing-project.md +398 -0
- package/.agents/skills/neon-drizzle/guides/new-project.md +312 -0
- package/.agents/skills/neon-drizzle/guides/schema-only.md +415 -0
- package/.agents/skills/neon-drizzle/guides/troubleshooting.md +539 -0
- package/.agents/skills/neon-drizzle/references/adapters.md +478 -0
- package/.agents/skills/neon-drizzle/references/migrations.md +652 -0
- package/.agents/skills/neon-drizzle/references/query-patterns.md +761 -0
- package/.agents/skills/neon-drizzle/scripts/generate-schema.ts +77 -0
- package/.agents/skills/neon-drizzle/scripts/run-migration.ts +133 -0
- package/.agents/skills/neon-drizzle/templates/db-http.ts +6 -0
- package/.agents/skills/neon-drizzle/templates/db-websocket.ts +24 -0
- package/.agents/skills/neon-drizzle/templates/drizzle-config.ts +96 -0
- package/.agents/skills/neon-drizzle/templates/schema-example.ts +231 -0
- package/.agents/skills/neon-postgres/SKILL.md +376 -0
- package/.agents/skills/next-best-practices/SKILL.md +152 -0
- package/.agents/skills/next-best-practices/async-patterns.md +87 -0
- package/.agents/skills/next-best-practices/bundling.md +180 -0
- package/.agents/skills/next-best-practices/data-patterns.md +297 -0
- package/.agents/skills/next-best-practices/debug-tricks.md +105 -0
- package/.agents/skills/next-best-practices/directives.md +73 -0
- package/.agents/skills/next-best-practices/error-handling.md +227 -0
- package/.agents/skills/next-best-practices/file-conventions.md +140 -0
- package/.agents/skills/next-best-practices/font.md +245 -0
- package/.agents/skills/next-best-practices/functions.md +108 -0
- package/.agents/skills/next-best-practices/hydration-error.md +91 -0
- package/.agents/skills/next-best-practices/image.md +173 -0
- package/.agents/skills/next-best-practices/metadata.md +301 -0
- package/.agents/skills/next-best-practices/parallel-routes.md +287 -0
- package/.agents/skills/next-best-practices/route-handlers.md +146 -0
- package/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
- package/.agents/skills/next-best-practices/runtime-selection.md +39 -0
- package/.agents/skills/next-best-practices/scripts.md +141 -0
- package/.agents/skills/next-best-practices/self-hosting.md +371 -0
- package/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +303 -0
- package/.agents/skills/playwright-cli/SKILL.md +404 -0
- package/.agents/skills/playwright-cli/references/element-attributes.md +23 -0
- package/.agents/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/.agents/skills/playwright-cli/references/request-mocking.md +87 -0
- package/.agents/skills/playwright-cli/references/running-code.md +241 -0
- package/.agents/skills/playwright-cli/references/session-management.md +225 -0
- package/.agents/skills/playwright-cli/references/spec-driven-testing.md +305 -0
- package/.agents/skills/playwright-cli/references/storage-state.md +275 -0
- package/.agents/skills/playwright-cli/references/test-generation.md +134 -0
- package/.agents/skills/playwright-cli/references/tracing.md +139 -0
- package/.agents/skills/playwright-cli/references/video-recording.md +143 -0
- package/.agents/skills/prisma-client-api/SKILL.md +216 -0
- package/.agents/skills/prisma-client-api/references/client-methods.md +223 -0
- package/.agents/skills/prisma-client-api/references/constructor.md +208 -0
- package/.agents/skills/prisma-client-api/references/filters.md +256 -0
- package/.agents/skills/prisma-client-api/references/model-queries.md +281 -0
- package/.agents/skills/prisma-client-api/references/query-options.md +276 -0
- package/.agents/skills/prisma-client-api/references/raw-queries.md +194 -0
- package/.agents/skills/prisma-client-api/references/relations.md +308 -0
- package/.agents/skills/prisma-client-api/references/transactions.md +184 -0
- package/.agents/skills/prisma-database-setup/SKILL.md +192 -0
- package/.agents/skills/prisma-database-setup/references/cockroachdb.md +89 -0
- package/.agents/skills/prisma-database-setup/references/mongodb.md +90 -0
- package/.agents/skills/prisma-database-setup/references/mysql.md +126 -0
- package/.agents/skills/prisma-database-setup/references/postgresql.md +92 -0
- package/.agents/skills/prisma-database-setup/references/prisma-client-setup.md +47 -0
- package/.agents/skills/prisma-database-setup/references/prisma-postgres.md +130 -0
- package/.agents/skills/prisma-database-setup/references/sqlite.md +106 -0
- package/.agents/skills/prisma-database-setup/references/sqlserver.md +94 -0
- package/.agents/skills/prisma-postgres/SKILL.md +127 -0
- package/.agents/skills/prisma-postgres/references/console-and-connections.md +67 -0
- package/.agents/skills/prisma-postgres/references/create-db-cli.md +136 -0
- package/.agents/skills/prisma-postgres/references/management-api-sdk.md +56 -0
- package/.agents/skills/prisma-postgres/references/management-api.md +61 -0
- package/.agents/skills/remotion-best-practices/SKILL.md +340 -0
- package/.agents/skills/remotion-best-practices/rules/3d.md +86 -0
- package/.agents/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/.agents/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +103 -0
- package/.agents/skills/remotion-best-practices/rules/audio-visualization.md +198 -0
- package/.agents/skills/remotion-best-practices/rules/audio.md +169 -0
- package/.agents/skills/remotion-best-practices/rules/calculate-metadata.md +134 -0
- package/.agents/skills/remotion-best-practices/rules/compositions.md +133 -0
- package/.agents/skills/remotion-best-practices/rules/display-captions.md +184 -0
- package/.agents/skills/remotion-best-practices/rules/ffmpeg.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/.agents/skills/remotion-best-practices/rules/get-video-duration.md +60 -0
- package/.agents/skills/remotion-best-practices/rules/gifs.md +141 -0
- package/.agents/skills/remotion-best-practices/rules/google-fonts.md +72 -0
- package/.agents/skills/remotion-best-practices/rules/html-in-canvas.md +122 -0
- package/.agents/skills/remotion-best-practices/rules/images.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/.agents/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/.agents/skills/remotion-best-practices/rules/local-fonts.md +65 -0
- package/.agents/skills/remotion-best-practices/rules/lottie.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/maplibre.md +458 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/.agents/skills/remotion-best-practices/rules/measuring-text.md +140 -0
- package/.agents/skills/remotion-best-practices/rules/parameters.md +109 -0
- package/.agents/skills/remotion-best-practices/rules/sequencing.md +144 -0
- package/.agents/skills/remotion-best-practices/rules/sfx.md +30 -0
- package/.agents/skills/remotion-best-practices/rules/silence-detection.md +71 -0
- package/.agents/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/.agents/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/.agents/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/.agents/skills/remotion-best-practices/rules/timing.md +136 -0
- package/.agents/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/.agents/skills/remotion-best-practices/rules/transitions.md +197 -0
- package/.agents/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/.agents/skills/remotion-best-practices/rules/trimming.md +51 -0
- package/.agents/skills/remotion-best-practices/rules/videos.md +171 -0
- package/.agents/skills/remotion-best-practices/rules/voiceover.md +99 -0
- package/.agents/skills/remotion-render/SKILL.md +212 -0
- package/.agents/skills/skill-creator/LICENSE.txt +202 -0
- package/.agents/skills/skill-creator/SKILL.md +485 -0
- package/.agents/skills/skill-creator/agents/analyzer.md +274 -0
- package/.agents/skills/skill-creator/agents/comparator.md +202 -0
- package/.agents/skills/skill-creator/agents/grader.md +223 -0
- package/.agents/skills/skill-creator/assets/eval_review.html +146 -0
- package/.agents/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.agents/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.agents/skills/skill-creator/references/schemas.md +430 -0
- package/.agents/skills/skill-creator/scripts/__init__.py +0 -0
- package/.agents/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.agents/skills/skill-creator/scripts/generate_report.py +326 -0
- package/.agents/skills/skill-creator/scripts/improve_description.py +247 -0
- package/.agents/skills/skill-creator/scripts/package_skill.py +136 -0
- package/.agents/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/.agents/skills/skill-creator/scripts/run_eval.py +310 -0
- package/.agents/skills/skill-creator/scripts/run_loop.py +328 -0
- package/.agents/skills/skill-creator/scripts/utils.py +47 -0
- package/.agents/skills/stripe-best-practices/SKILL.md +54 -0
- package/.agents/skills/stripe-best-practices/references/billing.md +58 -0
- package/.agents/skills/stripe-best-practices/references/connect.md +173 -0
- package/.agents/skills/stripe-best-practices/references/payments.md +79 -0
- package/.agents/skills/stripe-best-practices/references/security.md +109 -0
- package/.agents/skills/stripe-best-practices/references/tax.md +37 -0
- package/.agents/skills/stripe-best-practices/references/treasury.md +16 -0
- package/.agents/skills/stripe-projects/SKILL.md +132 -0
- package/.agents/skills/supabase/CHANGELOG.md +35 -0
- package/.agents/skills/supabase/SKILL.md +135 -0
- package/.agents/skills/supabase/assets/feedback-issue-template.md +17 -0
- package/.agents/skills/supabase/references/skill-feedback.md +17 -0
- package/.agents/skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +64 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_sections.md +39 -0
- package/.agents/skills/supabase-postgres-best-practices/references/_template.md +34 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
- package/.agents/skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
- package/.agents/skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
- package/.agents/skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
- package/.agents/skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
- package/.agents/skills/supermemory/LICENSE +201 -0
- package/.agents/skills/supermemory/README.md +221 -0
- package/.agents/skills/supermemory/SKILL.md +172 -0
- package/.agents/skills/supermemory/references/api-reference.md +591 -0
- package/.agents/skills/supermemory/references/architecture.md +557 -0
- package/.agents/skills/supermemory/references/quickstart.md +293 -0
- package/.agents/skills/supermemory/references/sdk-guide.md +655 -0
- package/.agents/skills/supermemory/references/use-cases.md +1033 -0
- package/.agents/skills/supermemory-cli/SKILL.md +490 -0
- package/.agents/skills/tdd/SKILL.md +108 -0
- package/.agents/skills/tdd/mocking.md +59 -0
- package/.agents/skills/tdd/refactoring.md +10 -0
- package/.agents/skills/tdd/tests.md +61 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +661 -0
- package/.agents/skills/ui-ux-pro-max/data +1 -0
- package/.agents/skills/ui-ux-pro-max/scripts +1 -0
- package/.agents/skills/vercel-react-native-skills/AGENTS.md +2897 -0
- package/.agents/skills/vercel-react-native-skills/README.md +165 -0
- package/.agents/skills/vercel-react-native-skills/SKILL.md +121 -0
- package/.agents/skills/vercel-react-native-skills/metadata.json +16 -0
- package/.agents/skills/vercel-react-native-skills/rules/_sections.md +86 -0
- package/.agents/skills/vercel-react-native-skills/rules/_template.md +28 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-derived-value.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/.agents/skills/vercel-react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/design-system-compound-components.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/.agents/skills/vercel-react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/.agents/skills/vercel-react-native-skills/rules/js-hoist-intl.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-function-references.md +132 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-images.md +53 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-item-types.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/.agents/skills/vercel-react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/.agents/skills/vercel-react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-fallback.md +56 -0
- package/.agents/skills/vercel-react-native-skills/rules/react-state-minimize.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/.agents/skills/vercel-react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/.agents/skills/vercel-react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/.agents/skills/vercel-react-native-skills/rules/state-ground-truth.md +80 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-expo-image.md +66 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-image-gallery.md +104 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-measure-views.md +78 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-menus.md +174 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-native-modals.md +77 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-pressable.md +61 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/.agents/skills/vercel-react-native-skills/rules/ui-styling.md +87 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +39 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +19 -4
- package/dist/cli/update.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tools/daytona-browser.tool.js +1 -1
- package/dist/tools/daytona-browser.tool.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fonts
|
|
3
|
+
description: Loading Google Fonts and local fonts in Remotion
|
|
4
|
+
metadata:
|
|
5
|
+
tags: fonts, google-fonts, typography, text
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Using fonts in Remotion
|
|
9
|
+
|
|
10
|
+
## Google Fonts with @remotion/google-fonts
|
|
11
|
+
|
|
12
|
+
The recommended way to use Google Fonts. It's type-safe and automatically blocks rendering until the font is ready.
|
|
13
|
+
|
|
14
|
+
### Prerequisites
|
|
15
|
+
|
|
16
|
+
First, the @remotion/google-fonts package needs to be installed.
|
|
17
|
+
If it is not installed, use the following command:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx remotion add @remotion/google-fonts # If project uses npm
|
|
21
|
+
bunx remotion add @remotion/google-fonts # If project uses bun
|
|
22
|
+
yarn remotion add @remotion/google-fonts # If project uses yarn
|
|
23
|
+
pnpm exec remotion add @remotion/google-fonts # If project uses pnpm
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { loadFont } from "@remotion/google-fonts/Lobster";
|
|
28
|
+
|
|
29
|
+
const { fontFamily } = loadFont();
|
|
30
|
+
|
|
31
|
+
export const MyComposition = () => {
|
|
32
|
+
return <div style={{ fontFamily }}>Hello World</div>;
|
|
33
|
+
};
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Preferrably, specify only needed weights and subsets to reduce file size:
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { loadFont } from "@remotion/google-fonts/Roboto";
|
|
40
|
+
|
|
41
|
+
const { fontFamily } = loadFont("normal", {
|
|
42
|
+
weights: ["400", "700"],
|
|
43
|
+
subsets: ["latin"],
|
|
44
|
+
});
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Using in components
|
|
48
|
+
|
|
49
|
+
Call `loadFont()` at the top level of your component or in a separate file that's imported early:
|
|
50
|
+
|
|
51
|
+
```tsx
|
|
52
|
+
import { loadFont } from "@remotion/google-fonts/Montserrat";
|
|
53
|
+
|
|
54
|
+
const { fontFamily } = loadFont("normal", {
|
|
55
|
+
weights: ["400", "700"],
|
|
56
|
+
subsets: ["latin"],
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
export const Title: React.FC<{ text: string }> = ({ text }) => {
|
|
60
|
+
return (
|
|
61
|
+
<h1
|
|
62
|
+
style={{
|
|
63
|
+
fontFamily,
|
|
64
|
+
fontSize: 80,
|
|
65
|
+
fontWeight: "bold",
|
|
66
|
+
}}
|
|
67
|
+
>
|
|
68
|
+
{text}
|
|
69
|
+
</h1>
|
|
70
|
+
);
|
|
71
|
+
};
|
|
72
|
+
```
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Using `<HtmlInCanvas>` in Remotion
|
|
2
|
+
|
|
3
|
+
Renders children into a `<canvas>` so you can post-process them with the Canvas 2D API or WebGL.
|
|
4
|
+
|
|
5
|
+
Only works in Chrome 149+ with the `chrome://flags/#canvas-draw-element` flag enabled.
|
|
6
|
+
Give the user a notice.
|
|
7
|
+
|
|
8
|
+
## Nesting
|
|
9
|
+
|
|
10
|
+
Do not nest `<HtmlInCanvas>` inside another `<HtmlInCanvas>`. Remotion throws:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
<HtmlInCanvas> effects cannot be nested together. Chrome will only display the outer effect. Consider merging the effects into one if you can.
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Enabling WebGL during renders
|
|
17
|
+
|
|
18
|
+
If you make use of WebGL during renders, you need to enable it:
|
|
19
|
+
|
|
20
|
+
From the CLI:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx remotion render --gl=angle
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Set it as the default for Studio and CLI (advised):
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { Config } from "@remotion/cli/config";
|
|
30
|
+
|
|
31
|
+
Config.setChromiumOpenGlRenderer("angle");
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Basic usage
|
|
35
|
+
|
|
36
|
+
By default, draws to canvas with no effect applied:
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import { HtmlInCanvas } from "remotion";
|
|
40
|
+
|
|
41
|
+
export const MyComp = () => {
|
|
42
|
+
return (
|
|
43
|
+
<HtmlInCanvas width={1280} height={720}>
|
|
44
|
+
<div style={{ fontSize: 80 }}>Hello</div>
|
|
45
|
+
</HtmlInCanvas>
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 2D effect with `onPaint`
|
|
51
|
+
|
|
52
|
+
`onPaint` runs whenever the content updates. Call `ctx.drawElementImage(elementImage, 0, 0)` to draw the captured DOM, and assign the returned transform to `element.style.transform` so DOM selection still aligns with the painted output.
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
import {
|
|
56
|
+
AbsoluteFill,
|
|
57
|
+
HtmlInCanvas,
|
|
58
|
+
type HtmlInCanvasOnPaint,
|
|
59
|
+
useCurrentFrame,
|
|
60
|
+
useVideoConfig,
|
|
61
|
+
} from "remotion";
|
|
62
|
+
import { useCallback } from "react";
|
|
63
|
+
|
|
64
|
+
export const Blur = () => {
|
|
65
|
+
const frame = useCurrentFrame();
|
|
66
|
+
const { width, height, fps } = useVideoConfig();
|
|
67
|
+
|
|
68
|
+
const onPaint: HtmlInCanvasOnPaint = useCallback(
|
|
69
|
+
({ canvas, element, elementImage }) => {
|
|
70
|
+
const ctx = canvas.getContext("2d");
|
|
71
|
+
if (!ctx) throw new Error("Failed to acquire 2D context");
|
|
72
|
+
|
|
73
|
+
const blurPx = 4 + 18 * (0.5 + 0.5 * Math.sin((frame / fps) * Math.PI));
|
|
74
|
+
|
|
75
|
+
ctx.reset();
|
|
76
|
+
ctx.filter = `blur(${blurPx}px)`;
|
|
77
|
+
const transform = ctx.drawElementImage(elementImage, 0, 0);
|
|
78
|
+
element.style.transform = transform.toString();
|
|
79
|
+
},
|
|
80
|
+
[frame, fps],
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
return (
|
|
84
|
+
<HtmlInCanvas width={width} height={height} onPaint={onPaint}>
|
|
85
|
+
<AbsoluteFill style={{ justifyContent: "center", alignItems: "center", fontSize: 120 }}>
|
|
86
|
+
<h1>Hello</h1>
|
|
87
|
+
</AbsoluteFill>
|
|
88
|
+
</HtmlInCanvas>
|
|
89
|
+
);
|
|
90
|
+
};
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## WebGL effects
|
|
94
|
+
|
|
95
|
+
For WebGL, set up the context, program, and texture in `onInit` and return a cleanup function. Inside `onPaint`, upload the captured DOM with `gl.texElementImage2D(...)` and draw.
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
const onInit: HtmlInCanvasOnInit = useCallback(({ canvas }) => {
|
|
99
|
+
const gl = canvas.getContext("webgl2", { alpha: true, premultipliedAlpha: true });
|
|
100
|
+
if (!gl) {
|
|
101
|
+
throw new Error(
|
|
102
|
+
"WebGL2 unavailable. Try rendering with the --gl=angle option. See https://remotion.dev/docs/gl-options.",
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
|
|
106
|
+
// compile program, create texture, set up VAO...
|
|
107
|
+
return () => {
|
|
108
|
+
// delete program, texture, buffers...
|
|
109
|
+
};
|
|
110
|
+
}, []);
|
|
111
|
+
|
|
112
|
+
const onPaint: HtmlInCanvasOnPaint = useCallback(({ elementImage }) => {
|
|
113
|
+
gl.texElementImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, elementImage);
|
|
114
|
+
gl.drawArrays(gl.TRIANGLES, 0, 6);
|
|
115
|
+
}, []);
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
For a fully working minimal example, see https://github.com/remotion-dev/remotion/blob/main/packages/docs/components/demos/HtmlInCanvasDocsDemoWebGL.tsx.
|
|
119
|
+
|
|
120
|
+
## Async `onPaint`
|
|
121
|
+
|
|
122
|
+
`onPaint` may be `async`. Remotion holds the frame open via `delayRender()` until the promise resolves. Useful for multi-pass effects with `createImageBitmap`.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
## Sizing and positioning
|
|
2
|
+
|
|
3
|
+
Use the `style` prop to control size and position:
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
<Img
|
|
7
|
+
src={staticFile("photo.png")}
|
|
8
|
+
style={{
|
|
9
|
+
width: 500,
|
|
10
|
+
height: 300,
|
|
11
|
+
position: "absolute",
|
|
12
|
+
top: 100,
|
|
13
|
+
left: 50,
|
|
14
|
+
objectFit: "cover",
|
|
15
|
+
}}
|
|
16
|
+
/>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Dynamic image paths
|
|
20
|
+
|
|
21
|
+
Use template literals for dynamic file references:
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import { Img, staticFile, useCurrentFrame } from "remotion";
|
|
25
|
+
|
|
26
|
+
const frame = useCurrentFrame();
|
|
27
|
+
|
|
28
|
+
// Image sequence
|
|
29
|
+
<Img src={staticFile(`frames/frame${frame}.png`)} />
|
|
30
|
+
|
|
31
|
+
// Selecting based on props
|
|
32
|
+
<Img src={staticFile(`avatars/${props.userId}.png`)} />
|
|
33
|
+
|
|
34
|
+
// Conditional images
|
|
35
|
+
<Img src={staticFile(`icons/${isActive ? "active" : "inactive"}.svg`)} />
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
This pattern is useful for:
|
|
39
|
+
|
|
40
|
+
- Image sequences (frame-by-frame animations)
|
|
41
|
+
- User-specific avatars or profile images
|
|
42
|
+
- Theme-based icons
|
|
43
|
+
- State-dependent graphics
|
|
44
|
+
|
|
45
|
+
## Getting image dimensions
|
|
46
|
+
|
|
47
|
+
Use `getImageDimensions()` to get the dimensions of an image:
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
import { getImageDimensions, staticFile } from "remotion";
|
|
51
|
+
|
|
52
|
+
const { width, height } = await getImageDimensions(staticFile("photo.png"));
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This is useful for calculating aspect ratios or sizing compositions:
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
import {
|
|
59
|
+
getImageDimensions,
|
|
60
|
+
staticFile,
|
|
61
|
+
CalculateMetadataFunction,
|
|
62
|
+
} from "remotion";
|
|
63
|
+
|
|
64
|
+
const calculateMetadata: CalculateMetadataFunction = async () => {
|
|
65
|
+
const { width, height } = await getImageDimensions(staticFile("photo.png"));
|
|
66
|
+
return {
|
|
67
|
+
width,
|
|
68
|
+
height,
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: import-srt-captions
|
|
3
|
+
description: Importing .srt subtitle files into Remotion using @remotion/captions
|
|
4
|
+
metadata:
|
|
5
|
+
tags: captions, subtitles, srt, import, parse
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Importing .srt subtitles into Remotion
|
|
9
|
+
|
|
10
|
+
If you have an existing `.srt` subtitle file, you can import it into Remotion using `parseSrt()` from `@remotion/captions`.
|
|
11
|
+
|
|
12
|
+
If you don't have a .srt file, read [Transcribing audio](transcribe-captions.md) for how to generate captions instead.
|
|
13
|
+
|
|
14
|
+
## Prerequisites
|
|
15
|
+
|
|
16
|
+
First, the @remotion/captions package needs to be installed.
|
|
17
|
+
If it is not installed, use the following command:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx remotion add @remotion/captions # If project uses npm
|
|
21
|
+
bunx remotion add @remotion/captions # If project uses bun
|
|
22
|
+
yarn remotion add @remotion/captions # If project uses yarn
|
|
23
|
+
pnpm exec remotion add @remotion/captions # If project uses pnpm
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Reading an .srt file
|
|
27
|
+
|
|
28
|
+
Use `staticFile()` to reference an `.srt` file in your `public` folder, then fetch and parse it:
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { useState, useEffect, useCallback } from "react";
|
|
32
|
+
import { AbsoluteFill, staticFile, useDelayRender } from "remotion";
|
|
33
|
+
import { parseSrt } from "@remotion/captions";
|
|
34
|
+
import type { Caption } from "@remotion/captions";
|
|
35
|
+
|
|
36
|
+
export const MyComponent: React.FC = () => {
|
|
37
|
+
const [captions, setCaptions] = useState<Caption[] | null>(null);
|
|
38
|
+
const { delayRender, continueRender, cancelRender } = useDelayRender();
|
|
39
|
+
const [handle] = useState(() => delayRender());
|
|
40
|
+
|
|
41
|
+
const fetchCaptions = useCallback(async () => {
|
|
42
|
+
try {
|
|
43
|
+
const response = await fetch(staticFile("subtitles.srt"));
|
|
44
|
+
const text = await response.text();
|
|
45
|
+
const { captions: parsed } = parseSrt({ input: text });
|
|
46
|
+
setCaptions(parsed);
|
|
47
|
+
continueRender(handle);
|
|
48
|
+
} catch (e) {
|
|
49
|
+
cancelRender(e);
|
|
50
|
+
}
|
|
51
|
+
}, [continueRender, cancelRender, handle]);
|
|
52
|
+
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
fetchCaptions();
|
|
55
|
+
}, [fetchCaptions]);
|
|
56
|
+
|
|
57
|
+
if (!captions) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return <AbsoluteFill>{/* Use captions here */}</AbsoluteFill>;
|
|
62
|
+
};
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Remote URLs are also supported - you can `fetch()` a remote file via URL instead of using `staticFile()`.
|
|
66
|
+
|
|
67
|
+
## Using imported captions
|
|
68
|
+
|
|
69
|
+
Once parsed, the captions are in the `Caption` format and can be used with all `@remotion/captions` utilities.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: light-leaks
|
|
3
|
+
description: Light leak overlay effects for Remotion using @remotion/light-leaks.
|
|
4
|
+
metadata:
|
|
5
|
+
tags: light-leaks, overlays, effects, transitions
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Light Leaks
|
|
9
|
+
|
|
10
|
+
This only works from Remotion 4.0.415 and up. Use `npx remotion versions` to check your Remotion version and `npx remotion upgrade` to upgrade your Remotion version.
|
|
11
|
+
|
|
12
|
+
`<LightLeak>` from `@remotion/light-leaks` renders a WebGL-based light leak effect. It reveals during the first half of its duration and retracts during the second half.
|
|
13
|
+
|
|
14
|
+
Typically used inside a `<TransitionSeries.Overlay>` to play over the cut point between two scenes. See the **transitions** rule for `<TransitionSeries>` and overlay usage.
|
|
15
|
+
|
|
16
|
+
## Prerequisites
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx remotion add @remotion/light-leaks
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Basic usage with TransitionSeries
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
import { TransitionSeries } from "@remotion/transitions";
|
|
26
|
+
import { LightLeak } from "@remotion/light-leaks";
|
|
27
|
+
|
|
28
|
+
<TransitionSeries>
|
|
29
|
+
<TransitionSeries.Sequence durationInFrames={60}>
|
|
30
|
+
<SceneA />
|
|
31
|
+
</TransitionSeries.Sequence>
|
|
32
|
+
<TransitionSeries.Overlay durationInFrames={30}>
|
|
33
|
+
<LightLeak />
|
|
34
|
+
</TransitionSeries.Overlay>
|
|
35
|
+
<TransitionSeries.Sequence durationInFrames={60}>
|
|
36
|
+
<SceneB />
|
|
37
|
+
</TransitionSeries.Sequence>
|
|
38
|
+
</TransitionSeries>;
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Props
|
|
42
|
+
|
|
43
|
+
- `durationInFrames?` — defaults to the parent sequence/composition duration. The effect reveals during the first half and retracts during the second half.
|
|
44
|
+
- `seed?` — determines the shape of the light leak pattern. Different seeds produce different patterns. Default: `0`.
|
|
45
|
+
- `hueShift?` — rotates the hue in degrees (`0`–`360`). Default: `0` (yellow-to-orange). `120` = green, `240` = blue.
|
|
46
|
+
|
|
47
|
+
## Customizing the look
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
import { LightLeak } from "@remotion/light-leaks";
|
|
51
|
+
|
|
52
|
+
// Blue-tinted light leak with a different pattern
|
|
53
|
+
<LightLeak seed={5} hueShift={240} />;
|
|
54
|
+
|
|
55
|
+
// Green-tinted light leak
|
|
56
|
+
<LightLeak seed={2} hueShift={120} />;
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Standalone usage
|
|
60
|
+
|
|
61
|
+
`<LightLeak>` can also be used outside of `<TransitionSeries>`, for example as a decorative overlay in any composition:
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
import { AbsoluteFill } from "remotion";
|
|
65
|
+
import { LightLeak } from "@remotion/light-leaks";
|
|
66
|
+
|
|
67
|
+
const MyComp: React.FC = () => (
|
|
68
|
+
<AbsoluteFill>
|
|
69
|
+
<MyContent />
|
|
70
|
+
<LightLeak durationInFrames={60} seed={3} />
|
|
71
|
+
</AbsoluteFill>
|
|
72
|
+
);
|
|
73
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
For local font files, use the `@remotion/fonts` package.
|
|
2
|
+
|
|
3
|
+
### Prerequisites
|
|
4
|
+
|
|
5
|
+
First, install @remotion/fonts:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npx remotion add @remotion/fonts # If project uses npm
|
|
9
|
+
bunx remotion add @remotion/fonts # If project uses bun
|
|
10
|
+
yarn remotion add @remotion/fonts # If project uses yarn
|
|
11
|
+
pnpm exec remotion add @remotion/fonts # If project uses pnpm
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Loading a local font
|
|
15
|
+
|
|
16
|
+
Place your font file in the `public/` folder and use `loadFont()`:
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
import { loadFont } from "@remotion/fonts";
|
|
20
|
+
import { staticFile } from "remotion";
|
|
21
|
+
|
|
22
|
+
await loadFont({
|
|
23
|
+
family: "MyFont",
|
|
24
|
+
url: staticFile("MyFont-Regular.woff2"),
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export const MyComposition = () => {
|
|
28
|
+
return <div style={{ fontFamily: "MyFont" }}>Hello World</div>;
|
|
29
|
+
};
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Loading multiple weights
|
|
33
|
+
|
|
34
|
+
Load each weight separately with the same family name:
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import { loadFont } from "@remotion/fonts";
|
|
38
|
+
import { staticFile } from "remotion";
|
|
39
|
+
|
|
40
|
+
await Promise.all([
|
|
41
|
+
loadFont({
|
|
42
|
+
family: "Inter",
|
|
43
|
+
url: staticFile("Inter-Regular.woff2"),
|
|
44
|
+
weight: "400",
|
|
45
|
+
}),
|
|
46
|
+
loadFont({
|
|
47
|
+
family: "Inter",
|
|
48
|
+
url: staticFile("Inter-Bold.woff2"),
|
|
49
|
+
weight: "700",
|
|
50
|
+
}),
|
|
51
|
+
]);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Available options
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
loadFont({
|
|
58
|
+
family: "MyFont", // Required: name to use in CSS
|
|
59
|
+
url: staticFile("font.woff2"), // Required: font file URL
|
|
60
|
+
format: "woff2", // Optional: auto-detected from extension
|
|
61
|
+
weight: "400", // Optional: font weight
|
|
62
|
+
style: "normal", // Optional: normal or italic
|
|
63
|
+
display: "block", // Optional: font-display behavior
|
|
64
|
+
});
|
|
65
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lottie
|
|
3
|
+
description: Embedding Lottie animations in Remotion.
|
|
4
|
+
metadata:
|
|
5
|
+
category: Animation
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Using Lottie Animations in Remotion
|
|
9
|
+
|
|
10
|
+
## Prerequisites
|
|
11
|
+
|
|
12
|
+
First, the @remotion/lottie package needs to be installed.
|
|
13
|
+
If it is not, use the following command:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx remotion add @remotion/lottie # If project uses npm
|
|
17
|
+
bunx remotion add @remotion/lottie # If project uses bun
|
|
18
|
+
yarn remotion add @remotion/lottie # If project uses yarn
|
|
19
|
+
pnpm exec remotion add @remotion/lottie # If project uses pnpm
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Displaying a Lottie file
|
|
23
|
+
|
|
24
|
+
To import a Lottie animation:
|
|
25
|
+
|
|
26
|
+
- Fetch the Lottie asset
|
|
27
|
+
- Wrap the loading process in `delayRender()` and `continueRender()`
|
|
28
|
+
- Save the animation data in a state
|
|
29
|
+
- Render the Lottie animation using the `Lottie` component from the `@remotion/lottie` package
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
import { Lottie, LottieAnimationData } from "@remotion/lottie";
|
|
33
|
+
import { useEffect, useState } from "react";
|
|
34
|
+
import { cancelRender, continueRender, delayRender } from "remotion";
|
|
35
|
+
|
|
36
|
+
export const MyAnimation = () => {
|
|
37
|
+
const [handle] = useState(() => delayRender("Loading Lottie animation"));
|
|
38
|
+
|
|
39
|
+
const [animationData, setAnimationData] =
|
|
40
|
+
useState<LottieAnimationData | null>(null);
|
|
41
|
+
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
fetch("https://assets4.lottiefiles.com/packages/lf20_zyquagfl.json")
|
|
44
|
+
.then((data) => data.json())
|
|
45
|
+
.then((json) => {
|
|
46
|
+
setAnimationData(json);
|
|
47
|
+
continueRender(handle);
|
|
48
|
+
})
|
|
49
|
+
.catch((err) => {
|
|
50
|
+
cancelRender(err);
|
|
51
|
+
});
|
|
52
|
+
}, [handle]);
|
|
53
|
+
|
|
54
|
+
if (!animationData) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return <Lottie animationData={animationData} />;
|
|
59
|
+
};
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Styling and animating
|
|
63
|
+
|
|
64
|
+
Lottie supports the `style` prop to allow styles and animations:
|
|
65
|
+
|
|
66
|
+
```tsx
|
|
67
|
+
return (
|
|
68
|
+
<Lottie animationData={animationData} style={{ width: 400, height: 400 }} />
|
|
69
|
+
);
|
|
70
|
+
```
|