This guide explains how to control and edit all animations used in your template.
Before using anything, make sure:
ScrollTriggerSplitTextFlip๐ If animations donโt work, 90% of the time it's missing scripts.
.indicator inside hovered .menu-itemduration: 0.4
ease: "power1.out"
Remove this block:
let path = window.location.pathname...
<div class="menu"> ย <a class="menu-item" href="/">Home</a> ย <a class="menu-item" href="/about">About</a> ย <div class="indicator"></div></div>
What is this?
.blog-title-line
duration: 0.4 ย // hover induration: 0.25 ย // hover out
stagger: 0.15
<div class="counter" data-target="5000" data-suffix="+"></div>
What is this?
duration: 2
start: "top 80%"
This is the core animation system using attributes.
Add this attribute:
[text-split]
<div text-split words-slide-up>Text here</div>
<div text-split words-rotate-in>Text here</div>
<div text-split words-slide-from-right>Text here</div>
<div text-split letters-slide-up>Text</div>
<div text-split letters-slide-down>Text</div>
<div text-split letters-fade-in>Text</div>
<div text-split letters-fade-in-random>Text</div>
duration: 0.5
stagger: { amount: 0.5 }
yPercent: 110 ย // up/downx: "1em" ย ย ย ย // left/right
start: "top 60%"
"top 90%" โ late trigger"top 50%" โ earlier trigger<div text-split scrub-each-word>Text</div>
scrub: true
<div data-block="button"> ย <div class="button-flair"></div> ย Button Text</div>
duration: 0.4
scale: 1 ย // hover inscale: 0 ย // hover out
Text automatically re-splits on resize:
gsap.utils.debounce(init, 200);
๐ Do NOT remove this โ it prevents broken layouts.
document.fonts.ready
๐ Ensures animations run AFTER fonts load
๐ Prevents layout glitches