PTENES
MODULE 3.4

🏦 Banking Onboarding (Lottie)

Fintech needs four mobile onboarding micro-animations: create an account, deposit, transfer, confirm. Small scope, fast, extremely reliable — Lottie is the right choice when the animation goes directly into the production app.

6
Sections
~45
min
Lottie
Lib
4
Scenes
1

🏦 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…

Animation goes into a production mobile app
Limited scope: icons, loaders, confirmations
Designer delivers After Effects — exports with Bodymovin

✗ Lottie isn’t the best choice when…

Long scenes with complex storytelling (→ GSAP)
Dynamic data visualization (→ D3)
3D object with a real camera (→ Three.js)
JSON
~50KB per animation
Cross-platform
web + native
Vector
infinite scaling
Bodymovin
export from AE
2

📱 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.

onboarding sequence — live demo
🏦
NoteBank
Welcome!
🪙
+R$50
Deposit
A
B
Transferring…
Confirmed!
1 App launch
2 Coin drops → deposit
3 Arrow travels A→B
4 Checkmark draws itself

💡 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.

Scene 1
logo reveal 1.5s
Scenes 2–3
actions 1.2s each
Scene 4
success 2s
Total
~6s per loop
3

🎛️ 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().

useCurrentFrame() Remotion frame frame → progress frame / fps = seconds goToAndStop() forces the Lottie frame Rendered SVG deterministic ✓ Remotion frame → Lottie progress → identical SVG on every render
frame synchronization — default
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]);
goToAndStop
manual control
useEffect
fires on every frame
ms: s * 1000
Lottie uses ms
Deterministic
preview = final MP4
4

✅ 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

Circle draws first — sets up the checkmark
Bright green (#22c55e) — the universal color for success
Slight bounce at the end—a sense of solidity

✗ Common mistakes

Checkmark appears instantly — no satisfaction
Muted green or gray — doesn’t read as “success”
Too much bounce — feels unstable, not confident

💡 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.

dasharray
circle perimeter
dashoffset
perimeter → 0
Green #22c55e
universal success
10% bounce
scale 1 → 1.12 → 1
5

💬 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.

prompt — copy and use
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.

"clean"
flat design
"minimal"
without visual noise
"smooth"
smooth easing
4 scenes
<Series> sequence
6

🚀 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

1

Generate the Lottie JSONs

Claude Code generates 4 Lottie animations as JSON. Save as animation1.json, animation2.json, etc. Validate on LottieFiles.com.

2

Build the Remotion composition

Use <Series> to sequence the 4 scenes. Set each one's duration with durationInFrames. Sync Lottie to the frame.

3

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.

4

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
React Native
same JSON
App Store
app preview
Instagram
story 9:16
Zero redesign
proto → prod

📋 Module 3.4 Summary

← Motorcycle Commercial Next track: Production →