Animated Icons in Figma — How to Use Lottie & Rive in Your Design Files
How to use animated icons in Figma — importing Lottie files, using the LottieFiles plugin, adding Rive components, and handing off to developers without losing animation data.
Figma doesn't natively play Lottie or Rive animations in prototype mode — but there are workflows that let you design with animated icons and hand off to developers cleanly. Here's what works.
Figma's native animation support (what it can and can't do)
Figma supports basic transitions and Smart Animate in prototypes. It does not natively render Lottie JSON or Rive .riv files in the editor or prototype view.
What this means in practice:
- You can't drag a
.jsonLottie file into Figma and see it play - You can't embed a
.rivfile and preview state machine interactions - Figma prototype animations are separate from Lottie/Rive implementations
For animated icons in Figma, there are two realistic workflows: the LottieFiles Figma plugin, and using static representations with annotated handoff.
Option 1: LottieFiles Figma plugin
The LottieFiles Figma plugin lets you:
- Search the LottieFiles library inside Figma
- Import a Lottie animation and render it as a preview image on the canvas
- "Bake" frames to Figma shapes (converts animation to static vectors)
Limitation: it renders a static snapshot or GIF preview — not a live animation in the Figma canvas. The icon appears on your design, but doesn't animate while you're designing.
For Unicorn Icons specifically: download the icon's GIF or WebM file, import it into Figma using the media plugin or as a fill. This gives designers a visual reference of the animation on the canvas.
Option 2: Design with static, annotate for animation
The most pragmatic workflow for most teams:
- Use the SVG for layout and spacing in Figma — position, size, and color decisions
- Use the GIF as a reference layer (locked, low opacity) to show the animation behavior
- Add annotations on the design that point to the icon name and link to the icon page on Unicorn Icons
Example annotation:
Icon: "arrow-right"
Source: unicornicons.com/icons/arrow-right
Format: Lottie JSON (.json) or Rive (.riv)
Trigger: on hover — play once, hold last frame
This gives the developer everything needed without requiring Figma to render the animation.
Option 3: Figma Variables + component library
For design systems teams who want animated icons in a component library:
- Add the static SVG as a Figma component
- Set fill colors using Figma variables (design tokens)
- When colors change in the token system, update the variable — same token drives the SVG in Figma and the Lottie JSON color param in code
Unicorn Icons' browser color editor exports icons with the chosen color baked in. If you're using design tokens, use the editor to preview the token value → export the file → commit to your icon repo.
Developer handoff for animated icons
The cleanest handoff workflow:
In the design file:
- Use SVG for accurate static representation
- Include an annotation layer naming the icon and specifying the trigger behavior
- Export the SVG from Figma as the reference
In the handoff doc (Notion/Linear/PR description):
- Link to the icon on Unicorn Icons
- Specify the trigger: hover, click, scroll into view, on mount (autoplay), or state machine input name if using Rive
- Specify the loop behavior: loop, play once, play once and hold
In the codebase:
- Download Lottie JSON or Rive from Unicorn Icons with the brand colors set
- Commit the file to
/public/icons/or a dedicated assets directory - Never load animated icons from a CDN URL — own the files
Colors in Figma vs animated icon files
Figma components use fill colors from your design tokens or color styles. When you hand off an animated icon:
- Note the hex value from Figma
- Open the icon in Unicorn Icons' browser editor
- Set the color to match
- Export — the file is now matched
This is the advantage of Unicorn Icons' color editor: it handles the "Figma says #4F46E5 but the downloaded icon is black" problem that breaks most animated icon workflows.
Prototype animation: LottieFiles Interactive prototype plugin
If you need a clickable prototype that actually plays the animation:
The LottieFiles Interactive Prototype plugin lets you attach a Lottie JSON file to a frame and play it during prototype presentation mode. It's limited to Figma presentation view (not design canvas), but it works for stakeholder demos.
To use with a Unicorn Icon: download the Lottie JSON, use the plugin to attach it to the relevant frame in your prototype.
Summary: the practical workflow
For most teams:
- Design phase: SVG in Figma components, GIF/WebM as reference layers, annotation layer specifying icon names and triggers
- Token sync: Figma color variables → browser color editor in Unicorn Icons → export with matching colors
- Handoff: link to icon page in PR description, specify trigger and loop behavior
- Implementation: developer downloads Lottie/Rive with correct colors, commits file, implements per the relevant guide
This keeps Figma as the source of truth for layout/spacing/color, and Unicorn Icons as the source of truth for animation files.
Related: How to add animated icons to Next.js → · Browse icons → · How to use Lottie in React →