CommunityCodierung & Entwicklunggithub.com

snapcndev/snapcn

Eine shadcn-Registry mit Remotion-Komponenten für Produkt-Demo-Videos. Installiere eine Texteinblendung, einen Geräterahmen, eine Terminal-Sitzung, ein Logo-Intro oder eine ganze Szene mit einem Befehl.

Was ist snapcn?

snapcn ist eine Sammlung von Copy-Paste-Komponenten für Remotion-Videos, die über die shadcn-Registry installiert werden. Die Komponenten landen direkt im `components/snap-cn/` Ordner des Projekts, sodass der Entwickler das vollständige Eigentum am Code behält. Die Bibliothek ist in zwei Stufen unterteilt: Die Animationsebene (`snapcn`) bietet frame-gesteuerte Textanimationen, Übergänge, Hintergründe, UI-Block-Simulationen, Marken-/Social-Karten und vollständige Szenen. Die UI-Primitiven (`snap-cn-ui`) sind timeline-gesteuerte, shadcn-artige Basiskomponenten wie `input` und `caret`, die auf einem gemeinsamen Kern (snap-cn-ui) aufbauen. Insgesamt umfasst die Registry 27 Elemente in Kategorien wie Text & Titel, Bildschirme & Geräte, Logos, Szenen und mehr. Die Komponenten werden mit `shadcn add @snapcn/<name>` installiert, wobei Abhängigkeiten automatisch transitiv aufgelöst werden. Die Bibliothek legt großen Wert auf Designqualität und vermeidet KI-typische Effekte wie dekorativen `letter-spacing`, Großbuchstaben, Farbverläufe oder Glüheffekte in selbst erstellten Elementen.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add snapcndev/snapcn

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht snapcn?

Copy-Paste-Komponenten für Remotion-Videos. Die Komponenten werden über shadcn installiert und landen in components/snap-cn/ – der Code gehört dir.

Installation

Voraussetzungen: Ein Remotion-Projekt (npx create-video@latest).

# Eine beliebige Komponente hinzufügen (namespaced shadcn registry)
shadcn add @snapcn/text-reveal

# Die Komponente landet unter components/snap-cn/text-reveal.tsx

@snapcn/<name> ist die kanonische namespaced-Form. Es ist kein registries-Eintrag nötig – der Namespace befindet sich im shadcn-Registry-Verzeichnis. Die reine Registry-URL https://snapcn.dev/r/<name>.json funktioniert ebenfalls.

Abhängigkeiten werden automatisch installiert

Viele Komponenten ziehen über registryDependencies weitere Komponenten nach sich – shadcn installiert sie transitiv. Zum Beispiel installiert shadcn add @snapcn/search-typing auch @snapcn/snap-cn-ui, @snapcn/input und @snapcn/caret.

  • @snapcn/snap-cn-ui ist die gemeinsame Kernbibliothek (Timeline-Fold-Hook, Theme-Kontext, Farb-Mathematik). Die meisten UI-Primitiven hängen davon ab. Du installierst sie selten direkt.

Zwei Ebenen

snapcn hat zwei Arten von Komponenten – sie haben unterschiedliche APIs:

  • Animationsebene (snapcn) – Textanimationen, Übergänge, Hintergründe, UI-Block-Simulationen, Marken-/Social-Karten, vollständige Kompositionen. Frame-gesteuert. Gemeinsame Props: speed (Zeitmultiplikator), und für Text: fontSize, color, fontWeight.
  • UI-Primitiven (snap-cn-ui) – timeline-gesteuerte shadcn-artige Primitive. Derzeit zwei: input und caret. Zustandsbasierte Props (state, style, size, theme) – der offene/schreibende Zustand ist eine reine Funktion der Timeline. Kein speed-Prop. Basiert auf @snapcn/snap-cn-ui.

Komponentenkategorien

Wähle je nachdem, was du baust. Der Katalog ist auf eine Datei pro Komponente unter references/components/ aufgeteilt. Beginne mit references/components/index.md – einer Routingtabelle, gruppiert nach diesen Kategorien, mit einem Verwende für / Vermeide für-Signal pro Komponente. Scanne sie, wähle Kandidaten aus und öffne dann nur die references/components/<name>.md-Dateien, die du benötigst (vollständige Props, Beispiel, alle Nutzungs-/Nicht-Nutzungs-Hinweise). Lies nicht jede Datei.

KategorieEbeneKomponenten
Text & Titelsnapcntext-reveal, text-swell, text-highlight, text-swap, text-build, word-flip
Untertitelsnapcnword-captions, karaoke-captions
KI-Chat-Eingabesnapcnsearch-typing, prompt-zoom, answer-stream
Bildschirme & Gerätesnapcnphone-frame, laptop-frame, terminal-simulator
Logossnapcnlogo-assemble, logo-flicker, block-wordmark
Szenensnapcnannounce-title, hero-launch, orbit-gallery, moodboard-reveal, status-cycle
Sozialer Beweissnapcnfollower-rush
Effektesnapcnpulsing-border
UI-Primitivensnap-cn-uiinput, caret (+ snap-cn-ui, die gemeinsame Kernbibliothek)

Das ist die gesamte Registry – 27 Elemente. Es gibt keine Shader, keine eigenständigen Übergangskomponenten, keine Diagramm- oder Social-Card-Komponenten und keine weiteren shadcn-Primitiven außer input und caret. Wenn eine Szene eine benötigt, baue sie selbst (references/anatomy.md §1) – führe kein shadcn add für einen Namen aus, der nicht in dieser Tabelle steht. references/components/index.md bildet die älteren Namen ab, die nicht mehr installiert werden.

Komponentenmuster

Die Konventionen unterscheiden sich je nach Ebene – gehe nicht davon aus, dass Props der Animationsebene auf einer Primitive funktionieren.

Animationsebene (snapcn)

  • Benannte Props-Schnittstelle pro Komponente (z. B. TextRevealProps).
  • speed?: number – globaler Zeitmultiplikator (Standard 1), angewendet als frame * speed.
  • Textkomponenten: fontSize, color, fontWeight.
  • Szenenübergänge sind nicht in dieser Registry – verwende Remotions eigene @remotion/transitions (slide, wipe, fade, flip) innerhalb eines <TransitionSeries>.
  • className?: string am Root-Element.

UI-Primitiven (snap-cn-ui)

  • Zustandsbasiert, nicht speed-basiert: state (z. B. "open" / "closed"), style, variant, size, theme?: Partial<SnapCnTheme>.
  • Der geöffnete/geschlossene/aktive Zustand ist eine reine Funktion der Timeline (keyframed Presets).
  • Zusammensetzbare Modal-Layer-Primitiven (Dialog, Alert-Dialog, Drawer) mit einem Trigger-Element – siehe das Beispiel jeder Komponente.

Animations-API

import { interpolate, spring, useCurrentFrame, useVideoConfig } from "remotion";

const opacity = interpolate(frame, [0, 30], [0, 1], { extrapolateRight: "clamp" });
const scale = spring({ fps, frame, config: { damping: 12, mass: 1, stiffness: 100 } });

// Deterministische Zufälligkeit (NIEMALS Math.random())
import { random } from "@remotion/random";
const jitter = random(`seed-${frame}`);

Aufbau von Kompositionen

import { Sequence, Series } from "remotion";

<Sequence from={30} durationInFrames={60}>
  <TextReveal text="Ship it in React" />
</Sequence>

<Series>
  <Series.Sequence durationInFrames={60}><SceneA /></Series.Sequence>
  <Series.Sequence durationInFrames={60}><SceneB /></Series.Sequence>
</Series>

Leinwand & Timing

  • Leinwandstandard: 1280×720 @ 30fps. Die Komponenten sind darauf ausgelegt.
  • Bemesse jede Sequence um die natürliche Länge der Komponente herum – die Spalte Länge in components/index.md (und die Natürliche Länge jeder Datei). Zu knappe Bemessung schneidet die Animation ab; zu großzügige Bemessung hinterlässt tote Luft.
  • Tonangepasstheit: Jeder Katalogeintrag trägt ein vibe-Tag (tech/premium/data/clean/playful/social) – wähle Komponenten, deren Vibe zur Marke passt.
  • Palette & Schriftarten: Bleibe innerhalb der Tokens der Bibliothek (references/design.md → Tokens), damit deine eigenen Elemente nicht kollidieren.

Designvorgaben – vermeide KI-Schluderei

Wenn du eigene Texte, Szenen-Chrome oder Karten schreibst (nicht die vorgefertigten Komponenten), halte es zurückhaltend:

  • Kein dekoratives letter-spacing bei von dir hinzugefügtem Fließtext/Überschriftentext.
  • Kein text-transform: uppercase / GROSSSCHRIFT als Standard – bevorzuge Satzfall (Launch, nicht LAUNCH).
  • Keine Farbverlaufs-Textfüllungen oder dekorativen Farbverlaufswaschungen – Farbverläufe nur als bewusste Hintergründe.
  • Kein Glühen / farbige Schlagschatten oder große Weichzeichnungsradien (blur > ~24px, Spread, mehrschichtig) – nur dezente 1-Px-Höhe.

Ausnahme: Entferne diese niemals von Komponenten, deren Wesen der Effekt ist – word-flips Farbverlaufswort, block-wordmarks Farbdeck, announce-titles Glühen, pulsing-border selbst und die dicken Konturen der Untertitel-Presets sind alle legitim. Die Regeln gelten für deine Ergänzungen, nicht für die Bibliothek.

Vollständige Do-/Avoid-Beispiele: references/design.md. Für Bewegungsqualität (Timing, Antizipation, Inszenierung, Easing) siehe references/motion-principles.md.

Fallstricke (snapcn-spezifisch)

  • Es werden keine Übergangskomponenten ausgeliefert – ein Szenenwechsel erfolgt über <TransitionSeries.Transition> von @remotion/transitions, nicht über eine snapcn-Komponente. text-swap tauscht eine Zeile aus, keine Szene.
  • Terminal-Scroll ist instantan – Schrittfunktion translateY, niemals Spring/Ease für den Scroll.
  • overflow: hidden bei geteilten Layouts – verhindert Inhaltsbrüche während Breitenanimationen.
  • Cursor-Blinken ist deterministisch – Math.floor(frame / 15) % 2 === 0, keine Intervalle.
  • Statische Dateien kommen in public/ – lade sie über staticFile('cursor.svg'), nicht über Imports.
  • Social-Karten rendern offline – avatarUrl="" / coverUrl="" fallen auf Farbverläufe zurück; kein Fetch.

Allgemeine Remotion-Regeln (kein Math.random(), kein setInterval, transform animieren, nicht top/left, Schriftarten vor dem Rendern laden) sind in Remotions eigenen Skills enthalten, nicht in diesem: npx skills add remotion-dev/skills.

Ein Video zusammenstellen

Wirf nicht einfach Komponenten zusammen – erzähle eine Geschichte. Wenn du gebeten wirst, ein vollständiges Video zu erstellen ("eine Produktdemo machen", "Changelog-Video", "Intro für meine Landing-Page"):

  1. Entscheide die Strategie – fertige Vorlage vs. aus Komponenten zusammensetzen vs. neue Komponente bauen. Siehe references/anatomy.md §1.
  2. Folge den Schritten – eine Produktdemo ist: Hook → Positionierung → Produktvorstellung → Funktionen → Beweis → CTA (letzte zwei optional). Siehe references/anatomy.md §2.
  3. Verwende das Rezept – references/archetypes/index.md leitet zu bauartspezifischen Builds weiter: Inhaltsvertrag (ableiten → fragen → Platzhalter), Dauer-Varianten, Schritt→Komponenten-Slots und ein ausgearbeitetes <TransitionSeries>-Gerüst.
  4. Wähle die Komponente für jeden Schritt aus references/components/index.md; gleiche das vibe-Tag mit der Marke ab und bemesse jede <Sequence durationInFrames> um ihre natürliche Länge herum.
  5. Überprüfe die Qualitätsschwelle – ein Akzent, kinetischer Text in Satzform, echter Inhalt, keine Glüh-Halos, keine Aufzählung von Feature-Listen, kein dekorativer Farbverlaufshintergrund hinter dem Text. Siehe references/anatomy.md §3.

Referenz

  • references/anatomy.md – Ein vollständiges Video zusammenstellen: Strategie (Vorlage/zusammensetzen/neu), die Schritte einer Produktdemo und die Qualitätsschwelle zwischen gut und schlampig.
  • references/archetypes/index.md – Router zu bauartspezifischen Build-Rezepten (Produktdemo-Flaggschiff + Changelog, Feature-Ankündigung, OSS-Showcase, CLI-Tool-Demo, Testimonial-Reel, Jahresrückblick, Preisvorstellung, Logo-Bumper): Inhaltsvertrag, Dauer-Varianten, Schritt→Slot-Zuordnung.
  • references/components/index.md – Router-Tabelle (alle Komponenten, gruppiert nach Kategorie, mit Verwende für / Vermeide für). Öffne references/components/<name>.md für die vollständigen Props, ein Beispiel und Nutzungs-/Nicht-Nutzungshinweise einer einzelnen Komponente.
  • references/design.md – Anti-Schluderei-Designvorgaben (Do/Avoid) + Design-Tokens (Palette, Schriftarten, Leinwand).
  • references/motion-principles.md – Bewegungsdesign-Prinzipien, angepasst an snapcn + Remotion.
  • references/anti-patterns.md – Häufige Generierungsfehler und ihre Behebungen.

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

snapcndev/snapcn

Make an explainer video in Remotion: a narrated 30–90s video that explains a product, feature, idea or process, with a voiceover and burned-in captions. Script → voiceover → word timings → one snapcn scene per beat → captions → render. Uses snapcn's Remotion components (@snapcn/punch-lines, status-cycle, count-grid, laptop-frame, word-captions, karaoke-captions and more) for every beat instead of hand-animated slides. Triggers: explainer video, animated explainer, how it works video, product explainer, narrated video, voiceover video, "explain my product in a video", "make an explainer in Remotion".

snapcndev/snapcn

Build a product launch video in Remotion from a brief: a launch film, feature announcement, version release, Product Hunt / X / LinkedIn promo or landing-page hero video. Composes snapcn's hand-tuned Remotion scenes (@snapcn/announce-title, hero-launch, type-morph, count-grid, wordmark-cut and more) instead of hand-animating every shot, so the result does not look like every other AI video. Brief → storyboard → install snapcn components → compose → render-audit → ship. Triggers: launch video, product launch video, remotion launch video, announcement video, release video, promo video, Product Hunt video, "make a video for my launch", "make a launch film with Claude Code".

snapcndev/snapcn

Make a logo animation in Remotion: a logo reveal, logo sting, intro or outro bumper, brand reveal or end card for a video, launch or YouTube channel. Uses snapcn's hand-tuned Remotion logo scenes (@snapcn/logo-flicker, logo-assemble, logo-collapse, block-wordmark, wordmark-cut) with your real logo, instead of a logo that fades in and scales up. Triggers: logo animation, logo reveal, logo sting, animated logo, intro animation, outro, brand reveal, end card, bumper, "animate my logo", "logo intro in Remotion".

snapcndev/snapcn

Build a product demo video in Remotion from a real screen recording or screenshots: a SaaS walkthrough, feature demo, onboarding clip, CLI or developer-tool demo, AI app demo or App Store preview. Uses snapcn's Remotion components (@snapcn/screen-recording, cursor-track, laptop-frame, phone-frame, terminal-simulator, prompt-send, answer-stream, status-cycle) so the camera push, clicks, device frames and typed commands come pre-built instead of hand-animated. Triggers: product demo, demo video, remotion demo, product walkthrough, feature demo video, screen recording to video, app demo, SaaS demo, CLI demo, "turn my screen recording into a demo video".

snapcndev/snapcn

Build Remotion videos with snapcn — a shadcn registry of copy-paste animation components and timeline-driven UI primitives. Use when composing video scenes, adding text animations, transitions, backgrounds, UI blocks, brand/social cards, or full compositions in a Remotion project. Triggers include "snapcn", "video component", "add animation", "text reveal", "product demo video", "remotion component", "terminal simulator", "device frame", "phone mockup", "burned-in captions", "karaoke captions", "logo animation", "launch video", "changelog video", and the UI-primitive tier: "video input", "typing caret". Even if the user doesn't mention snapcn, activate when they need polished video primitives for Remotion.

Verwandte Skills