🏦 Scenario: onboarding that builds user trust
NuBank, Inter, C6—all modern fintechs use micro-animations during onboarding to reduce friction and build trust. The user doesn’t read the instructions; they watch the animation and you’ll know what to do. Lottie delivers this experience in kilobytes.
Why Lottie for this project?
Lottie is JSON — a ~50KB file that runs in React Native, web, and iOS/Android without recompilation. For app micro-interactions, that beats any programmatic lib in implementation speed e cross-platform fidelity. GSAP, D3, or Three.js here would be overkill.
✓ Lottie is ideal when…
✗ Lottie isn’t the best choice when…
📱 The 4 Scenes in Sequence
Each scene is an independent micro-animation. In Remotion, you put all 4 in <Series> and each one plays at just the right moment — like real onboarding slides.
💡 Duration of each scene
Scene 1 (opening): 1.5s. Scenes 2 and 3 (actions): 1.2s each. Scene 4 (confirmation): 2s — give the user time to feel the success. Total: ~6s per onboarding loop. Any longer and the user skips it.
🎛️ Sync Lottie with Remotion
The central technical challenge: the Lottie JSON animation has its own timing system. For the Remotion render to be deterministic, you need to force Lottie to advance frame by frame along with the useCurrentFrame().
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
// Força o Lottie para o frame exato
useEffect(() => {
if (lottieRef.current) {
const seconds = frame / fps;
lottieRef.current.goToAndStop(seconds * 1000, false);
}
}, [frame, fps]);
✅ The Checkmark Scene: the moment of relief
The success checkmark is the most important onboarding scene. It’s where the user decides whether to trust the app. The circle draws itself first via stroke-dashoffset, then the check reveals what’s inside, and a slight final bounce seals the confirmation.
✓ What makes a checkmark effective
✗ Common mistakes
💡 stroke-dashoffset: the progressive drawing trick
Configure stroke-dasharray equal to the circle's perimeter. Animate stroke-dashoffset from the perimeter to zero — this progressively "draws" the stroke. It's the most commonly used technique in UX confirmation animations.
💬 The Complete Prompt
This is the exact prompt you give Claude Code (with the Remotion skill active). Each numbered scene maps to an independent Lottie micro-animation — Claude generates all 4 compositions in sequence.
Create a clean onboarding sequence. Scene 1: User opens mobile banking app. Scene 2: Money is deposited. Scene 3: Transfer is sent. Scene 4: Success checkmark appears. Use minimal design and smooth motion.
💡 "Minimal design" is the Lottie keyword
Minimalist design is Lottie's native style — flat icons, clean lines, a limited palette. “Clean” and “minimal” activate this mode in Claude and keep it from trying to create complex animations that don't translate well to Lottie JSON.
🚀 Deliverable: from Remotion to the Production App
Remotion generates the onboarding MP4 for presentations and marketing. The same Lottie JSONs are integrated directly into the production app’s React Native code— zero rework between prototype and final product.
Build order: from animation to app
Generate the Lottie JSONs
Claude Code generates 4 Lottie animations as JSON. Save as animation1.json, animation2.json, etc. Validate on LottieFiles.com.
Build the Remotion composition
Use <Series> to sequence the 4 scenes. Set each one's duration with durationInFrames. Sync Lottie to the frame.
Render an MP4 for marketing
Render at 1080×1920 (portrait) for Instagram Stories and App Store preview. The video is the same onboarding the user will see in the app.
Integrating JSON files in React Native
Copy the same animation.json files to the RN project. Use lottie-react-native with AnimatedLottieView. Zero redesign.
What you learned in this project
- ▸ Micro-interactions and UX animation for financial apps
- ▸ Lottie synchronization with Remotion's frame system
- ▸ stroke-dashoffset for "progressive drawing" animations
- ▸ From prototype to production app without rework
- ▸ Lottie as a bridge between design and engineering
📋 Module 3.4 Summary
- ✓Lottie = lightweight JSON, cross-platform, ideal for app micro-interactions
- ✓Syncing via goToAndStop() ensures deterministic rendering in Remotion
- ✓stroke-dashoffset is the standard technique for checkmarks and loading rings
- ✓The same JSONs go from Remotion to React Native unchanged
- ✓Deliverable: production-ready animations for a fintech app
You completed Track 3. Next step:
🎬 Track 4 — Production: rendering, deployment, and advanced workflows →