What the GIFvideo → gif, the way creatives need it
field guide

How to Put a GIF in Figma to Show Motion in a Static File

Figma frames are frozen. A loading spinner, a button micro-interaction, a hover state: none of it moves in a flat mockup. Drop in a GIF and the motion plays right on the canvas, so the people reviewing your work see the thing actually move instead of imagining it.

Drop a video, get a GIF free · frame-perfect · nothing leaves your browser Open the converter →

Why a GIF is the cheapest way to show motion in Figma

Figma is brilliant at static. It is not built to be a motion tool. You can fake a transition with Smart Animate inside a prototype, but that lives behind a Play button, in a separate window, and it breaks the second your trigger setup is slightly off. Meanwhile the person reviewing the file is looking at the canvas, where everything is a still image and your carefully designed spinner just sits there, not spinning.

A GIF in Figma, placed as an image fill, plays directly on the canvas. No prototype, no Play button, no presentation mode required. A reviewer scrolls past your frame and the loader is looping, the toast is sliding in, the toggle is flipping. That is the whole pitch: motion that shows up where people are already looking, in a format Figma renders natively, with zero setup on the viewer's end.

You feed the tool a screen recording or any video clip and it gives you the GIF. It does not record your screen for you, so capture the motion first (QuickTime on a Mac, the Xbox Game Bar on Windows, or export a frame range straight out of After Effects or Principle). Then turn that clip into a GIF with a screen recording to GIF converter and bring it into Figma.

How Figma actually handles an animated GIF

This is the part people get wrong, so it is worth being precise. Figma treats a GIF as an image, and an animated GIF animates in most places but not all of them:

One catch worth knowing: Figma loops the GIF on its own clock, so two copies of the same loader on one page will drift out of sync over time. Usually nobody notices. If it bugs you, keep one instance per artboard.

The five-minute workflow

Say you have a recording of a button's loading-and-success animation and you want it living in your component spec. Here is the path from clip to canvas:

  1. Capture the motion. Record the interaction, or export a short clip from your motion tool. Grab a beat before and a beat after the moment, so you have room to trim cleanly.
  2. Convert it. Open the converter and drop the clip in. The whole thing runs in your browser tab, so a recording of an unreleased screen never leaves your machine.
  3. Crop to the component. Lock a ratio (1:1 for a button or icon, 4:3 or 9:16 for a full mobile flow) so the GIF drops into your frame at clean proportions instead of arriving as some odd dimension you have to fight.
  4. Trim to the loop. Use the frame-accurate timeline to set in and out points, nudging single frames with the arrow keys, so the motion starts and ends on a stable state and the loop does not visibly snap.
  5. Tune size and palette. Drop the frame rate to 10 to 15 fps and watch the live size estimate. UI motion does not need 30 fps, and your .fig file will thank you.
  6. Drag it into Figma. Drop the exported GIF straight onto your frame. It lands as a fill and starts looping. Position it inside your component documentation and you are done.

Keep your .fig file from getting fat

Every GIF you place is stored in the file, and GIFs are heavy compared to the PNGs and vectors Figma usually carries. Stack a dozen unoptimized loaders into one document and you will feel the editor get sticky, especially for teammates on slower machines or weaker connections. A few habits keep it tame:

If you need the crispest possible result for a hero animation on a portfolio frame, the trade-offs flip toward quality: hold the frame rate higher, keep the full 256-color palette, and let the live size estimate tell you what that costs.

Beyond mockups: FigJam, prototypes, and handoff

The same GIF earns its keep in more than one Figma surface:

And because the conversion happens entirely in your browser tab without uploading, recordings of internal tools, unreleased flows, or anything under NDA stay on your machine. No vendor bucket, no signup, no watermark stamped across your design. For a wider walkthrough of placing GIFs in docs and decks, the Notion guide covers the same idea on a different canvas.

Got a clip? Make the GIF.

Free, frame-perfect, and it never leaves your browser. Drop in a recording and have a Figma-ready loop in minutes.

Open the converter

Questions, answered

Do animated GIFs actually play on the Figma canvas?
Yes. Figma renders an animated GIF as a looping image directly on the canvas, no prototype or Play button needed. It also keeps looping in Present mode. The one exception is when you zoom far out: Figma pauses GIF rendering to save memory, and it resumes when you zoom back in. Exports to PNG and Dev Mode show a single static frame, which is expected.
How do I add a GIF to a Figma frame?
Make the GIF first by dropping a video clip into the converter, then drag the exported GIF file onto your Figma frame. It lands as an image fill on a new rectangle and starts animating. You can also paste it into an existing shape's fill. Both approaches loop on the canvas.
Will a GIF make my Figma file slow or huge?
It can if you are careless, because every GIF is stored in the file and GIFs are heavier than PNGs. Keep them light: crop tight to the component before scaling, set 10 to 15 fps, and drop the color count to 64 to 128. The converter shows a live size estimate so you can land most UI loops under a few hundred KB before placing them.
Can I use a GIF instead of building a Smart Animate prototype?
Often, yes. If you just need to show a micro-interaction the way it really moves, a GIF placed in the frame plays on the canvas and in Present mode with zero wiring. Smart Animate is the better choice when you need the motion to respond to clicks or branch between screens. For a fixed loop like a loader or a toast, a GIF is faster and harder to break.
Is my screen recording uploaded when I make the GIF?
No. The converter runs entirely in your browser tab, so the video is processed on your machine and never sent to a server. That matters for recordings of unreleased screens, internal tools, or anything under NDA: the footage only ever lives locally and in the GIF you choose to place. No account, no watermark, no file sitting on a vendor's bucket.
What frame rate and size should a UI GIF be for Figma?
For interface motion, 10 to 15 fps looks smooth and keeps the file small. Crop to just the moving component, use 64 to 128 colors for flat UI (more only if there is a gradient or photo), and aim to keep each loop in the low hundreds of KB. Save higher fps and 256 colors for fast, fluid, or photographic motion.