remocn
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chineseremocn
remocn
Copy-paste components for Remotion videos. Components install via and land in
— you own the code.
shadcncomponents/remocn/使用remocn构建Remotion视频——从shadcn注册表中复制粘贴动画组件和时间线驱动的UI原语。组件通过安装,会存放在目录下——代码完全由你掌控。
shadcncomponents/remocn/The catalog lives at remocn.dev
组件目录托管在remocn.dev
This skill does not carry a copy of the component catalog. There are ~240 components and they
change; a bundled copy goes stale silently. Read the live docs instead.
Start every component search here:
https://remocn.dev/llms-components.txtOne table per category, every installable component, each row carrying / ,
natural length, vibe, tier, dependencies, and a link to its full page. Scan it, shortlist, then
fetch only the pages you shortlisted.
Use forAvoid forOne component's full reference — props with descriptions, worked examples, all use / don't-use
notes — is the docs URL with appended:
.mdhttps://remocn.dev/docs/typography/blur-out-up.md
https://remocn.dev/docs/transitions/whip-pan.md
https://remocn.dev/docs/ui/components/dialog.mdThe index gives you the exact URL per component — don't guess the section from the name, several
components live somewhere non-obvious.
Fetch with whatever your environment provides (a web-fetch tool, , ). If the
network is unavailable, say so and stop — do not invent props, defaults, or durations from memory,
and do not substitute a component you have not read. A wrong prop name fails at build; an invented
duration silently clips the animation.
curlWebFetch本技能并未携带组件目录的副本。目前有约240个组件,且会持续更新;本地捆绑的副本会悄无声息地过时。请直接查阅在线文档。
从这里开始所有组件搜索:
https://remocn.dev/llms-components.txt每个类别对应一个表格,包含所有可安装的组件,每行都标注了“适用场景/避用场景”、自然时长、风格、层级、依赖项以及指向完整页面的链接。先浏览该列表,选出候选组件,再仅获取候选组件的详情页。
单个组件的完整参考文档——含属性说明、示例、所有适用/不适用注意事项——是在文档URL后追加:
.mdhttps://remocn.dev/docs/typography/blur-out-up.md
https://remocn.dev/docs/transitions/whip-pan.md
https://remocn.dev/docs/ui/components/dialog.md索引会给出每个组件的确切URL——不要根据组件名称猜测所在分类,有不少组件的存放位置并不直观。
使用你环境中的工具获取文档(网页抓取工具、、)。若网络不可用,请告知并停止操作——不要凭记忆编造属性、默认值或时长,也不要替换未查阅过的组件。错误的属性名称会导致构建失败;编造的时长会悄无声息地截断动画。
curlWebFetchInstallation
安装步骤
Prerequisites: a Remotion project ().
npx create-video@latestbash
shadcn add @remocn/blur-out-up@remocn/<name>registriescomponents.jsonhttps://remocn.dev/r/<name>.json前提条件:已创建Remotion项目(执行)。
npx create-video@latestbash
shadcn add @remocn/blur-out-up@remocn/<name>components.jsonregistrieshttps://remocn.dev/r/<name>.jsonDependencies install automatically
依赖会自动安装
Many components pull others via — installs them transitively.
For example, also pulls and .
registryDependenciesshadcnshadcn add @remocn/typewriter@remocn/remocn-ui@remocn/caret- is the shared core lib (timeline-fold hook, theme context, color math). Most UI Primitives depend on it. You rarely install it directly.
@remocn/remocn-ui
许多组件会通过引入其他依赖——会自动安装这些传递依赖。例如,执行时,同时会安装和。
registryDependenciesshadcnshadcn add @remocn/typewriter@remocn/remocn-ui@remocn/caret- ****是共享核心库(包含时间线折叠钩子、主题上下文、颜色计算工具)。大多数UI原语都依赖它。你很少需要直接安装它。
@remocn/remocn-ui
Two tiers
两个组件层级
remocn has two kinds of components — they have different APIs:
- Animation tier () — text animations, transitions, backgrounds, UI-block sims, brand/social cards, full compositions. Frame-driven. Shared props:
remocn(time multiplier), and for text:speed,fontSize,color.fontWeight - UI Primitives () — timeline-driven shadcn-style primitives (button, dialog, select, command-menu, tooltip…). State-based props (
remocn-ui,state,style,variant). Nothemeprop. Built onspeed.@remocn/remocn-ui
The index's column tells you which one you are looking at before you open the page.
Tierremocn包含两类组件——它们的API不同:
- 动画层级()——文本动画、转场效果、背景、UI块模拟、品牌/社交卡片、完整合成内容。基于帧驱动。共享属性:
remocn(时间乘数),文本组件额外包含speed、fontSize、color。fontWeight - UI原语()——时间线驱动的shadcn风格原语(按钮、对话框、选择器、命令菜单、提示框等)。基于状态的属性(
remocn-ui、state、style、variant)。无theme属性。基于speed构建。@remocn/remocn-ui
索引中的“层级”列会在你打开详情页前告知你组件所属的层级。
Component patterns
组件模式
Conventions differ by tier — don't assume animation-tier props on a primitive.
不同层级的组件遵循不同的约定——不要假设动画层级的属性适用于原语组件。
Animation tier (remocn
)
remocn动画层级(remocn
)
remocn- Named interface per component (e.g.
Props).BlurOutUpProps - — global time multiplier (default
speed?: number), applied as1.frame * speed - Text components: ,
fontSize,color.fontWeight - Transitions: lowercase factories (e.g. ) returning a
whipPan(props)— pass toTransitionPresentationviaTransitionSeries.Transition, pace withpresentation/linearTiming.springTiming - on the root.
className?: string
Not everything filed under transitions is a presentation: and are scene
sequencers that take a array and own the whole timeline. The page says which one you have.
slide-swapspring-settlescenes- 每个组件都有对应的命名接口(例如
Props)。BlurOutUpProps - ——全局时间乘数(默认值为
speed?: number),计算方式为1。frame * speed - 文本组件:、
fontSize、color。fontWeight - 转场效果:小写工厂函数(例如)返回
whipPan(props)——通过TransitionPresentation传递给presentation,使用TransitionSeries.Transition/linearTiming控制节奏。springTiming - 根元素支持。
className?: string
并非所有归类为转场的内容都是演示组件:和是场景序列器,接受数组并掌控整个时间线。详情页会说明组件类型。
slide-swapspring-settlescenesUI Primitives (remocn-ui
)
remocn-uiUI原语(remocn-ui
)
remocn-ui- State-based, not -based:
speed(e.g.state/"open"),"closed",style,variant,size.theme?: Partial<RemocnTheme> - The opened/closed/active state is a pure function of the timeline (keyframed presets).
- Compose modal-layer primitives (dialog, alert-dialog, drawer) with a trigger element — see each component's example.
- 基于状态,不基于:
speed(例如state/"open")、"closed"、style、variant、size。theme?: Partial<RemocnTheme> - 打开/关闭/激活状态是时间线的纯函数(关键帧预设)。
- 将模态层原语(对话框、警告对话框、抽屉)与触发元素组合使用——请查看每个组件的示例。
Animation API
动画API
tsx
import { interpolate, spring, useCurrentFrame, useVideoConfig } from "remotion";
const opacity = interpolate(frame, [0, 30], [0, 1], { extrapolateRight: "clamp" });
const scale = spring({ fps, frame, config: { damping: 12, mass: 1, stiffness: 100 } });
// Deterministic randomness (NEVER Math.random())
import { random } from "@remotion/random";
const jitter = random(`seed-${frame}`);tsx
import { interpolate, spring, useCurrentFrame, useVideoConfig } from "remotion";
const opacity = interpolate(frame, [0, 30], [0, 1], { extrapolateRight: "clamp" });
const scale = spring({ fps, frame, config: { damping: 12, mass: 1, stiffness: 100 } });
// 确定性随机(绝对不要用Math.random())
import { random } from "@remotion/random";
const jitter = random(`seed-${frame}`);Composition structure
合成内容结构
tsx
import { Sequence, Series } from "remotion";
<Sequence from={30} durationInFrames={60}>
<Typewriter text="npm install remocn" />
</Sequence>
<Series>
<Series.Sequence durationInFrames={60}><SceneA /></Series.Sequence>
<Series.Sequence durationInFrames={60}><SceneB /></Series.Sequence>
</Series>tsx
import { Sequence, Series } from "remotion";
<Sequence from={30} durationInFrames={60}>
<Typewriter text="npm install remocn" />
</Sequence>
<Series>
<Series.Sequence durationInFrames={60}><SceneA /></Series.Sequence>
<Series.Sequence durationInFrames={60}><SceneB /></Series.Sequence>
</Series>Canvas & timing
画布与计时
- Canvas standard: . Components are laid out for it.
1280×720 @ 30fps - is the component's own motion, not the whole beat. For a transition it is the value to pass to
Length/linearTiming; for everything else it is the frame the animation finishes on. Treat it as the floor for thespringTimingand add hold time when the element should stay on screen after it settles.Sequencemeans the component renders from itsstate-drivenprop and has no duration of its own.state - Tone matching: each entry carries a tag (
vibe/tech/premium/data/clean/playful/social) — pick components whose vibe fits the brand.paperis the stop-motion kit: a quantized ~10-poses-per-second clock, handwriting and ink. Those components read as one world, so mix them with each other rather than with the smooth tiers.paper
- 标准画布规格:。所有组件均为此规格布局。
1280×720 @ 30fps - “时长”指组件自身的运动时长,而非整个节拍的时长。对于转场效果,该值需传递给/
linearTiming;对于其他组件,该值是动画结束的帧编号。将其作为springTiming的最小时长,若元素在动画结束后需保持在屏幕上,可添加停留时间。“状态驱动”意味着组件根据Sequence属性渲染,自身无固定时长。state - 风格匹配:每个组件都带有标签(
vibe/tech/premium/data/clean/playful/social)——选择风格与品牌匹配的组件。paper是定格动画套件:约每秒10个关键帧的量化时钟、手写体和墨水效果。这些组件属于同一风格体系,应相互搭配使用,而非与平滑风格的组件混合。paper
Design defaults — avoid AI-slop
设计默认值——避免AI生成的劣质内容
Your own additions (text, scene chrome, cards — not the prebuilt components) stay restrained:
default tracking, sentence case, solid text color, subtle 1px elevation — no decorative
letter-spacing, ALL-CAPS, gradient text-fills, or glow shadows. Never strip these traits from a
component whose essence is the effect (, social-card gradients, designed elevation).
tracking-inFull do/avoid examples, design tokens, motion principles and the anti-pattern list live in the
Craft section:
https://remocn.dev/docs/craft/design-defaults.md
https://remocn.dev/docs/craft/motion-principles.md
https://remocn.dev/docs/craft/anti-patterns.md你自行添加的内容(文本、场景装饰、卡片——不包括预构建组件)需保持克制:默认字间距、句首大写、纯色文本、细微的1px阴影——不要使用装饰性字间距、全部大写、渐变文本填充或发光阴影。但对于本质就是特效的组件(如、社交卡片渐变、设计好的阴影),不要去除这些特性。
tracking-in完整的适用/避用示例、设计标记、动效原则和反模式列表可在“技巧”部分查阅:
https://remocn.dev/docs/craft/design-defaults.md
https://remocn.dev/docs/craft/motion-principles.md
https://remocn.dev/docs/craft/anti-patterns.mdGotchas (remocn-specific)
注意事项(remocn专属)
- Terminal scroll is instant — step-function , never spring/ease the scroll.
translateY - on split layouts — prevents content breakage during width animations.
overflow: hidden - Cursor blink is deterministic — , not intervals.
Math.floor(frame / 15) % 2 === 0 - Static files go in — load via
public/, not imports.staticFile('cursor.svg') - Social cards render offline — /
avatarUrl=""fall back to gradients; no fetch.coverUrl=""
General Remotion rules (no , no , animate not /,
load fonts before render) live in the skill.
Math.random()setIntervaltransformtopleftremotion-best-practices- 终端滚动是即时的——使用阶跃函数实现,绝对不要用弹簧/缓动效果。
translateY - 拆分布局需设置——防止宽度动画期间内容断裂。
overflow: hidden - 光标闪烁是确定性的——使用实现,而非定时器。
Math.floor(frame / 15) % 2 === 0 - 静态文件放在目录下——通过
public/加载,不要使用导入方式。staticFile('cursor.svg') - 社交卡片可离线渲染——当/
avatarUrl=""时,会回退到渐变效果;无需网络请求。coverUrl=""
通用Remotion规则(不要使用、不要使用、动画而非/、渲染前加载字体)可在技能中查阅。
Math.random()setIntervaltransformtopleftremotion-best-practicesComposing a video
视频合成
Don't dump components — compose one story. When asked to build a full video ("make a product demo",
"changelog video", "intro for my landing"):
- Decide the strategy — ready template vs compose from components vs build a new component. See
§1.
references/anatomy.md - Follow the beats — a product demo is Hook → Positioning → Product reveal → Features → Proof →
CTA (last two optional). See §2.
references/anatomy.md - Use the recipe — routes to per-archetype builds: content contract (infer → ask → placeholder), duration variants, beat→component slots, and a worked
references/archetypes/index.mdskeleton.<TransitionSeries> - Pick each beat's component from ; match the
https://remocn.dev/llms-components.txttag to the brand and budget itsvibeper Canvas & timing above.Sequence - Check the quality bar — one accent, sentence-case kinetic type, real content, no glow halos, no
feature-list enumeration. See §3.
references/anatomy.md
不要堆砌组件——要构建一个完整的故事。当需要制作完整视频(如“制作产品演示”、“更新日志视频”、“着陆页 intro”)时:
- 确定策略——使用现成模板、从组件合成、还是构建新组件。请查看第1节。
references/anatomy.md - 遵循节拍——产品演示的结构为:钩子→定位→产品展示→功能→证明→行动号召(最后两个可选)。请查看第2节。
references/anatomy.md - 使用配方——提供了不同类型视频的制作指南:内容约定(推断→询问→占位符)、时长变体、节拍→组件映射,以及完整的
references/archetypes/index.md框架。<TransitionSeries> - 从中为每个节拍选择组件;确保
https://remocn.dev/llms-components.txt标签与品牌匹配,并根据上述“画布与计时”为每个vibe分配时长。Sequence - 检查质量标准——单一强调色、句首大写的动态文字、真实内容、无发光光晕、无功能列表枚举。请查看第3节。
references/anatomy.md
Reference
参考资料
Bundled with this skill — the judgment that does not change per component:
- — composing a full video: strategy (template/compose/new), the product-demo beats, and the good-vs-slop quality bar.
references/anatomy.md - — router to per-archetype build recipes (product-demo flagship + changelog, feature-announcement, oss-showcase, cli-tool-demo, testimonial-reel, year-in-review, pricing-reveal, logo-bumper): content contract, duration variants, beat→slot map.
references/archetypes/index.md
Fetched from remocn.dev — everything that tracks the components:
- — the component index. Always start here.
https://remocn.dev/llms-components.txt - — one component's full reference.
https://remocn.dev/docs/<section>/<name>.md - — anti-slop defaults and design tokens.
https://remocn.dev/docs/craft/design-defaults.md - — motion principles adapted to remocn.
https://remocn.dev/docs/craft/motion-principles.md - — common generation mistakes and their fixes.
https://remocn.dev/docs/craft/anti-patterns.md - — index of the whole documentation, if you need something else.
https://remocn.dev/llms.txt
本技能包含以下不会随组件更新的判断准则:
- ——完整视频合成:策略(模板/合成/新建)、产品演示节拍、优质vs劣质内容的质量标准。
references/anatomy.md - ——不同类型视频的制作指南入口(旗舰产品演示+更新日志、功能发布、开源项目展示、CLI工具演示、推荐视频、年度回顾、价格发布、 Logo片头):内容约定、时长变体、节拍→组件映射。
references/archetypes/index.md
从remocn.dev获取的以下内容会随组件更新:
- ——组件索引。始终从此处开始。
https://remocn.dev/llms-components.txt - ——单个组件的完整参考文档。
https://remocn.dev/docs/<section>/<name>.md - ——避免劣质内容的默认设置和设计标记。
https://remocn.dev/docs/craft/design-defaults.md - ——适配remocn的动效原则。
https://remocn.dev/docs/craft/motion-principles.md - ——常见生成错误及修复方法。
https://remocn.dev/docs/craft/anti-patterns.md - ——完整文档索引,若你需要其他内容可查阅。",
https://remocn.dev/llms.txt