Examples
Basics
Copy-ready starting points: play, size, drive, place.
Every example is complete: take the code under it whole.
Play a file
import { Lottie } from "lottie-react";export function FirstAnimation() { return <Lottie src="/anim.json" autoplay loop />;}Size it
import { Lottie } from "lottie-react";export function Sizing() { return ( <Lottie src="/anim.json" autoplay loop style={{ width: 160, height: 96 }} /> );}Drive it from state
import { Lottie } from "lottie-react";import { useState } from "react";export function SpeedAndDirection() { const [speed, setSpeed] = useState(1); const [reversed, setReversed] = useState(false); return ( <> <Lottie src="/anim.json" autoplay loop speed={speed} direction={reversed ? "reverse" : "forward"} /> <div> <button type="button" onClick={() => setSpeed((current) => (current >= 4 ? 0.5 : current * 2)) } > speed {speed}x </button> <button type="button" onClick={() => setReversed((current) => !current)} > {reversed ? "reverse" : "forward"} </button> </div> </> );}Own the layout
The logo, placed by you
import { Lottie, LottieDisplay } from "lottie-react";export function YourOwnLayout() { return ( <Lottie src="/anim.json" autoplay loop> <p>The logo, placed by you</p> <LottieDisplay /> </Lottie> );}Make it a button
import { Lottie, type LottieHandle } from "lottie-react";import { useRef } from "react";export function AsButton() { const handle = useRef<LottieHandle>(null); return ( <Lottie as="button" src="/anim.json" lottieRef={handle} onClick={() => handle.current?.play()} aria-label="Play the logo" /> );}