In Proportion
Each worry builds word by word, shrinks to a dim note, and a bigger accent reply answers it.
$ pnpm dlx shadcn@latest add @remocn/in-proportionUsage
// src/Root.tsx
import { Composition } from "remotion";
import { InProportion } from "@/components/remocn/in-proportion";
const InProportionScene = () => (
<InProportion
pairs={[
{ worry: "It will look templated.", answer: "It will look like your app." },
{ worry: "I will drown in keyframes.", answer: "You will write a component." },
]}
/>
);
export const RemotionRoot = () => (
<Composition
id="InProportion"
component={InProportionScene}
durationInFrames={200}
fps={30}
width={1280}
height={720}
/>
);A worry builds word by word in large white type, then shrinks into a dimmed note in the top corner while the answer rises in the accent color along the bottom. The next pair repeats. Pass pairs as { worry, answer } objects; timing compresses to fit the composition and leaves about 18% hold at the end. It ships light and dark.
Props5
| Prop | Type | Default |
|---|---|---|
| pairs | { worry: string; answer: string }[]DEFAULT_PAIRS Worry and answer pairs, played in order; two or three work best. | |
| accent | string— Color of the answer text; overrides the theme accent. | |
| background | string— Background fill; pass "transparent" to drop it. | |
| speed | number1 Playback speed multiplier for the whole timeline. | |
| theme | "dark" | "light""dark" Light or dark palette. | |
- pairs{ worry: string; answer: string }[]
Worry and answer pairs, played in order; two or three work best.
Default
DEFAULT_PAIRS - accentstring
Color of the answer text; overrides the theme accent.
- backgroundstring
Background fill; pass "transparent" to drop it.
- speednumber
Playback speed multiplier for the whole timeline.
Default
1 - theme"dark" | "light"
Light or dark palette.
Default
"dark"