Skip to content
Creative Marketing AI

Motion Showcase

Reveals

How type and imagery enter the frame. Scroll — each pattern below fires as it reaches your viewport, and two of them pin the page and scrub with your thumb.

01 · Char split

gsap.from(chars, { yPercent: 120, stagger: 0.03, ease: 'power4.out' })
02 · Line mask
Hand-cut timber.
Long-pour evenings.
Rooms that remember.
gsap.from(lines, { yPercent: 110, stagger: 0.14 }) // overflow:hidden wrappers
03 · Word cascade

gsap.from(words, { yPercent: 100, rotationX: -70, opacity: 0, stagger: 0.05 })
04 · Clip-path curtainGreat-hall corridor of the lodge, revealed top to bottom
gsap.fromTo(img, { clipPath: 'inset(0 0 100% 0)' }, { clipPath: 'inset(0)' })
05 · Blinds wipeCandle-lit hall behind opening doors
gsap.to(slices, { scaleY: 0, transformOrigin: 'top', stagger: 0.09 })
06 · Circle irisSmoke wisps on black, revealed through an expanding circle
clipPath: 'circle(0% at 30% 40%)' → 'circle(150% at 30% 40%)'
07 · Text as mask
PULP

The wordmark is a window — amber liquid pours through the letters as you scroll.

canvas-rendered text mask + gsap.fromTo(texture, { xPercent: -18 }, { xPercent: 18, scrollTrigger: { scrub: 1 } })
08 · Counters
127

events hosted

24

rooms in the lodge

96

five-star reviews

gsap.from(nums, { textContent: 0, snap: { textContent: 1 }, once: true })
09 · SVG draw-on

The ridge line is drawn by your scroll — pinned, scrubbed, reversible.

gsap.set(path, { strokeDasharray: len, strokeDashoffset: len }); gsap.to(path, { strokeDashoffset: 0, scrollTrigger: { scrub: 1 } })
← All effectsNext: Ambient & Texture →