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-journey-trail, data-marquee, data-count="100").π‘ Important
βοΈ How it works
The mouse trail creates a cinematic cascade of images that follow your cursor movement. When the mouse moves more than 100px, images spawn at the cursor position, drift with inertia, rotate dynamically, blur progressively, and fade out β creating a fluid, organic trail effect. The system cycles through multiple template images and includes a cooldown to prevent performance issues.
π§© Customization Options
data-journey-trail to the container element.data-journey-trail-img to each image wrapper you want in the trail cycle.position: fixed
width: 100%
height: 100vh
z-index: 99
pointer-events: noneposition: absolute
βSet your desired width and height (the code respects your sizing)z-index: 99data-journey-trail-img elements as you want β the system cycles through all of them.π― Features
βοΈ How it works
The navbar features a dual-panel system with separate Menu and Notifications panels that animate from the right side. Both panels share the same space β opening one automatically closes the other. The system includes a backdrop overlay, smooth width animations, and integrates with Lenis smooth scroll to properly lock page scrolling when panels are open.
π§© Customization Options
id="menu-btn" to your menu trigger button.id="alert-btn" to your notifications trigger button.id="menu-close" to the close button inside the menu panel.id="alert-close" to the close button inside the notifications panel.id="menu-open" to the menu panel container.id="alert-open" to the notifications panel container.id="bg" to the backdrop overlay element.display: none
width: 0display: none
opacity: 0%π― Features
βοΈ How it works
The marquee creates an infinite horizontal scroll of content. The system automatically clones your content to ensure seamless looping, calculates optimal animation duration based on content width and speed, and handles resize events intelligently. It includes visibility detection to pause when off-screen and respects reduced motion preferences for accessibility.
π§© 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).data-marquee-speed β to pause the marquee on hover.π― Features
prefers-reduced-motion system setting.βοΈ How it works
When hovering over service items, an associated image reveals and follows the cursor with physics-based smoothing. The image enters with a subtle upward motion and opacity fade, then tracks the cursor position with configurable offset and rotation based on horizontal position. Moving left rotates the image left; moving right rotates it right β creating natural, reactive motion.
π§© Customization Options
services_item to each service list item.services_image.π― Features
βοΈ How it works
Numbers animate from a starting value to a target value when scrolling into view. The system automatically detects decimal places from your target number and maintains the same format throughout the animation. Supports both dot and comma as decimal separators β perfect for international number formats.
π§© Customization Options
data-count="100" to any text element with your target number.data-count-start="50" to set a starting number (default 0).data-count-duration="3" to set duration in seconds (default 2).data-count="99.9" for dot separatordata-count="99,9" for comma separator0 or 0.0).π― Features
1.5 and 1,5 notation.βοΈ How it works
Lenis provides butter-smooth scrolling across the entire page, integrated with GSAP's ScrollTrigger for synchronized scroll-based animations. The template exposes Lenis globally (window.lenis) so other systems (like the Navbar Toggle) can properly pause/resume scrolling.
π§© Customization Options
</body>).window.lenis.stop().window.lenis.start().π― Features