Animate Native Webflow Tabs Using New GSAP Interactions
Level:
Einfach 👌
Learn how to animate native Webflow tabs using the new GSAP interactions even though Webflow doesn’t support this out of the box. In this tutorial, I’ll show you a clever workaround to trigger animations when switching tabs, using scroll and click-based GSAP triggers for smooth transitions and custom effects.
You’ll see how to build reusable components, integrate dynamic content, and control elements like shadows, images, and text with timeline animations. This method gives you full control over your tab UI, without relying on outdated Webflow interactions.
🎁 Clone the project for free via the link in the description and start experimenting right away.
👍 Like the video if you want more advanced Webflow + GSAP tutorials!
How to Trigger GSAP Animations When Switching Webflow Tabs
Webflow’s new GSAP Interactions currently doesn't offer a native way to trigger animations when switching tabs. This has been supported by the old Webflow's interaction system, which means designers need to look for creative workarounds. In this tutorial, I’ll show you how to achieve this functionality using GSAP inside Webflow’s native tabs component.
Structure & Styling Setup
First, I build my tabs in Webflow, placing the tab menu and content inside a wrapper I set to flex column. I reorder the tab menu to appear at the bottom, and behind everything I add a div with a radial gradient shine to add depth.
Inside each tab’s content, I wrap elements in a content-inner
container (position: relative) and include:
- A heading or “tool name” absolutely positioned (center, top, or bottom)
- An image wrapper that adapts size dynamically
- A blurred shadow under the image to simulate depth
Key styling decisions:
- The heading uses
clamp()
for font size (min 1.5 rem, ideal up to 13 rem) - Overflow is tightly controlled so content remains visually consistent
- Shadow elements scale and fade depending on the content size
Converting to a Component
Next, I turn the tab block into a Webflow component. I expose the heading, image, and alt text as custom properties so each tab instance can have its own content without rebuilding the structure.
Building the GSAP Animations
Scroll Trigger (on tab content)
- Animate the image: vertical/horizontal shift + rotation
- Make it bounce continuously (infinite loop, yoyo)
- Sync the shadow: fade and scale based on image motion
Click Trigger (on tab switch)
Because Webflow hides inactive tabs using display: none
, attaching a scroll-trigger animation can cause issues—especially in Safari. So instead:
- On tab menu link click → trigger a scale-down + fade-out of the current tab’s content (image, shadow, heading)
- After that, start the “enter” animation on the incoming tab:
- Scale-in from 0.7 → 1
- Fade-in opacity
- Staggered animation for heading letters (split text effect, movement in Y)
I found that using a simulated click helps trigger the first tab’s animation on page load. Using a small JavaScript embed, I target the first tab link and trigger a click after ~500ms so the background heading animates even without user interaction.
JS Code:
<script>
document.addEventListener('DOMContentLoaded', () => {
setTimeout(() => {
const firstTab = document.querySelector('#tools .tab-menu a');
if (firstTab) {
firstTab.click();
}
}, 500);
});
</script>
Challenges & Tips
- The stagger heading effect across multiple tabs can cause delays if applied globally (it animates every tab’s heading, even offscreen)
- Using
data-attributes
to target specific tab headings helps localize the animation - Timing (ease, duration, delays) is key—make sure your fade and scale steps align with Webflow’s native tab fade settings
Webflow Course for pro techniques
If you want to dig deeper into pro techniques like this, check out my Webflow expert course where we build real-world tools—from a custom shopping cart to CMS-driven filters and Stripe integrations.