snapcn
41 components
DocsComponentsTemplatesVideo EditorNewShowcaseMarketplaceRoadmapChangelog

Getting started

IntroductionInstallationAgent skill
GitHub

Star snapcn

Free, open-source components.

Production-ready Remotion animations, transitions and backgrounds — you own the code.

Star on GitHubXFollow

MIT licensed · own your code.

© 2026 snapcn

Loading
snapcn
41 components
DocsComponentsTemplatesVideo EditorNewShowcaseMarketplaceRoadmapChangelog

Getting started

IntroductionInstallationAgent skill
GitHub

Star snapcn

Free, open-source components.

Production-ready Remotion animations, transitions and backgrounds — you own the code.

Star on GitHubXFollow

MIT licensed · own your code.

© 2026 snapcn

DocsComponentsTemplatesVideo EditorNewShowcaseMarketplaceRoadmapChangelog
Getting startedIntroductionInstallationAgent skill

Word Wheel

A column of words that spins like a reel and stops on one of them — the lead-in holds the left of the line while the answer rolls into the slot beside it, decelerating over a second and three quarters

A sentence with a hole in it, and a reel that fills the hole. snapcn for holds the left of the line; the word that finishes it lives in a slot to its right, one row of a taller column whose other words are visible above and below, smaller and grey, fading out toward the top and bottom of the frame.

The reel rolls, decelerates, and comes to rest with one word at full size and in ink. Left at the list's own length it turns exactly once — the scene shows its answer, spins it away, and brings it back.

How it moves

The deceleration is a measurement, not a curve. It ships as a fifty-one point table taken off a recording, because nothing standard fits: the closest cubic-bezier is five pixels out at its worst and the closest spring 4.3px RMS. A fifth of a row is a visibly different frame, so the measurement ships instead.

The selected word lags the slot. A row takes the slot when it is nearest to it, but it does not arrive at full size on the frame it crosses — it grows into it over about seventy milliseconds. That lag is why the fast part of the roll never looks like a row of identical pops: each word is still growing when the next one takes over.

The scale pivots on the baseline. Every row's baseline sits on a 34px grid, the oversized one included, which is the only pivot a browser will not round: it quantises a glyph's origin to a whole device pixel vertically, so a scale that moves the baseline makes the word climb the grid in jumps.

Notes

The reel is left-aligned twice over. The selected word steps left out of the column to finish the sentence and steps back when it loses the slot — that is measured off the reference and it is what makes the line read as a line rather than as a list with one row shouting.

The gap between the lead-in and the word is a gap, not a position. Pin the word to an x and a shorter lead-in leaves a hole while a longer one runs the two together.

Installation

pnpm
$ pnpm dlx shadcn@latest add @snapcn/word-wheel

Needs an existing Remotion project and a components.json. Two-minute setup if this is your first snapcn component.

Component code

The exact file shadcn add copies into your project.

Usage

// src/Root.tsx
import { Composition } from "remotion";
import { WordWheel } from "@/components/snap-cn/word-wheel";

const Hook = () => (
  <WordWheel
    headline="snapcn for"
    words="Launches, Founders, Indie hackers, Agencies, Designers, Startups, Dev tools, Solo builders, Changelogs"
  />
);

export const RemotionRoot = () => (
  <Composition
    id="WordWheel"
    component={Hook}
    durationInFrames={66}
    fps={30}
    width={1280}
    height={720}
  />
);

Props

PropTypeDefaultDescription
headline
string"snapcn for"The part of the line that never changes
words
string—The reel, comma separated. It cycles, so the column is never empty — and its FIRST entry is the word the scene comes to rest on
spin
number9Rows travelled. Left at the list's own length the reel turns exactly once and comes home
fontFamily
string"Default"Jost unless you name one of the loaded faces
theme
Partial<SnapCnTheme>—Design-system token overrides. Anything you leave out falls back to the shadcn defaults
mode
"light" | "dark"—Which end of the design system to resolve tokens against

More in this category

  • Word GatherA sentence that arrives one word at a time, out of order, and gathers — the first word holds the frame alone, then the rest drop in around it in the accent colour and slide the last of the way home
  • Type MorphA headline that types itself under a glowing caret, sheds its lead, morphs letter by letter, and ends under a colour flood
  • Text RevealA cinematic zoom-out title reveal — the lead word appears large, then scales down and slides into place as the sentence sweeps in and settles
  • Punch LinesFull-frame title cards that cut hard between beats — a statement flicked in line by line and rushed past the camera, then a hero line whose words punch up from a third of their size
  • Text SwellThe lead word floats toward you and hangs there while the sentence assembles around it, letters bouncing up off the baseline — then the whole line falls back
  • Text HighlightAnimated emphasis on one span inside a static sentence — marker, color, underline, strikethrough, or shimmer

Get the next component in your inbox

New free components as they ship, and the pro pack first when it lands. One email a week at most, never a sponsored one.