Annnimate
Every component, in every framework.
Drift Gallery is one of 50+ GSAP components, each shipping in React, Vue, and HTML/CSS/JS with the same production tuning.
The library
Curated, not a catalog dump.
Every signature component, built for a real site. Filter, preview live, copy in React or Vue.
Browse the libraryLandmark Kits
Depth, not breadth.
A deep, stand-alone collection built around one system. The first Kit is Reveal - preloaders and hero sections, one mixable system, WebGL and GSAP. React, Vue, HTML / CSS / JS. Not for Webflow.
See the Reveal KitConcepts, patterns, tools
Learn the vocabulary.
Definitions and examples for the GSAP and animation concepts behind production motion. Free, citable, and cross-linked with the components that use each idea.
Open conceptsAnnnimate
Drift Gallery is one of 50+ GSAP components, each shipping in React, Vue, and HTML/CSS/JS with the same production tuning.
A WebGL card slider (Three.js) for a marketing section: a horizontal row of portrait product cards drifting on autoplay across a lower band, each image shader-fit to fill its card. Drag to throw the row (Draggable + Inertia) or let it drift; hovering a card lifts it while the cursor magnetically parts its neighbours, and the centred card syncs a live detail panel (index, title, category, code). A filmic grade rides the whole frame - chromatic aberration on motion, grain and vignette - and it stays responsive 320-1920 with a touch-friendly focal-card layout on mobile. VANTA OL-26 editorial-sports demo brand.
Drift Gallery ships as plain HTML, CSS, and JavaScript - no build step, no bundler, no framework. Copy the three blocks (HTML markup, CSS styles, JS init) and paste them into any page. The component works in any CMS that lets you embed custom code: Webflow, Framer, Astro, vanilla HTML, WordPress, Squarespace.
Paste the HTML markup wherever the component should appear. Add the CSS to your stylesheet (or in a <style> tag). Add the JavaScript inside a <script> tag at the end of <body>, or in your site's footer custom code block.
In Webflow specifically: HTML goes in an Embed block, CSS goes in the page or project Custom Code <head> section, JS goes in the page Custom Code <body> section. The JSON paste flow (Designer → paste) handles the structure + classes for you; the Custom Code drop-ins handle the script and any custom CSS the JSON can't carry.
The component initializes on DOMContentLoaded automatically - no manual call needed.
Load GSAP BEFORE the component script
gsap.to() at init. If GSAP isn't loaded yet, you'll see ReferenceError: gsap is not defined. The included waitForGSAP helper handles this gracefully, but easier: just include the GSAP CDN <script> above the component script.Plugins need separate CDN scripts
<script> tag from the GSAP CDN, loaded after the core. Check the component's dependency list to know which to include.Multiple instances on one page
data-anm-* attributes, so multiple instances on the same page work without conflict. Each is initialized independently. To target a specific instance from your own code, use window.Anm.{ComponentName} APIs documented in the Tips section.The full HTML/CSS/JS implementation lives on the component page, with the live demo, every format side by side, and the ability to edit and re-run it in the browser.
Open Drift Gallery