Motion Lab / Heroes / webgl displacement / minimal
// Mechanisme: hero-webgl-displacement-minimal
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'});});} <!-- 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: ;
}