PTENES
MODULE 1.2

✨ Why the skill changes everything

Without the skill, Claude generates generic React code with clumsy timing. With it, you get real spring physics, precise sequencing and transitions that look professional—without changing your prompt.

6
Topics
25
Minutes
Basic
Level
Concept
Type
live demo without skill vs. with skill
No skill
😬
Card with linear jank
abrupt entrance · no overshoot
With the skill
✨
Card with a smooth spring
overshoot → settle · natural

Same prompt. The skill injects spring physics; without it, Claude uses linear by default.

1

😩 Without a skill: generic and shaky

When you ask Claude for an animation without any Remotion context, it come up with. The code compiles, but the result looks like a first attempt at a CSS animation—linear timing, elements in the wrong positions, with no sense of frame rate or sequence.

✗ Output without the skill

  • ✗Uses setTimeout or pure CSS—there is no useCurrentFrame.
  • ✗Linear timing: everything enters at the same time and at the same speed.
  • ✗Elements positioned with absolute and magic numbers that are never quite right.
  • ✗No understanding of FPS or duration in frames—sometimes it doesn’t even render.

✓ What it should be

  • ✓Each prop changes based on frame — deterministic and predictable.
  • ✓Spring physics with spring() from the Remotion API.
  • ✓Sequencing via delay + from per element.
// Without the skill — what Claude generates
const opacity = frame / 30; // no spring, pure linear
style={{ opacity, transform: `translateY(${frame > 30 ? 0 : 40}px)` }}
// With the skill — what you want
const s = spring({ frame, fps, config: { damping: 14 } });
style={{ opacity: s, transform: `scale(${s})` }}
Problem
Linear timing
Cause
No Remotion context
Symptom
Looks like a first attempt
Fix
Load the skill
2

✅ With the skill: clean, correct spring, precise sequences

With the skill active, Claude already knows that every animation is a function of the frame, which spring() is the right helper for natural transitions, and duration is defined in frames (not in CSS seconds). The difference isn't in your prompt — it's in the context the skill injects.

💡

Why spring rather than easing?

Easing describes how go from A to B in a fixed amount of time. Spring describes physics: mass, stiffness, and damping—the result is organic and interruptible. Remotion exposes spring() which calculates this frame by frame.

✓ Anatomy of a good animation

  • ✓Smooth spring — damping: 14 for a subtle, natural overshoot.
  • ✓Delay per element — each piece comes in at the right moment, not all at once.
  • ✓Composite transitions — opacity + scale + translateY together, not separately.

📐 spring() Parameters

damping: 14 // ↑ = less overshoot
stiffness: 100// ↑ = faster
mass: 1 // ↑ = heavier
from: 0 // initial value
to: 1 // final value
API
spring()
Entrance
frame + fps + config
Output
0 → 1 with physics
Result
Looks professional
3

🌊 Spring physics: overshoot and natural damping

The secret to organic movement is the overshoot — the element goes a little past its destination before settling. It’s not a mistake: it’s what makes motion feel physical. The damping controls how much bounce there is.

spring (with overshoot) linear overshoot frame 0 frame N value

The spring curve slightly overshoots the target value and settles—that’s what creates a natural feel.

💡

Practical damping rule

damping 8–12 → lively bounce (good for icons, badges). damping 14–18 → smooth settle (good for cards and text). damping 25+ → no overshoot (good for critical layouts).

Overshoot
Goes beyond and comes back
Damping
Controls bounce
Stiffness
Controls speed
Result
Organic and physical
4

⏱️ Sequencing: order over time, not all at once

When everything animates at once, the eye doesn't know where to look. The stagger is the technique of delaying each element a little — attention flows naturally from top to bottom, left to right, from the main element to the secondary one.

live demo stagger · delays 0 / 0.3s / 0.6s

Each bar appears with a 0.3 s delay — the reading flow moves from top to bottom.

// Stagger in Remotion — delay by index
items.map((item, i) => {
const s = spring({ frame: frame - i * 8, fps });
return <Item style={{ opacity: s, translateY: (1-s)*20 }} />;
})
1

Identify the visual hierarchy

What goes in first should be the most important—title, hero, CTA.

2

Apply delay by index

Each element receives frame - i * offset — simple and scalable.

3

Store the offset as a constant

8 frames (at 30fps ≈ 266ms) is a good starting point. Adjust in the conversation.

Stagger
Delay by index
Pacing
8–12 frames
Flow
From important → supporting
Readability
The eye follows the order
5

🥇 Golden rule: start simple

Text that appears with a typing effect or fade is clean and effective. Twenty elements animating together is a mess. The golden rule: fewer animated elements = more impact per element. The skill helps you resist the temptation to animate everything.

✗ Common pitfalls

  • ✗Animating every word individually creates visual anxiety.
  • ✗Use rotation + scale + translation all at once without a purpose.
  • ✗Background particle effects that compete with the content.
  • ✗Animations that never stop — they distract from the main message.

✓ Principles that work

  • ✓One main element animates; the rest fade in gently.
  • ✓Text with a typewriter effect or fade-up is always legible and elegant.
  • ✓Use motion to guide the eye, not to impress.
💡

Musician test

An experienced musician knows that silence is just as important as the notes. An experienced motion designer knows that what no what animates is just as important as what animates. Ask: "Does this animation serve the message, or is it decoration?"

Less is more
Universal rule
Focus
1 main element
Readability
Text before effects
Purpose
Serves the message
6

🔁 Iterate from There

The skill isn’t a magic button—it’s a iteration accelerator. You start with something that works (not perfectly), validate it in the preview, ask for adjustments in the same conversation, and reach a professional result in a few turns.

1

Generate the skeleton with the default spring

First result: it works, but it isn’t perfect. That’s intentional — a foundation for iteration.

2

Adjust damping and stiffness through conversation

"It's too bouncy; reduce the bounce" — Claude adjusts the parameters without rewriting everything.

3

Refine the sequencing

"The text comes in too early; delay it by 12 frames" — the conversation builds context, and edits are made surgically.

4

Render and review in the player

Remotion Studio plays in real time—you see the result as you talk, not after rendering.

// Typical iteration prompt
"The card looks great, but the bounce seems exaggerated.
Increase the damping to 18 and reduce the stagger
for 6 frames between items."
Turn 1
Working skeleton
Turn 2
Timing adjustment
Turn 3
Fine-tuning
Turn 4
Polished result

📋 Module Summary

✓
No skill → generic code with linear timing and clumsy positioning.
✓
With the skill → spring physics, precise staggering, and composed transitions.
✓
Overshoot → what separates physical motion from linear motion.
✓
Stagger → temporal order that guides the viewer's eye.
✓
Less is more → 1 strong element beats 20 restless elements.
✓
Iteration → the skill speeds up the sketch → preview → refine cycle.