Developer Guide
How to adjust HelloBot's motion — timing, easing, and scroll triggers — and keep every animation styled with the site's theme tokens.
HelloBot's scroll and entrance animations run on GSAP (the same engine behind Webflow Interactions). The animation logic sits in a custom init script, loaded after the GSAP library.
gsap.min.js (and often ScrollTrigger.min.js).gsap.to(...) / gsap.from(...) calls. This is the file you edit to change animations.document.addEventListener('DOMContentLoaded', () => { ... }) so targets exist before GSAP runs.Every animation is a tween: a target, plus a vars object describing the end state and timing.
// Fade + rise the hero title on load
gsap.from(".hero-title", {
y: 40, // move up from 40px below
autoAlpha: 0, // fade in (opacity + visibility)
duration: 0.8, // seconds
ease: "power3.out"
});gsap.to() — animate from the current state to the values you give.gsap.from() — animate from the values you give to the current state (great for entrances).gsap.fromTo() — define both start and end explicitly.Use transform aliases (x, y, scale, rotation) and autoAlpha instead of animating left/top/opacity — they're smoother and avoid layout reflows.
To re-tune an existing animation, change these vars:
| Property | What it does | Try |
|---|---|---|
duration | Length in seconds | 0.4 snappy → 1.2 slow |
delay | Wait before starting | 0.15 |
ease | Acceleration curve | "power2.out", "back.out(1.7)" |
stagger | Offset between multiple targets | 0.1 or { each: 0.08, from: "start" } |
// Stagger the feature cards in, one after another
gsap.from(".card-title", {
y: 24,
autoAlpha: 0,
duration: 0.6,
ease: "power2.out",
stagger: 0.1
});