Word Acts

Each word acts out its own meaning in a short beat, ending on a held poster word

Installation
$ pnpm dlx shadcn@latest add @remocn/word-acts

Usage

tsx
// src/Root.tsx
import { Composition } from "remotion";
import { WordActs } from "@/components/remocn/word-acts";
 
const WordActsScene = () => (
  <WordActs
    acts={[
      { word: "stretch", act: "stretch" },
      { word: "heavy", act: "heavy" },
      { word: "rebuilt", act: "rebuilt" },
    ]}
    hold={30}
  />
);
 
export const RemotionRoot = () => (
  <Composition
    id="WordActs"
    component={WordActsScene}
    durationInFrames={126}
    fps={30}
    width={1280}
    height={720}
  />
);

Words play one after another, each performing its meaning: stretch, split, heavy (falls and lands), faster (rushes in and snaps) and rebuilt (strokes scatter and reassemble). Pass acts as a list of { word, act, frames? }; the last word also holds for hold frames. Total length is the sum of the acts' frames plus the hold, and it ships light and dark through theme.

Props5

PropTypeDefault
acts
WordActBeat[]DEFAULT_ACTS

List of `{ word, act, frames? }` beats; `rebuilt` words must be lowercase a–z.

hold
number32

Extra frames the final word holds as a poster.

accent
string"#3B5BFD"

Accent color for the gradient marks and strokes.

speed
number1

Playback speed multiplier.

theme
"dark" | "light""dark"

Ships light and dark.

  • actsWordActBeat[]

    List of `{ word, act, frames? }` beats; `rebuilt` words must be lowercase a–z.

    DefaultDEFAULT_ACTS

  • holdnumber

    Extra frames the final word holds as a poster.

    Default32

  • accentstring

    Accent color for the gradient marks and strokes.

    Default"#3B5BFD"

  • speednumber

    Playback speed multiplier.

    Default1

  • theme"dark" | "light"

    Ships light and dark.

    Default"dark"