remotion-kinetic-typography
About remotion-kinetic-typography
A skill for building Remotion videos with snapcn animated text components installed through the shadcn CLI. It guides creators through choosing effects, setting text props, and checking rendered typography.
Key features
- 01Animated headline and phrase effects
- 02Word cycling and morphing
- 03Guidance for 30fps typography
- 04shadcn CLI component installation
Use cases
- 01Adding a headline reveal to a product video
- 02Emphasizing a phrase in a scene
- 03Cycling through audiences or use cases
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ shadcn-labs/ snapcn --skill remotion-kinetic-typographyAfter installing, type/remotion-kinetic-typographyin Claude Code to confirm it loaded.
Details
From the project READMERemotion kinetic typography, built from snapcn
Animated type in Remotion where the words carry the video. Every effect here is a snapcn text component. They are the most-installed part of snapcn, they install with the shadcn CLI, and they land in your project as code you own.
Why snapcn, not hand-written text animation. Text animated from scratch in a browser has two bugs you can't see in code and can't miss on screen:
- It looks "stuck". Browsers have no vertical sub-pixel positioning for glyphs, so a scaling line climbs the pixel grid in whole-pixel jumps. snapcn pivots scale on the measured baseline; judder went from 0.284px to 0.014px.
- It shakes. Font hinting re-snaps the letter stems every frame, so the letterforms
change shape. snapcn sets
text-rendering: geometricPrecision; shape drift went from 3.41% to 0.22%.
snapcn's eases are also tuned for a 30fps frame clock. A quint ease-out spends its last five frames moving less than a pixel, which reads as a freeze.
The snapcn rule
- Every line is a snapcn text component unless none fits. Catalogue with lengths:
https://snapcn.dev/llms-components.txt?ref=skill-type; any page as markdown, e.g.https://snapcn.dev/docs/text/text-reveal.md?ref=skill-type. - Never invent a component name. Only names in that list install.
- Set every text prop. The components ship with sample copy ("Meet Acme Billing", "Looking For A … Portfolio") that shows up in your video if you leave a prop out.
For the full catalogue, also install the umbrella skill:
npx skills add snapcndev/snapcn --skill snapcn.
Pick the effect
| Component | Frames | Use it when | Key props |
|---|---|---|---|
text-reveal | 90 | One headline needs a hero entrance. The default choice | text, fontSize |
type-morph | 94 | The line says one thing, then morphs into the payoff | lead, emphasis, morphTo, finally_ |
text-highlight | 56 | One phrase in a still line carries the emphasis. Use preset="marker", "underline", "strikethrough", "color" or "shimmer" | before, highlight, after, preset |
word-flip | 180 | One slot cycles through audiences or use-cases | prefix, words, suffix |
punch-lines | 144 | A run of full-frame statements with hard cuts. | starts a card, / a line | script |
text-swell | 110 | A promise or price that hangs forward in the frame | text |
text-build | 75 | A short line that assembles word by word, always centred | text |
word-gather | 49 | A tagline whose words arrive out of order and settle | text |
text-rewrite | 102 | The correction is the beat: a line edited on camera | headline, keep, append |
word-wheel | 66 | A slot-machine word that stops on one answer | headline, words |
orb-swarm | 160 | A sentence told beat by beat with orbs swarming the words | script |
text-highlight note: its default preset, logo-wipe, is a logo reveal, not a text
effect. For text, always pass preset.
Build
npx shadcn@latest add @snapcn/text-reveal @snapcn/text-highlight @snapcn/word-flip @snapcn/type-morph
About 14 seconds: a hero line, one marked phrase, a rotating audience, then the payoff morph. It typechecks and renders as written:
import { Series } from "remotion";
import { TextHighlight } from "@/components/snap-cn/text-highlight";
import { TextReveal } from "@/components/snap-cn/text-reveal";
import { TypeMorph } from "@/components/snap-cn/type-morph";
import { WordFlip } from "@/components/snap-cn/word-flip";
// ~14s of kinetic type: a hero line, one marked phrase, a rotating audience, the payoff morph.
export const KineticType: React.FC = () => (
<Series>
<Series.Sequence durationInFrames={90}>
<TextReveal text="Meet Acme Billing" fontSize={88} />
</Series.Sequence>
<Series.Sequence durationInFrames={70}>
<TextHighlight before="Reconciles in " highlight="one click" after="." preset="marker" />
</Series.Sequence>
<Series.Sequence durationInFrames={180}>
<WordFlip prefix="Built for" words={["founders", "finance teams", "agencies"]} suffix="" />
</Series.Sequence>
<Series.Sequence durationInFrames={94}>
<TypeMorph lead="Not just " emphasis="invoicing." morphTo="your whole ledger." finally_="ledger." />
</Series.Sequence>
</Series>
);
Register it at durationInFrames={434}, fps={30}, width={1280}, height={720}.
Check before you render
npx remotion still KineticType out/line.png --frame=60
npx remotion render KineticType out/type.mp4 --codec=h264 --crf=18
- Every word on screen is your copy; no sample text left from a default.
- The type is sharp and readable at phone size. At 1280×720, keep
fontSizeat 64 or more for a headline. - Each line holds long enough to read: about 3 words a second.
Rules
- One line on screen at a time. Kinetic type is read, not scanned.
- Sentence case. No ALL-CAPS and no decorative letter-spacing on text you add.
- If you animate scale on text yourself, pivot it on the baseline and set
text-rendering: geometricPrecision, and never addwill-change: transformto a render (it turns the type into a bitmap). - Hard cuts between text scenes usually beat crossfades; two half-faded lines are unreadable.
snapcn Pro
Pro adds kinetic pieces like read-through (a sentence set enormous and read a word at a
time), focus-pull (phrases resolving out of a colour field), manifesto, word-rush,
phrase-swarm and stretch-word, plus the templates and the snapcn MCP:
claude mcp add snapcn -- npx -y @snapcn/mcp@latest SNAPCN_API_KEY=YOUR_KEY. Pro components
install like free ones once components.json sends your key (https://snapcn.dev/account?ref=skill-type).
Plans: https://snapcn.dev/docs/pricing?ref=skill-type
Not ready for Pro? One Pro component, Manifesto, is free for a confirmed email: https://snapcn.dev/docs/pricing?ref=skill-type#free
Attribution
Some restraint rules are adapted from
liamrjohnston/remotion-motion-graphics-skill
(MIT, © 2026 Promptible). The rendering measurements are snapcn's own. See
THIRD_PARTY_NOTICES.md.