Motion Lab / Heroes / char reveal / playful
// Mechanisme: hero-char-reveal-playful 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]'; import{ScrollTrigger}from 'https://esm.sh/[email protected]/ScrollTrigger'; gsap.registerPlugin(ScrollTrigger); const el=document.querySelector('.char-reveal-target'); if(el){const t=el.textContent.trim();el.innerHTML=[...t].map(c=>c===' '?' ':'<span class="cw" style="display:inline-block;overflow:hidden;vertical-align:bottom"><span class="ci" style="display:inline-block">'+c+'</span></span>').join('');if(window.matchMedia('(prefers-reduced-motion: reduce)').matches)return; gsap.fromTo(el.querySelectorAll('.ci'),{yPercent:120,autoAlpha:0},{yPercent:0,autoAlpha:1,duration:0.8,stagger:0.04,ease:'back.out(1.5)',scrollTrigger:{trigger:el,start:'top 85%',once:true}});}
<!-- Skeleton: hero-char-reveal-playful --> <div class="demo-block"> <!-- DOM-structuur hier --> </div>
/* Styling: hero-char-reveal-playful */
:root {
--block-bg: ;
--block-fg: ;
--block-accent: ;
}