Motion Lab / Heroes / webgl displacement / minimal
// Mechanisme: hero-webgl-displacement-minimal import gsap from 'https://esm.sh/[email protected]'; // Pas toe op je eigen selector — geen stijlkeuzes hier. import gsap from 'https://esm.sh/[email protected]'; 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.9,ease:'power2.out'});});}
<!-- Skeleton: hero-webgl-displacement-minimal --> <div class="demo-block"> <!-- DOM-structuur hier --> </div>
/* Styling: hero-webgl-displacement-minimal */
:root {
--block-bg: ;
--block-fg: ;
--block-accent: ;
}