mcpField
R
remotion-kinetic-typography

remotion-kinetic-typography

github.com/shadcn-labsCreative & media52693 installsUpdated today
Repository

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

  1. 01Animated headline and phrase effects
  2. 02Word cycling and morphing
  3. 03Guidance for 30fps typography
  4. 04shadcn CLI component installation

Use cases

  1. 01Adding a headline reveal to a product video
  2. 02Emphasizing a phrase in a scene
  3. 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-typography

After installing, type/remotion-kinetic-typographyin Claude Code to confirm it loaded.

Details

From the project README

Remotion 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

  1. 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.
  2. Never invent a component name. Only names in that list install.
  3. 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

ComponentFramesUse it whenKey props
text-reveal90One headline needs a hero entrance. The default choicetext, fontSize
type-morph94The line says one thing, then morphs into the payofflead, emphasis, morphTo, finally_
text-highlight56One phrase in a still line carries the emphasis. Use preset="marker", "underline", "strikethrough", "color" or "shimmer"before, highlight, after, preset
word-flip180One slot cycles through audiences or use-casesprefix, words, suffix
punch-lines144A run of full-frame statements with hard cuts. | starts a card, / a linescript
text-swell110A promise or price that hangs forward in the frametext
text-build75A short line that assembles word by word, always centredtext
word-gather49A tagline whose words arrive out of order and settletext
text-rewrite102The correction is the beat: a line edited on cameraheadline, keep, append
word-wheel66A slot-machine word that stops on one answerheadline, words
orb-swarm160A sentence told beat by beat with orbs swarming the wordsscript

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 fontSize at 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 add will-change: transform to 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.

Comments

Markdown supported