← Blurr Motion cta-hold-to-confirm-playful
Categorie cta Tier 1 Techniek #18 Deps gsap
1. Mechanisme — kopieer 1-op-1, geen styling-keuzes
// Mechanisme: cta-hold-to-confirm-playful
import gsap from 'https://esm.sh/gsap@3.12.5';
// Pas toe op je eigen selector — geen stijlkeuzes hier.
if(window.matchMedia('(prefers-reduced-motion: reduce)').matches)return;
const btn=document.querySelector('.hold-btn');
if(btn){let t;const s=()=>{btn.classList.add('holding');t=setTimeout(()=>btn.classList.add('confirmed'),1500);};const c=()=>{btn.classList.remove('holding','confirmed');clearTimeout(t);};
btn.addEventListener('mousedown',s);btn.addEventListener('touchstart',s,{passive:true});
['mouseup','mouseleave','touchend'].forEach(ev=>btn.addEventListener(ev,c));}
2. Skeleton — DOM + class-namen, mag herschikken
<!-- Skeleton: cta-hold-to-confirm-playful -->
<div class="demo-block">
  <!-- DOM-structuur hier -->
</div>
3. Styling-template — verplicht eigen invulling per merk
/* Styling: cta-hold-to-confirm-playful */
:root {
  --block-bg: ;
  --block-fg: ;
  --block-accent: ;
}