Guide
- How-to
- Looping
- Animation
Guide
- How-to
- Looping
- Animation
Guide
- How-to
- Looping
- Animation
How to Create Perfect Looping Animations in Framer
In this Framer tutorial, I'm showing you how to create perfectly seamless text cycle animations using the looping method. You'll learn the secret to avoiding those annoying jumps that happen when animations restart, and how to set up infinite loops that look absolutely smooth. Best part? We're doing all this without touching any code - just simple frames on a design canvas.



Table of contents
Getting started
Looping animations can add that smooth, polished vibe to your site, but only if they’re done right. In this guide, I’ll show you how to build a seamless looping text cycle in Framer. No code, no stress just some clever stacking and smart animation tricks. Let’s dive in.
Getting started
Looping animations can add that smooth, polished vibe to your site, but only if they’re done right. In this guide, I’ll show you how to build a seamless looping text cycle in Framer. No code, no stress just some clever stacking and smart animation tricks. Let’s dive in.
Getting started
Looping animations can add that smooth, polished vibe to your site, but only if they’re done right. In this guide, I’ll show you how to build a seamless looping text cycle in Framer. No code, no stress just some clever stacking and smart animation tricks. Let’s dive in.

Looping animation.

Looping animation.

Looping animation.
We’re building a looping animation where a single word or phrase cycles through different variations like:
“Dream.”
“Create.”
“Inspire.”
It’s a continuous scroll, and it looks like magic, but it’s powered by a simple trick in Framer.
Step 1: Build the base
Start by stacking your text layers:
Create a vertical text stack. Set the direction to vertical, gap to 0, and alignment to the left. Add a few text items, like Dream, Create, Lovely.
Wrap the stack in a fixed-height frame. Make sure the frame only shows one text layer’s height at a time.
Set the overflow to “Visible” for now. This helps us see what’s going on while we’re setting up.
We’re building a looping animation where a single word or phrase cycles through different variations like:
“Dream.”
“Create.”
“Inspire.”
It’s a continuous scroll, and it looks like magic, but it’s powered by a simple trick in Framer.
Step 1: Build the base
Start by stacking your text layers:
Create a vertical text stack. Set the direction to vertical, gap to 0, and alignment to the left. Add a few text items, like Dream, Create, Lovely.
Wrap the stack in a fixed-height frame. Make sure the frame only shows one text layer’s height at a time.
Set the overflow to “Visible” for now. This helps us see what’s going on while we’re setting up.
We’re building a looping animation where a single word or phrase cycles through different variations like:
“Dream.”
“Create.”
“Inspire.”
It’s a continuous scroll, and it looks like magic, but it’s powered by a simple trick in Framer.
Step 1: Build the base
Start by stacking your text layers:
Create a vertical text stack. Set the direction to vertical, gap to 0, and alignment to the left. Add a few text items, like Dream, Create, Lovely.
Wrap the stack in a fixed-height frame. Make sure the frame only shows one text layer’s height at a time.
Set the overflow to “Visible” for now. This helps us see what’s going on while we’re setting up.

Vertical text stack.

Vertical text stack.

Vertical text stack.
At this point, you’ve got a list of text layers stacked vertically, but we want only one word visible at a time, scrolling in a perfect loop.
Step 2: Stack and loop
Now, here’s where the magic happens:
Wrap your text layers in another stack. Use ⌥ + ⌘ + Enter, or right-click and add a stack.
Set the loop animation. With the outer stack selected, go to the right panel and:
Add a Loop effect
Set rotation to 0
Adjust Y offset so the text moves up over time
Set overflow to “Hidden”
Now you’ll only see one word at a time as the text scrolls up. Looks good, right? Almost. But there’s one big problem…
The awkward jump
If you preview it now, you’ll see a jarring jump when the animation resets from the last word back to the first.
Here’s why: the first and last text layers don’t match. So when it loops, there’s a sudden pop as the animation resets.
The fix:
Duplicate your first word and add it to the bottom of the stack. Now your first and last text layers are the same. Then, update the loop offset to account for the extra layer. Preview it. and boom. Seamless loop.
At this point, you’ve got a list of text layers stacked vertically, but we want only one word visible at a time, scrolling in a perfect loop.
Step 2: Stack and loop
Now, here’s where the magic happens:
Wrap your text layers in another stack. Use ⌥ + ⌘ + Enter, or right-click and add a stack.
Set the loop animation. With the outer stack selected, go to the right panel and:
Add a Loop effect
Set rotation to 0
Adjust Y offset so the text moves up over time
Set overflow to “Hidden”
Now you’ll only see one word at a time as the text scrolls up. Looks good, right? Almost. But there’s one big problem…
The awkward jump
If you preview it now, you’ll see a jarring jump when the animation resets from the last word back to the first.
Here’s why: the first and last text layers don’t match. So when it loops, there’s a sudden pop as the animation resets.
The fix:
Duplicate your first word and add it to the bottom of the stack. Now your first and last text layers are the same. Then, update the loop offset to account for the extra layer. Preview it. and boom. Seamless loop.
At this point, you’ve got a list of text layers stacked vertically, but we want only one word visible at a time, scrolling in a perfect loop.
Step 2: Stack and loop
Now, here’s where the magic happens:
Wrap your text layers in another stack. Use ⌥ + ⌘ + Enter, or right-click and add a stack.
Set the loop animation. With the outer stack selected, go to the right panel and:
Add a Loop effect
Set rotation to 0
Adjust Y offset so the text moves up over time
Set overflow to “Hidden”
Now you’ll only see one word at a time as the text scrolls up. Looks good, right? Almost. But there’s one big problem…
The awkward jump
If you preview it now, you’ll see a jarring jump when the animation resets from the last word back to the first.
Here’s why: the first and last text layers don’t match. So when it loops, there’s a sudden pop as the animation resets.
The fix:
Duplicate your first word and add it to the bottom of the stack. Now your first and last text layers are the same. Then, update the loop offset to account for the extra layer. Preview it. and boom. Seamless loop.

Adding the first word to the bottom of the stack.

Adding the first word to the bottom of the stack.

Adding the first word to the bottom of the stack.
Pro tips for perfect loops
Always duplicate the first item at the end. That’s the key to a seamless reset.
Use hidden overflow. This creates the illusion that only one word exists at a time.
Use variants for better control. Especially useful if you want to pause on each word or trigger the loop on scroll or hover.
Final thoughts
Looping animations in Framer aren’t just about movement, they’re about flow. And with this technique, you can build beautiful, infinite loops that feel effortless to the user.
I also have an in-depth tutorial on my Looping animation technique.Whether you’re cycling words, images, icons, or testimonials, this method gives you full control, without writing a single line of code.
Pro tips for perfect loops
Always duplicate the first item at the end. That’s the key to a seamless reset.
Use hidden overflow. This creates the illusion that only one word exists at a time.
Use variants for better control. Especially useful if you want to pause on each word or trigger the loop on scroll or hover.
Final thoughts
Looping animations in Framer aren’t just about movement, they’re about flow. And with this technique, you can build beautiful, infinite loops that feel effortless to the user.
I also have an in-depth tutorial on my Looping animation technique.Whether you’re cycling words, images, icons, or testimonials, this method gives you full control, without writing a single line of code.
Pro tips for perfect loops
Always duplicate the first item at the end. That’s the key to a seamless reset.
Use hidden overflow. This creates the illusion that only one word exists at a time.
Use variants for better control. Especially useful if you want to pause on each word or trigger the loop on scroll or hover.
Final thoughts
Looping animations in Framer aren’t just about movement, they’re about flow. And with this technique, you can build beautiful, infinite loops that feel effortless to the user.
I also have an in-depth tutorial on my Looping animation technique.Whether you’re cycling words, images, icons, or testimonials, this method gives you full control, without writing a single line of code.