← ClaudeAtlas

staggered-word-reveallisted

Create subtle editorial word-by-word text reveal animations where each word fades and rises into place once it enters the viewport. Use for premium portfolio headlines, hero copy, section intros, and short marketing text that needs a cinematic staggered reveal with IntersectionObserver or in-view detection.
sahiltolani30/Interior-designer-Website-Template · ★ 0 · Data & Documents · score 51
Install: claude install-skill sahiltolani30/Interior-designer-Website-Template
# Staggered Word Reveal ## Use When - A short headline, intro, or pull quote should reveal word by word. - The motion should feel editorial, premium, and restrained. - The reveal should trigger only once when the text enters the viewport. - The project does not need heavy GSAP SplitText behavior. ## Motion Defaults - Initial state: `opacity: 0`, `transform: translateY(20px)`. - Final state: `opacity: 1`, `transform: translateY(0)`. - Duration: `0.8s`. - Ease: `cubic-bezier(0.16, 1, 0.3, 1)`. - Stagger: `0.06s` to `0.08s` per word. Default to `0.07s`. - Trigger: start around `20%` visible, with a slight lower viewport bias. - Replay: once only. ## HTML ```html <h1 class="word-reveal" data-word-reveal> Build interfaces that feel calm, cinematic, and alive. </h1> ``` ## CSS Keep no-JS content visible. Hide only after JavaScript is active and before the text has been split. ```css .word-reveal { visibility: visible; } html.js .word-reveal[data-word-reveal]:not(.is-ready) { opacity: 0; } .word-reveal__word { display: inline-block; opacity: 0; transform: translate3d(0, 20px, 0); transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); transition-delay: calc(var(--word-index) * 0.07s); will-change: opacity, transform; } .word-reveal.is-visible .word-reveal__word { opacity: 1; transform: translate3d(0, 0, 0); } @media (prefers-reduced-motion: reduce) { html.js .word-reveal[data-word-reveal]:not(.i