mcpField
R
react-animation

react-animation

github.com/noteditCreative & media340181 installsUpdated 34w ago
Repository

About react-animation

A design guide for building Remotion video compositions with curated React animation components, grouped by visual style. It helps video creators choose effects and adapt animations to deterministic, frame-based rendering.

Key features

  1. 01Components grouped by visual style
  2. 02Text, background, and effect animations
  3. 03Remotion frame-based animation patterns
  4. 04Seeded randomness for deterministic output
  5. 05Guidance on style combinations

Use cases

  1. 01Designing a luxury brand video
  2. 02Creating tech or gaming promo compositions
  3. 03Adapting time-based effects for Remotion rendering

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/notedit/happy-skills --skill react-animation

After installing, type/react-animationin Claude Code to confirm it loaded.

Bundled filesAESTHETIC_ANALYSIS.mdrules/adaptation-patterns.md

Details

From the project README

When to use

Use this skill when creating Remotion video compositions that need aesthetically refined visual effects. Components are curated for motion graphics excellence, categorized by visual style.

Installation

npx shadcn@latest add https://reactbits.dev/r/<Component>-TS-CSS

🎨 Aesthetic Categories

Components organized by visual style. Avoid mixing more than 2 styles in one video.


1. Elegant & Soft (优雅柔和)

Smooth, cinematic, refined. Best for luxury brands, emotional storytelling.

Text
ComponentInstallAesthetic
BlurTextnpx shadcn add https://reactbits.dev/r/BlurText-TS-CSSBlur-to-clear cinematic reveal
Backgrounds
ComponentInstallAesthetic
Auroranpx shadcn add https://reactbits.dev/r/Aurora-TS-CSSFlowing northern lights
Silknpx shadcn add https://reactbits.dev/r/Silk-TS-CSSMinimalist fabric waves
Grainientnpx shadcn add https://reactbits.dev/r/Grainient-TS-CSSGrainy artistic gradients
Effects
ComponentInstallAesthetic
Ribbonsnpx shadcn add https://reactbits.dev/r/Ribbons-TS-CSSFlowing silk ribbons
ShapeBlurnpx shadcn add https://reactbits.dev/r/ShapeBlur-TS-CSSSoft abstract geometry

Usage Pattern:

const ElegantScene: React.FC = () => {
  const frame = useCurrentFrame();
  const { fps } = useVideoConfig();
  
  return (
    <AbsoluteFill>
      <Aurora time={frame / fps} colorStops={['#3A29FF', '#FF94B4', '#FF3232']} />
      <BlurText text="Elegant Title" startFrame={15} />
    </AbsoluteFill>
  );
};

2. Modern & Tech (现代科技)

Cutting-edge, dynamic, futuristic. Best for tech products, startups, innovation.

Text
ComponentInstallAesthetic
GlitchTextnpx shadcn add https://reactbits.dev/r/GlitchText-TS-CSSDigital glitch artifacts
GradientTextnpx shadcn add https://reactbits.dev/r/GradientText-TS-CSSFlowing gradient sweep
Backgrounds
ComponentInstallAestheticDisable Mouse
Iridescencenpx shadcn add https://reactbits.dev/r/Iridescence-TS-CSSRainbow oil-slickmouseReact={false}
LiquidChromenpx shadcn add https://reactbits.dev/r/LiquidChrome-TS-CSSLiquid metal surfaceinteractive={false}
Particlesnpx shadcn add https://reactbits.dev/r/Particles-TS-CSSFloating data pointsmoveParticlesOnHover={false}
Effects
ComponentInstallAesthetic
MetaBallsnpx shadcn add https://reactbits.dev/r/MetaBalls-TS-CSSOrganic liquid fusion
Antigravitynpx shadcn add https://reactbits.dev/r/Antigravity-TS-CSSEthereal particle field

Usage Pattern:

const TechScene: React.FC = () => (
  <AbsoluteFill style={{ background: '#000' }}>
    <Iridescence mouseReact={false} color={[0.3, 0.1, 0.8]} speed={1} />
    <GlitchText speed={0.5} enableShadows enableOnHover={false}>
      FUTURE IS NOW
    </GlitchText>
  </AbsoluteFill>
);

3. Luxury & Premium (奢华高端)

Metallic, refined, sophisticated. Best for luxury goods, finance, high-end services.

Text
ComponentInstallAesthetic
ShinyTextnpx shadcn add https://reactbits.dev/r/ShinyText-TS-CSSMetallic sheen sweep
Backgrounds
ComponentInstallAesthetic
Silknpx shadcn add https://reactbits.dev/r/Silk-TS-CSSPremium fabric texture
Effects
ComponentInstallAesthetic
StarBordernpx shadcn add https://reactbits.dev/r/StarBorder-TS-CSSAnimated gradient border

Usage Pattern:

const LuxuryScene: React.FC = () => (
  <AbsoluteFill style={{ background: '#0a0a0a' }}>
    <Silk speed={0.5} color="#1a1a2e" />
    <StarBorder color="#gold" speed="4s">
      <ShinyText text="PREMIUM" color="#c9b037" shineColor="#fff" />
    </StarBorder>
  </AbsoluteFill>
);

4. Retro & Pixel (复古像素)

Nostalgic, digital, lo-fi. Best for gaming, retro tech, vaporwave aesthetics.

Text
ComponentInstallAesthetic
TextTypenpx shadcn add https://reactbits.dev/r/TextType-TS-CSSTerminal typewriter
DecryptedTextnpx shadcn add https://reactbits.dev/r/DecryptedText-TS-CSSData decryption effect
Transitions
ComponentInstallAesthetic
PixelTransitionnpx shadcn add https://reactbits.dev/r/PixelTransition-TS-CSSPixel grid dissolve
Backgrounds
ComponentInstallAesthetic
LetterGlitchnpx shadcn add https://reactbits.dev/r/LetterGlitch-TS-CSSMatrix code rain
Dithernpx shadcn add https://reactbits.dev/r/Dither-TS-CSSRetro dithering
FaultyTerminalnpx shadcn add https://reactbits.dev/r/FaultyTerminal-TS-CSSCRT monitor effect

Usage Pattern:

const RetroScene: React.FC = () => (
  <AbsoluteFill style={{ background: '#000' }}>
    <LetterGlitch glitchSpeed={100} glitchColors={['#0f0', '#00ff41']} />
    <GlitchText>SYSTEM OVERRIDE</GlitchText>
  </AbsoluteFill>
);

5. Energy & Dramatic (能量戏剧)

High-impact, dynamic, powerful. Best for action, sports, announcements.

Backgrounds
ComponentInstallAestheticDisable Mouse
Lightningnpx shadcn add https://reactbits.dev/r/Lightning-TS-CSSElectric stormNone
Beamsnpx shadcn add https://reactbits.dev/r/Beams-TS-CSSVolumetric light columnsNone
LightRaysnpx shadcn add https://reactbits.dev/r/LightRays-TS-CSSGod rays, dramaticfollowMouse={false}

Usage Pattern:

const DramaticScene: React.FC = () => (
  <AbsoluteFill>
    <Lightning hue={45} intensity={0.8} speed={2} />
    <BlurText text="THUNDER STRIKE" />
  </AbsoluteFill>
);

6. Abstract & Artistic (抽象艺术)

Experimental, artistic, unique. Best for creative projects, music videos.

Text
ComponentInstallAesthetic
DecryptedTextnpx shadcn add https://reactbits.dev/r/DecryptedText-TS-CSSCryptic reveal
Backgrounds
ComponentInstallAestheticDisable Mouse
Plasmanpx shadcn add https://reactbits.dev/r/Plasma-TS-CSSOrganic flowing colorsmouseInteractive={false}
Prismnpx shadcn add https://reactbits.dev/r/Prism-TS-CSSLight refractionanimationType='rotate'

7. Utility (通用工具)

Enhance any scene.

Overlay
ComponentInstallPurpose
Noisenpx shadcn add https://reactbits.dev/r/Noise-TS-CSSFilm grain texture overlay

Usage Pattern:

const SceneWithGrain: React.FC = () => {
  const frame = useCurrentFrame();
  const { width, height } = useVideoConfig();
  const canvasRef = useRef<HTMLCanvasElement>(null);
  
  useEffect(() => {
    const ctx = canvasRef.current?.getContext('2d');
    if (!ctx || frame % 2 !== 0) return;
    
    const imageData = ctx.createImageData(width, height);
    for (let i = 0; i < imageData.data.length; i += 4) {
      const seed = frame * 100000 + i / 4;
      const val = Math.floor((Math.sin(seed) * 10000 % 1) * 255);
      imageData.data[i] = imageData.data[i + 1] = imageData.data[i + 2] = val;
      imageData.data[i + 3] = 15;
    }
    ctx.putImageData(imageData, 0, 0);
  }, [frame]);
  
  return (
    <>
      <YourScene />
      <canvas ref={canvasRef} style={{ position: 'absolute', inset: 0, pointerEvents: 'none' }} />
    </>
  );
};

🔧 Core Adaptation Patterns

Frame-Based Animation

Replace all time-driven animations with useCurrentFrame():

import { useCurrentFrame, useVideoConfig, interpolate, Easing } from 'remotion';

// Before: time accumulation
// After: deterministic from frame
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const progress = interpolate(frame, [0, 30], [0, 1], {
  easing: Easing.out(Easing.cubic),
  extrapolateLeft: 'clamp',
  extrapolateRight: 'clamp',
});
Seeded Randomness

Ensure deterministic rendering:

function seededRandom(seed: number): number {
  const x = Math.sin(seed) * 10000;
  return x - Math.floor(x);
}

const rand = seededRandom(frame * 1000 + index);
Shader Uniforms

For WebGL/OGL components:

// Time uniform
uniforms.iTime.value = frame / fps;

// Scripted mouse path (optional)
uniforms.iMouse.value.set(
  0.5 + 0.3 * Math.sin(frame / fps),
  0.5 + 0.2 * Math.cos(frame / fps * 0.7)
);

⚠️ Style Consistency Guidelines

DO:

  • ✅ Mix Elegant + Luxury styles (BlurText + ShinyText + Silk)
  • ✅ Mix Modern + Retro styles (GlitchText + LetterGlitch)
  • ✅ Use Noise overlay on ANY scene
  • ✅ Keep backgrounds subtle when text is prominent

DON'T:

  • ❌ Mix Elegant + Retro (BlurText + PixelTransition)
  • ❌ Mix Luxury + Glitch (ShinyText + GlitchText)
  • ❌ Use Lightning with complex text animations
  • ❌ Use more than 2 background effects simultaneously

📦 Full Component List (35 curated)

Text (6)

BlurText, GlitchText, GradientText, ShinyText, DecryptedText, TextType

Backgrounds (18)

Aurora, Silk, Grainient, Lightning, Iridescence, LiquidChrome, Particles, Galaxy, Plasma, LetterGlitch, Beams, LightRays, Dither, FaultyTerminal, DarkVeil, PixelSnow, Balatro, Prism

Effects (10)

MetaBalls, Ribbons, ShapeBlur, Antigravity, StarBorder, PixelTransition

Utility (1)

Noise


❌ Removed Components

Why these were removed:

  • Low aesthetic value: SplitText, FadeContent, AnimatedContent
  • Style overlap: ElectricBorder (covered by GlitchText), Orb (covered by Iridescence)
  • Outdated aesthetics: Hyperspeed, Cubes, Squares
  • Narrow use cases: CircularText, RotatingText, TrueFocus
  • Functional > Aesthetic: Counter, Stepper, Carousel (UI components)

🎬 Recommended Combinations

Project TypeTextBackgroundEffectMood
Luxury BrandShinyTextSilkStarBorderPremium
Tech StartupGradientTextIridescence-Innovative
Creative StudioBlurTextAuroraRibbonsArtistic
GamingGlitchTextLetterGlitchPixelTransitionEdgy
DocumentaryBlurTextGrainientNoiseCinematic
Event PromoDecryptedTextLightning-Energetic

Comments

Markdown supported