explaingit

airbnb/lottie-web

31,850JavaScriptAudience · developerComplexity · 2/5QuietLicenseSetup · easy

TLDR

Play designer-made animations from Adobe After Effects directly in web pages and apps without recoding them by hand.

Mindmap

mindmap
  root((repo))
    What it does
      Runs After Effects animations
      No hand-coding needed
      Designer to developer pipeline
    How it works
      Designer exports JSON
      Library parses and renders
      Multiple render backends
    Use cases
      Loading spinners
      Onboarding flows
      Button feedback effects
    Control features
      Play pause stop
      Speed and direction
      Frame jumping
    Tech stack
      Plain JavaScript
      SVG canvas HTML
      npm distribution

Things people build with this

USE CASE 1

Build loading spinners and progress animations that designers created in After Effects.

USE CASE 2

Create polished onboarding flows with illustrated animations without rebuilding them in code.

USE CASE 3

Add button hover and click feedback animations that designers designed visually.

USE CASE 4

Display explainer animations and marketing illustrations on landing pages with exact designer intent.

Tech stack

JavaScriptSVGCanvasHTMLAdobe After EffectsBodymovin plugin

Getting it running

Difficulty · easy Time to first run · 5min
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Lottie is a library that lets you run complex animations created by designers in Adobe After Effects directly inside a web page, Android app, iOS app, or React Native app, without needing to rebuild those animations in code. It solves the longstanding gap between what a designer can create and what an engineer can realistically implement by hand. The process works in two steps. First, a designer installs the Bodymovin plugin into Adobe After Effects and uses it to export their finished animation as a compact JSON file. Second, the developer loads that JSON file using Lottie's JavaScript library, which parses the file and plays it using either an SVG renderer, a canvas renderer, or an HTML renderer depending on the use case. The result is that the exact animation the designer built, with all its curves, fades, and motions, plays natively in the browser or app. Once an animation is loaded you can control it programmatically: play, pause, stop, change speed, play in reverse, jump to a specific frame, or loop a particular segment. Multiple animations can run independently on the same page. You would use Lottie when you want high-quality, designer-made animations such as loading spinners, onboarding illustrations, button feedback effects, or explainer animations that would take days to recreate in CSS or Canvas by hand. It is especially popular in apps where visual polish matters, like mobile onboarding flows or marketing landing pages. The tech stack for the web version is plain JavaScript with no required framework, distributed via npm as lottie-web. It runs in all modern browsers and supports multiple rendering backends. The designer-side tooling is the Bodymovin plugin for Adobe After Effects.

Copy-paste prompts

Prompt 1
How do I export an animation from Adobe After Effects using Bodymovin and load it with lottie-web?
Prompt 2
Show me how to play, pause, and control playback speed of a Lottie animation in JavaScript.
Prompt 3
How do I render multiple independent Lottie animations on the same page without them interfering?
Prompt 4
What's the difference between SVG, canvas, and HTML rendering in lottie-web and when should I use each?
Prompt 5
How do I loop a specific segment of a Lottie animation or jump to a particular frame?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.