← Blurr Motion gallery-hover-shift-editorial
Categorie galleries Tier 1 Techniek #24 Deps gsap
Branding
Motion
Growth
1. Mechanisme — kopieer 1-op-1, geen styling-keuzes
// Mechanisme: gallery-hover-shift-editorial
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;
document.querySelectorAll('.hover-shift-item').forEach(item=>{const img=item.querySelector('.shift-img');item.addEventListener('mousemove',e=>{const r=item.getBoundingClientRect();if(img)gsap.to(img,{x:((e.clientX-r.left)/r.width-0.5)*20,y:((e.clientY-r.top)/r.height-0.5)*20,duration:0.4,ease:'power2.out'});});item.addEventListener('mouseleave',()=>{if(img)gsap.to(img,{x:0,y:0,duration:0.5});});});
2. Skeleton — DOM + class-namen, mag herschikken
<!-- Skeleton: gallery-hover-shift-editorial -->
<div class="demo-block">
  <!-- DOM-structuur hier -->
</div>
3. Styling-template — verplicht eigen invulling per merk
/* Styling: gallery-hover-shift-editorial */
:root {
  --block-bg: ;
  --block-fg: ;
  --block-accent: ;
}