Simple Lottie Animation - Lottie Typing CST Test
Loading…
Simple Lottie Animation — Lottie Code
A basic Lottie-web example that loads and plays a JSON animation in a web page.
# lottie/demo/index.html
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.9.6/lottie.min.js"></script>
</head>
<body>
<div id="animation" style="width:200px;height:200px;"></div>
<script>
const animation = lottie.loadAnimation({
targets: document.getElementById('animation'),
path: 'data/animation.json',
renderer: 'svg',
loop: true,
autoplay: true
});
</script>
</body>
</html>Lottie Language Guide
Lottie is an open-source animation library that renders Adobe After Effects animations in real-time on web, mobile, and desktop platforms. It allows designers and developers to ship high-quality animations as JSON files exported via Bodymovin.
Primary Use Cases
- ▸App onboarding animations
- ▸Micro-interactions (buttons, loaders, checkmarks)
- ▸Marketing website animations
- ▸Animated illustrations and icons
- ▸Interactive storytelling and tutorials
Notable Features
- ▸Lightweight JSON animation files
- ▸Cross-platform support (Web, iOS, Android, Flutter)
- ▸High-quality vector animations without GIFs or videos
- ▸Supports dynamic property control via code
- ▸Looping, speed control, and playback direction
Origin & Creator
Lottie was developed by Airbnb Design in 2017 to bring high-quality After Effects animations to mobile and web in a lightweight and scalable way.
Industrial Note
Lottie is widely used in mobile apps, marketing sites, onboarding flows, UI animations, and anywhere designers need scalable, high-fidelity animations without heavy assets.
Quick Explain
- ▸Lottie uses JSON-based animation files exported from After Effects.
- ▸It renders animations natively using SVG, Canvas, or WebGL depending on the platform.
- ▸Supports rich motion graphics without large video files or GIFs.
- ▸Integrates easily with web (React, Vue, plain JS), iOS, Android, and Flutter apps.
- ▸Enables interactive animations controlled via code (play, pause, loop, speed, and dynamic properties).
Core Features
- ▸Bodymovin JSON export from After Effects
- ▸Renderers for SVG, Canvas, WebGL, and native mobile layers
- ▸Animation controls: play, pause, stop, loop, speed
- ▸Dynamic property overrides at runtime
- ▸Framework integrations (React, Vue, Flutter, iOS, Android)
Learning Path
- ▸Learn After Effects basics
- ▸Export animation via Bodymovin plugin
- ▸Load JSON into web or mobile project using Lottie
- ▸Control playback, speed, and looping
- ▸Implement interactive animations via dynamic properties
Practical Examples
- ▸Animated loader using Lottie JSON
- ▸Button click feedback animation
- ▸Splash screen animation in Flutter/iOS/Android
- ▸Interactive infographic with dynamic Lottie properties
- ▸Onboarding screens with sequential animations
Comparisons
- ▸Lottie vs GIF: higher quality, smaller file size, scalable
- ▸Lottie vs CSS Animations: richer AE animation support
- ▸Lottie vs Canvas/WebGL: easier integration for designers
- ▸Lottie vs AnimXYZ: JSON-based vs CSS utility classes
- ▸Lottie vs video: interactive and dynamic control vs static playback
Strengths
- ▸Reduces app bundle size compared to GIF/video animations
- ▸Scalable vector-based animations
- ▸Interactive animations controllable via code
- ▸Seamless designer-to-developer workflow
- ▸High-quality playback across multiple platforms
Limitations
- ▸Requires After Effects for creation
- ▸Some complex AE effects may not export properly
- ▸JSON files can become large for very complex animations
- ▸Limited real-time physics or dynamic simulations
- ▸Editing requires re-export from After Effects
When NOT to Use
- ▸Simple hover or micro animations -> CSS may suffice
- ▸Physics-based real-time simulations -> JS/Canvas needed
- ▸Highly interactive game graphics -> WebGL preferred
- ▸Very complex multi-layer AE animations causing performance issues
- ▸Animations requiring dynamic generative content not supported by AE JSON
Cheat Sheet
- ▸lottie.loadAnimation({container, path, renderer, loop, autoplay})
- ▸animation.play()
- ▸animation.pause()
- ▸animation.stop()
- ▸animation.setSpeed(speed)
FAQ
- ▸Can I use Lottie without After Effects? -> No, AE + Bodymovin required for export
- ▸Is Lottie cross-platform? -> Yes, web and mobile SDKs available
- ▸Are JSON files lightweight? -> Usually smaller than GIF/video
- ▸Can I control animation dynamically? -> Yes, via JS/SDK API
- ▸Does Lottie support interactivity? -> Yes, for property overrides and triggers
30-Day Skill Plan
- ▸Week 1: simple animation playback in web/mobile
- ▸Week 2: learn JSON structure and property overrides
- ▸Week 3: integrate Lottie into app components
- ▸Week 4: create interactive animations triggered by user input
- ▸Week 5: optimize animations for performance and bundle size
Final Summary
- ▸Lottie bridges designers and developers for high-quality vector animations.
- ▸Supports scalable, interactive animations across web and mobile.
- ▸JSON-based workflow reduces asset sizes and improves maintainability.
- ▸Enables interactive UI/UX animations controlled via code.
- ▸Essential tool for modern app onboarding, micro-interactions, and animated storytelling.
Project Structure
- ▸index.html / App.vue / main.dart - animation container
- ▸animations/ - JSON files exported from After Effects
- ▸components/ - reusable animation wrappers
- ▸assets/ - images or fonts referenced in animation
- ▸scripts/ - optional code to control playback
Monetization
- ▸Premium app onboarding animations
- ▸Animated marketing and promotional content
- ▸SaaS products with interactive UI animations
- ▸In-app animated tutorials and guides
- ▸Licensing of animation libraries or templates
Productivity Tips
- ▸Reuse animation JSON across multiple components
- ▸Optimize After Effects layers before export
- ▸Use Bodymovin previews to check fidelity
- ▸Control interactivity via wrapper functions
- ▸Lazy load animations for better performance
Basic Concepts
- ▸Animation JSON -> exported file with AE animation data
- ▸Renderer -> renders animation on platform (SVG/Canvas/WebGL)
- ▸Playback controls -> play, pause, stop, loop
- ▸Dynamic properties -> color, size, position can be changed at runtime
- ▸Integration -> via JS, React, Vue, iOS, Android, or Flutter