← Blurr Motion hero-webgl-displacement-gallery
Categorie heroes Tier 2 Techniek #26 Deps gsap

Motion Lab / Heroes / webgl displacement / gallery

Movement begins with intention and ends with clarity.

Move cursor — displacement filter
1. Mechanisme — kopieer 1-op-1, geen styling-keuzes
// Mechanisme: hero-webgl-displacement-gallery
import gsap from 'https://esm.sh/gsap@3.12.5';
// Pas toe op je eigen selector — geen stijlkeuzes hier.
import gsap from 'https://esm.sh/gsap@3.12.5';
if(window.matchMedia('(prefers-reduced-motion: reduce)').matches)return;
const img=document.querySelector('.displacement-target');
if(img){document.addEventListener('mousemove',e=>{gsap.to(img,{filter:'blur('+((1-e.clientX/window.innerWidth)*3).toFixed(1)+'px) saturate('+(1+e.clientY/window.innerHeight*0.5).toFixed(2)+')',duration:0.4,ease:'power2.out'});});}
2. Skeleton — DOM + class-namen, mag herschikken
<!-- Skeleton: hero-webgl-displacement-gallery -->
<div class="demo-block">
  <!-- DOM-structuur hier -->
</div>
3. Styling-template — verplicht eigen invulling per merk
/* Styling: hero-webgl-displacement-gallery */
:root {
  --block-bg: ;
  --block-fg: ;
  --block-accent: ;
}