MO

motion-graphics

This skill creates animations using design principles like easing and kinetic typography to improve UI and video content.

Install

mkdir -p .claude/skills/motion-graphics && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2945" && unzip -o skill.zip -d .claude/skills/motion-graphics && rm skill.zip

Installs to .claude/skills/motion-graphics

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Kinetic typography, logo animations, and stylized motion design skill.

**Triggers when:**
- User wants text animations or kinetic typography
- Request involves logo reveals or title sequences
- Content focuses on visual impact over education
- User mentions "title", "intro", "logo", "text animation", "kinetic"

**Capabilities:**
- Kinetic typography with dynamic text effects
- Logo reveals and brand animations
- Particle effects and visual flourishes
- Modern motion design patterns
- Attention-grabbing title sequences
524 chars · catalog description✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Animate text using kinetic typography
  • Apply motion design principles (easing, anticipation)
  • Sequence brand-aligned logo reveals
  • Generate visual title sequences
  • Implement squash and stretch motion math

How it works

It executes programmatic animation scripts using the Manim engine to render motion graphics based on defined timing and easing curves.

Inputs & outputs

You give it
Text content, brand style, animation style (e.g., word-by-word reveal).
You get back
Python animation scripts and motion curve configuration.

When to use motion-graphics

  • Design kinetic typography
  • Create logo animations
  • Animate title sequences
  • Apply motion easing curves

About this skill

Motion Graphics Skill

The Motion Graphics skill creates visually striking animations focused on aesthetic impact, perfect for titles, intros, and attention-grabbing content.

Design Principles

The 4 S's of Motion Graphics

  • Style: Consistent visual language throughout
  • Surprise: Unexpected movements that delight
  • Smoothness: Fluid transitions and easing
  • Simplicity: Clean design, no visual clutter

Motion Design Fundamentals

  • Anticipation: Small movement before main action
  • Follow-through: Elements continue after stopping
  • Overshoot: Go past, then settle into place
  • Squash & Stretch: Emphasize weight and impact

Rules

rules/kinetic-typography.md

Creating impactful text animations that convey emotion.

rules/timing-and-easing.md

Professional easing curves and timing patterns.

rules/visual-hierarchy.md

Directing attention through size, color, and motion.

rules/brand-consistency.md

Maintaining consistent style across animations.

Templates

Kinetic Typography - Word by Word

from manim import *

class KineticTypography(Scene):
    def construct(self):
        self.camera.background_color = "#1a1a2e"

        words = ["The", "Future", "Is", "NOW"]
        colors = [WHITE, BLUE, WHITE, YELLOW]

        for word, color in zip(words, colors):
            text = Text(word, font_size=96, color=color, weight=BOLD)

            # Dramatic entrance
            text.scale(0)
            self.add(text)
            self.play(
                text.animate.scale(1),
                rate_func=rate_functions.ease_out_back,
                run_time=0.4
            )
            self.wait(0.3)

            # Exit with style
            self.play(
                text.animate.shift(UP * 2).set_opacity(0),
                rate_func=rate_functions.ease_in_cubic,
                run_time=0.3
            )
            self.remove(text)

        # Final combination
        final = Text("THE FUTURE IS NOW", font_size=48, color=GOLD)
        self.play(Write(final), run_time=1)
        self.play(Indicate(final, scale_factor=1.1, color=WHITE))

Logo Reveal - Particle Assemble

from manim import *
import random

class LogoReveal(Scene):
    def construct(self):
        self.camera.background_color = "#0a0a0a"

        # Create logo text
        logo = Text("BRAND", font_size=120, color=WHITE, weight=BOLD)

        # Create particles that will form the logo
        particles = VGroup()
        for _ in range(100):
            dot = Dot(
                point=[random.uniform(-7, 7), random.uniform(-4, 4), 0],
                radius=0.05,
                color=random_color()
            )
            particles.add(dot)

        self.add(particles)

        # Swirl particles
        self.play(
            *[Rotating(p, radians=PI * 2, about_point=ORIGIN)
              for p in particles],
            run_time=1.5,
            rate_func=rate_functions.ease_in_out_sine
        )

        # Converge to logo position
        self.play(
            FadeOut(particles),
            FadeIn(logo, scale=0.5),
            run_time=0.8
        )

        # Glow effect
        glow = logo.copy().set_color(BLUE).set_opacity(0.5)
        self.play(
            glow.animate.scale(1.2).set_opacity(0),
            run_time=0.5
        )
        self.remove(glow)

        self.wait()

Title Sequence - Slide & Stack

from manim import *

class TitleSequence(Scene):
    def construct(self):
        self.camera.background_color = "#16213e"

        # Main title
        title = Text("EPISODE ONE", font_size=72, color=WHITE)
        subtitle = Text("The Beginning", font_size=36, color=BLUE_C)

        # Slide in from sides
        title.shift(LEFT * 10)
        subtitle.shift(RIGHT * 10)

        self.add(title, subtitle)

        self.play(
            title.animate.move_to(UP * 0.5),
            subtitle.animate.move_to(DOWN * 0.5),
            run_time=0.8,
            rate_func=rate_functions.ease_out_cubic
        )

        # Add decorative lines
        line_left = Line(LEFT * 3, LEFT * 0.5, color=GOLD, stroke_width=2)
        line_right = Line(RIGHT * 0.5, RIGHT * 3, color=GOLD, stroke_width=2)

        lines = VGroup(line_left, line_right).next_to(title, UP, buff=0.3)

        self.play(
            Create(line_left),
            Create(line_right),
            run_time=0.5
        )

        # Fade all together
        self.wait(2)
        self.play(
            FadeOut(VGroup(title, subtitle, lines), shift=UP),
            run_time=0.6
        )

Text Glitch Effect

from manim import *

class GlitchText(Scene):
    def construct(self):
        self.camera.background_color = "#000000"

        text = Text("GLITCH", font_size=96, color=WHITE, weight=BOLD)

        # Create glitch copies
        red_copy = text.copy().set_color(RED).shift(LEFT * 0.05 + UP * 0.02)
        blue_copy = text.copy().set_color(BLUE).shift(RIGHT * 0.05 + DOWN * 0.02)

        self.add(red_copy, blue_copy, text)

        # Glitch animation
        for _ in range(5):
            # Random offset
            self.play(
                red_copy.animate.shift(RIGHT * 0.1),
                blue_copy.animate.shift(LEFT * 0.1),
                run_time=0.05
            )
            self.play(
                red_copy.animate.shift(LEFT * 0.1),
                blue_copy.animate.shift(RIGHT * 0.1),
                run_time=0.05
            )

        # Settle
        self.play(
            red_copy.animate.move_to(text.get_center()),
            blue_copy.animate.move_to(text.get_center()),
            run_time=0.2
        )

        self.remove(red_copy, blue_copy)
        self.wait()

Counter Animation

from manim import *

class CounterAnimation(Scene):
    def construct(self):
        self.camera.background_color = "#1a1a2e"

        # Value tracker
        counter = ValueTracker(0)

        # Dynamic text
        number = always_redraw(lambda: Text(
            f"{int(counter.get_value()):,}",
            font_size=120,
            color=WHITE,
            weight=BOLD
        ))

        label = Text("SUBSCRIBERS", font_size=32, color=BLUE_C)
        label.next_to(number, DOWN, buff=0.5)

        self.add(number, label)

        # Animate count
        self.play(
            counter.animate.set_value(1000000),
            run_time=3,
            rate_func=rate_functions.ease_out_cubic
        )

        # Celebration effect
        self.play(
            Indicate(number, scale_factor=1.2, color=GOLD),
            run_time=0.5
        )

Easing Functions Reference

EffectRate FunctionUse Case
SmoothsmoothGeneral purpose
Dramatic entranceease_out_backPop-in effects
Gentle exitease_in_cubicFade outs
Bouncyease_out_bouncePlayful motion
Snappyease_out_expoQuick, impactful
Naturalease_in_out_sineOrganic movement
LinearlinearConstant speed

Color Palettes

Neon Cyberpunk

NEON_PINK = "#ff00ff"
NEON_BLUE = "#00ffff"
NEON_GREEN = "#00ff00"
DARK_BG = "#0a0a0a"

Corporate Professional

CORP_BLUE = "#0066cc"
CORP_GRAY = "#333333"
CORP_WHITE = "#ffffff"
CORP_ACCENT = "#ff6600"

Minimal Modern

MIN_BLACK = "#1a1a1a"
MIN_WHITE = "#f5f5f5"
MIN_GRAY = "#888888"
MIN_ACCENT = "#3366ff"

Best Practices

  1. Less is more - Restraint makes key moments impactful
  2. Timing is everything - Wrong timing kills good animation
  3. Consistency builds trust - Same style throughout
  4. Sound design matters - Design with audio in mind
  5. Test on target platform - Different devices, different experience

When not to use it

  • Educational instructional videos
  • Static graphical layout design

Prerequisites

manimpython

Limitations

  • Requires rendering time for complex scenes
  • Limited to programmatic motion capabilities
  • Steep learning curve for complex custom shapes

How it compares

It creates motion paths algorithmically rather than relying on GUI-based keyframe animation tools.

Compared to similar skills

motion-graphics side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
motion-graphics (this skill)316moNo flagsIntermediate
game-art236moNo flagsBeginner
scroll-experience1016moNo flagsIntermediate
theme-factory613moNo flagsBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

game-art

davila7

Game art principles. Visual style selection, asset pipeline, animation workflow.

2383

scroll-experience

davila7

Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences. Like NY Times interactives, Apple product pages, and award-winning web experiences. Makes websites feel like experiences, not just pages. Use when: scroll animation, parallax, scroll storytelling, interactive story, cinematic website.

101142

theme-factory

anthropics

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

61161

brand-guidelines

anthropics

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

9140

canvas-design

anthropics

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

26112

interactive-portfolio

davila7

Expert in building portfolios that actually land jobs and clients - not just showing work, but creating memorable experiences. Covers developer portfolios, designer portfolios, creative portfolios, and portfolios that convert visitors into opportunities. Use when: portfolio, personal website, showcase work, developer portfolio, designer portfolio.

3645

Search skills

Search the agent skills registry