So i made a gif of an arrow and I'm trying to do a component with this animation on delay in figma:

enter image description here

So the first 3 frame that i made in my animation work perfectly. They stretch out and in normally like i want.

enter image description here

But those frame seem to not stretch at all. They seem to just pass one frame to an other like a power point.

enter image description here

That mean that when i look at the animation, it seem that the animation is'nt smooth at all. and i dont know how to fix that problem. My goal here is to have an animation on my web page that do like the gif once in a while without any interraction and do something else when its overed.

enter image description here(This gif is only to give you idea. The real animation dosn't do that)

If that can help you i tried to do seperate frame that are not component and do an action where they navigate to instead of changing to and it worked fine.

enter image description here

Here is what my componant animation look like: enter image description here enter image description here

  • 1
    Honestly I wouldn't use Figma for these animations, better export the SVG and use Rive or Lottielab
    – Luciano
    Commented Jun 10 at 16:18
  • I cant because my goal here is to add some interraction and some state to this element.
    – Louis
    Commented Jun 10 at 16:26
  • 1
    Are you using an updated version of figma? my animation panel looks slightly different. Also I can't reproduce your issue, my animation comes out smooth. Maybe you need to play with the timing of the delays?
    – Luciano
    Commented Jun 11 at 10:30
  • Yeah i did the button "check for update". plus i tried to play many times with the delay. it seem to only work when i do all seperate frame to do the action "navigate to" instead of "change to". My problem is i want to use many times this component but also be able to change the design without changing this element everywhere. in my project.
    – Louis
    Commented Jun 11 at 13:39

1 Answer 1


In the image below you can see my whole setup.

enter image description here

  • I made the component with one variant for each keyframe of the animation.
  • to advance the animation, I used "After delay" with 1ms (just so it's almost instant), Smart animate and adjusted the actual timing of the animation using the speed of the transition (300ms in this case)
  • the animation goes from one variant to the next and on the last variant I send it back to the first, so the animation loops without interaction
  • there's one extra variant for the "hover" state, which is not part of the idle animation.

After that I just inserted an instance in the Frame, everything seems to work as it should. (The GIF below doesn't loop due to my lazy screen capture technique, the Figma loops perfectly forever)

enter image description here

Important to remember: Smart animate looks for matching layers that exist across multiple "frames" (in this case each variant is considered an animation frame). Figma takes into account both the layer's name and where it sits within the hierarchy. So if an object has a different name in one of the "frames" or they're grouped differently the animation might not work smoothly.

  • So I did exactly what you said. Unfortunatly it doesn't work on my original project. But when i tried it on a new project, it worked. So my theory here is that i used a frame in each of my variant. maybe thats why it didnt worked.
    – Louis
    Commented Jun 11 at 20:26
  • @Louis Smart animate is finnicky with details such as layer names, check the Figma help for some extra context help.figma.com/hc/en-us/articles/…
    – Luciano
    Commented Jun 12 at 9:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.