This template uses custom-built GSAP-powered systems to create smooth, responsive, and performant animations in Webflow. You’ll find two core systems powering key interactions: one for Tabs and one for Marquees.
To activate the animations and systems in this template, all logic is driven by Custom Attributes directly inside the Webflow Designer — no need to touch the code.
🛠 What are Custom Attributes?
Custom Attributes are key-value pairs you can assign to any HTML element in Webflow. They allow you to add interactivity or behaviors that connect to the code.
🧪 How to Add One
data-tab-item, data-marquee, data-tab-autoplay="true").💡 Important
data-marquee + data-marquee-speed).⚙️ How it works
This interaction utilizes a Centralized Motion Engine to track pointer velocity across a defined zone. Unlike traditional hover effects, it employs a velocity buffer to smooth out cursor jitters, calculating an average motion vector over multiple frames.When a user interacts with an element, the engine applies a physics-based inertia animation to X and Y coordinates. Simultaneously, it generates an organic rotation based on the velocity vector and a dynamic chaos factor, creating a fluid, natural feel that auto-resets when the momentum dissipates.
🧩 Customization Options
impulse-hover-zone → Required. Add this to the parent container/section. The engine tracks mouse velocity relative to this area.impulse-activator → Required. Add this to the card or wrapper element that triggers the interaction on hover.impulse-target→ Add this to a child element if you want to separate the trigger from the moving object (e.g., moving an image inside a card). If omitted, the activator itself will move.Adjust feel in the script:
power — Controls the intensity of the X/Y movement.spin — Controls the sensitivity of the rotation.drag — Friction/Resistance. Higher values make the element stop faster.samples— Smoothing buffer. Higher values create smoother motion but slightly less instant responsiveness.🎯 Features
⚙️ How it works
The text highlight effect fills a colored bar behind selected words while switching the text color. It activates when the element scrolls into view and plays once. The highlight grows from left to right using a background fill; multi‑line text is supported.
🧩 Customization Options
data-hl to that span.data-hl-color → highlight color (default #FF6A45).data-hl-text → text color after fill (default #0d0d0d).data-hl-radius → border radius in pixels (default 0).data-hl-pad → padding (CSS shorthand, default 0rem 0rem 0rem 0rem).data-hl-speed → animation duration in seconds (default 0.8).data-hl-ease → GSAP easing (e.g., power1.inOut, default power3.out).🎯 Features
⚙️ How it works
The marquee scrolls a continuous line of content inside a track. The wrapper defines speed, direction, and item spacing through data attributes. The system duplicates the content once to create a seamless loop and recalculates sizes on resize. Works with text, logos, images, or mixed inline elements.
🧩 Customization Options
data-marquee to the marquee wrapper.data-marquee-list that contains all inline items.data-marquee-speed — scrolling speed in pixels per second (default 60).data-marquee-direction — left or right (default left).data-marquee-gap — spacing between items (CSS length, default 2rem).🎯 Features
left / right).