LottieFiles
LottieFiles

+

Figma

Figma to Lottie:
Official Export Guide

Figma to Lottie:
Official Export Guide

Figma to Lottie:
Official Export Guide

Welcome to the Figma to Lottie Export Guide! This guide will help you create smooth animations using LottieFiles for Figma while avoiding common render failures. Whether you're new to Lottie or troubleshooting an issue, you'll find everything you need to export your Figma designs into Lottie animations with ease.

Welcome to the Figma to Lottie Export Guide! This guide will help you create smooth animations using LottieFiles for Figma while avoiding common render failures. Whether you're new to Lottie or troubleshooting an issue, you'll find everything you need to export your Figma designs into Lottie animations with ease.

Welcome to the Figma to Lottie Export Guide! This guide will help you create smooth animations using LottieFiles for Figma while avoiding common render failures. Whether you're new to Lottie or troubleshooting an issue, you'll find everything you need to export your Figma designs into Lottie animations with ease.

In this guide, you’ll learn:

In this guide, you’ll learn:

In this guide, you’ll learn:

How to choose the best animation method

How to choose the best animation method

How to choose the best animation method

How to export interactive prototypes as dotLottie

How to export interactive prototypes as dotLottie

How to export interactive prototypes as dotLottie

Which Figma features are supported for Lottie conversion

Which Figma features are supported for Lottie conversion

Which Figma features are supported for Lottie conversion

Best practices to prevent render issues

Best practices to prevent render issues

Best practices to prevent render issues

How to troubleshoot common problems

How to troubleshoot common problems

How to troubleshoot common problems

Choose your animation method

Choose your animation method

Figma to Lottie export can be done in three main ways: preset, frames, and prototype. Each method suits different types of projects, so let's explore them to find the best fit for your workflow.

Preset

Preset

A quick way to export a single frame with a predefined animation. Ideal for simple animations like icons, logos, or micro-interactions that don't require complex transitions.

  1. Select a frame in Figma and click "Animate"

  1. Select a frame in Figma and click "Animate"

  1. In the LottieFiles plugin, choose a preset from the dropdown.

  1. Preview & export your animation.

  • Tip: The frame must NOT be a starting point of a prototype flow. If it is, the plugin will use Prototype Flow mode instead.

Multi Frames

Multi Frames

Export multiple frames to create a sequence of animations. Best for animations with distinct steps, like a loading sequence.

Export multiple frames to create a sequence of animations. Best for animations with distinct steps, like a loading sequence.

  1. Select multiple frames you want to animate,

  1. Select multiple frames you want to animate,

  1. Click "Animate" button in the Lottiefiles plugin.

  1. Preview & export your animation.

  • Ensure all layers & names are consistent across frames to avoid render issues (see Best Practices).

  • Ensure all layers & names are consistent across frames to avoid render issues (see Best Practices).

Prototype

Prototype

Export a prototype flow to create more complex animation. Best for complex animations with various transitions, like a UI interaction.

  1. Set up a prototype flow in Figma with a flow starting point and select.

  1. Set up a prototype flow in Figma with a flow starting point and select.

  1. Click "Animate" button in the Lottiefiles plugin.

  1. Preview & export your animation.

  • Prototype flow supports multiple instances with 'after delay'.

  • Prototype flow supports multiple instances with 'after delay'.

Interactivity (State Machine)

Interactivity (State Machine)

When your prototype has interactive triggers like click, hover, press, the plugin can export it as a dotLottie with a state machine — making the animation interactive in the final product.

  1. Set up a Prototype in Figma with interactions (On click, While hovering, etc.) and select.

  1. Set up a Prototype in Figma with interactions (On click, While hovering, etc.) and select.

  1. In the Lottiefiles plugin, hit "Animate" button.

  1. Preview & Export your animation as .lottie to keep the interactivity.

  • Note: Exporting as Lottie JSON (.json) removes interactivity. Always dotLottie (.lottie) to keep your animations interactive.

  • Note: Exporting as Lottie JSON (.json) removes interactivity. Always dotLottie (.lottie) to keep your animations interactive.

Supported features

Supported features

To avoid render failures, use only the features supported by Lottiefiles for Figma. Below is a table of supported features, their status, and any limitations or tips.

Interactions

Actions

Shapes

Text

Image

Fills & Gradients

Strokes

Effects

Animations

Curves

Others

Feature

Supported

Notes/Tips

On click

Fully supported

While hovering

Fully supported

While pressing

Fully supported

Mouse enter

Fully supported

Mouse leave

Fully supported

Mouse down

Fully supported

Mouse up

Fully supported

After delay

Fully supported, Timed auto-transition

Key / Gamepad

Input is created but cannot be fired by
user interaction in the player

On drag

Transition is created but code-only —
set on_drag input via API

Best practices

Best practices

Follow these tips to ensure your Figma designs convert seamlessly into Lottie animations.

Keep layers consistent across frames

Keep layers consistent
across frames

Missing or reordered layers can cause rendering issues.

Missing or reordered layers can cause rendering issues.

  1. Make sure all layers are present in every frame, in the same order.

  1. Make sure all layers are present in every frame, in the same order.

  1. Instead of deleting layers, hide them by setting their opacity to 0.

  1. Work backward from the final frame, adjusting visibility and positions as needed.

Stick to supported Features

Using unsupported features can lead to render failures.

Using unsupported features can lead to render failures.

  1. Check the Supported Features list before designing.

  1. Check the Supported Features list before designing.

  1. Avoid using component instances or colors from external libraries, as they may not be supported.

Avoid using stacked fills & effects

Stacked effects (e.g. shadows, gradients, fills, strokes) for one object can break the animation.

Stacked effects (e.g. shadows, gradients, fills, strokes) for one object can break the animation.

  1. Apply only one option per one object across all frames.

  1. Apply only one option per one object across all frames.

  1. Avoid using angular or diamond gradients, as they’re not fully supported.

Use consistent layer name & text values

Changing text within the same layer can cause render failure.

  1. Use separate text layers for different text values and toggle their visibility.

  1. Use separate text layers for different text values and toggle their visibility.

  1. Keep layer names consistent across all frames.

Frequently asked questions

Frequently asked questions

State machine not available

Your prototype uses unsupported interactions (Back, Close overlay, Open overlay, Swap overlay, Scroll to, or URL actions). Replace them with Navigate to actions to enable interactive export.

How do I hand-off the animation?

Handoff is simple: all interactions, state machines, and theming are stored inside the .lottie file at the format level. Your developer doesn't need to rebuild any interaction logic — they just load the file (or CDN URL) into a dotLottie player and everything works. No extra configuration needed.

How to share your animation with developers:

  1. In the plugin, open the Workspace tab

  2. Click ... on your animation → "Open in browser"

  3. On the asset page, go to the Handoff tab for CDN link and embed code

  4. Share the asset page URL — your developer gets preview, download, and CDN link in one place

Tip: Share the workspace URL instead of sending a file — your developer always gets the latest version. All workspace assets are accessible from any tool (After Effects, Framer, web browser) without opening Figma. Learn more about LottieFiles DAM →

Tell your developer:

  • Use @lottiefiles/dotlottie-web or @lottiefiles/dotlottie-react — not lottie-web

  • Interactive Lottie requires a dotLottie player — standard lottie-web does not support state machines

Interactive Lottie doesn't work in my app

Make sure your developer is using @lottiefiles/dotlottie-web (not lottie-web) and that you downloaded as .lottie (not .JSON). State machines and theming are .lottie-only features.

Animation is not rendered as expected

Check our supported features list to verify all features used in your design are compatible.

Animation is not rendered as expected

You will get notified via Figma plugin with small banner UI after it is rendered. Check our supported features list to verify all features used in your design are compatible.

Animation looks different from Figma prototype

Spring-based easings (Gentle, Quick, Bouncy, Slow) are approximated to bezier curves — the motion will feel slightly different

  • Non-Smart Animate transitions (Dissolve, Push, Slide) preserve timing but the visual effect may differ

  • Overshoot bezier curves are clamped to 0–1 range

  • If it looks different in the final product, check if the product uses a different renderer (ThorVG vs SVG)

Gradient not rendered properly

A known issue with gradients is that only simple linear and radial gradients are supported. Apply gradients correctly: ensure there are no extra or duplicate gradient fills. Double-check that your gradient doesn't have incompatible stops or blending.

Click/hover doesn't work on exported Lottie

The element might be a Group — convert it to a Frame (right-click → Frame selection)

  • The element might have 0% opacity — set it to at least 1%

  • The element's layer name might not match in the exported animation

  • Only one interactive instance per frame is supported — if you have multiple, only the first works

Text changes cause render failure

Don't change text content within the same text layer across frames. Instead, create separate text layers for each text value and toggle their visibility.

Need more help?

Need more help?

Enroll in the Figma to Lottie Certification Program to level up your skills, or reach out to us at [email protected].