--- name: lottie description: Embedding Lottie animations in Remotion. metadata: category: Animation --- # Using Lottie Animations in Remotion ## Prerequisites First, the @remotion/lottie package needs to be installed. If it is not, use the following command: ```bash npx remotion add @remotion/lottie # If project uses npm bunx remotion add @remotion/lottie # If project uses bun yarn remotion add @remotion/lottie # If project uses yarn pnpm exec remotion add @remotion/lottie # If project uses pnpm ``` ## Displaying a Lottie file To import a Lottie animation: - Fetch the Lottie asset - Wrap the loading process in `delayRender()` and `continueRender()` - Save the animation data in a state - Render the Lottie animation using the `Lottie` component from the `@remotion/lottie` package ```tsx import {Lottie, LottieAnimationData} from '@remotion/lottie'; import {useEffect, useState} from 'react'; import {cancelRender, continueRender, delayRender} from 'remotion'; export const MyAnimation = () => { const [handle] = useState(() => delayRender('Loading Lottie animation')); const [animationData, setAnimationData] = useState(null); useEffect(() => { fetch('https://assets4.lottiefiles.com/packages/lf20_zyquagfl.json') .then((data) => data.json()) .then((json) => { setAnimationData(json); continueRender(handle); }) .catch((err) => { cancelRender(err); }); }, [handle]); if (!animationData) { return null; } return ; }; ``` ## Styling and animating Lottie supports the `style` prop to allow styles and animations: ```tsx return ; ```