snapcn
20 components
DocsComponentsTemplatesVideo EditorShowcaseMarketplace

Getting started

IntroductionInstallationAgent skill
GitHub

Star snapcn

Free, open-source components.

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

Star on GitHub

MIT licensed · own your code.

© 2026 snapcn

DocsComponentsTemplatesVideo EditorShowcaseMarketplace
Getting startedIntroductionInstallationAgent skill

AI Chat Input

Prompt bars, search fields and chat composers that type themselves — the shot where a product gets asked a question.

Reach for this category when the input is the shot: the search bar at the top of a landing page, the prompt box in an AI product, the composer someone is about to hit enter on. These components animate the query being written — and the camera that leans in to watch it happen.

The hard part is not the typing, it is the type. A field that resizes as it fills, or a line of text that re-kerns as it grows, or a scale that drags the baseline across the pixel grid, is what makes a demo look cheap. These components lay the sentence out once and reveal it by clipping, and they pivot every scale on the baseline — so the letters land, and nothing else moves.

The components

3 components in AI Chat Input. Each card plays its own default scene — open one for its props, the source file shadcn add writes, and a player you can scrub frame by frame.

Install

Components are installed into your own Remotion project with the shadcn CLI, and the file it writes is yours to edit — there is no snapcn package to depend on. Set the registry up once, then add components by name:

pnpm
$ pnpm dlx shadcn@latest add @snap-cn/search-typing

That writes components/snap-cn/search-typing.tsx. Swap the name for any other component on this page.

Put it on screen

Every prop has a working default, so the component renders as soon as it is mounted — give it a composition and you have a video:

// src/Root.tsximport { Composition } from "remotion";import { SearchTyping } from "@/components/snap-cn/search-typing";export const RemotionRoot = () => (  <Composition    id="SearchTyping"    component={SearchTyping}    durationInFrames={420}    fps={60}    width={1280}    height={720}  />);

durationInFrames is the length SearchTyping is choreographed for — 420 frames at 60 fps. Cut it short and the animation is cut short with it. To use one as a beat inside a longer video, mount it in a <Sequence>of the same length instead of giving it a composition of its own. Each component's page lists its props; they are all plain values, so anything you can compute you can animate.

Next

  • Installation — the one-time registry setup, and the Remotion project it needs.
  • All components — the full gallery, filterable across every category.
  • Agent skill — hand snapcn to a coding agent so it picks the right component itself.