משפט שהמילים שלו מתנתקות ונופלות אחת אחת, כל אחת בסיבוב ובכיוון קצת אחר, כשגוללים דרכו. מה שנשאר בשורה הוא המסר.
מתי משתמשים: "מה שלא עובד", ניקוי מהרעש, פתיחה של סקשן ערכים בסגנון "פחות זה יותר". פעם אחת בעמוד.
הדמו כאן עיצובי-ניטרלי בכוונה. כשהמהלך נכנס לפרויקט, מיובאת רק ההתנהגות: הצבעים, הרדיוסים, הפונטים והצללים יורשים את העיצוב של אותו פרויקט.
הקוד כאן עומד בפני עצמו. כל טוקן עיצוב נושא ברירת מחדל, מחלקות העזר של המאגר מוטמעות בו, ותגי הסקריפט מסודרים לפי הסדר הנכון. פרויקט שמגדיר --accent או --line משלו יורש אותם אוטומטית. הרכיב הזה מסתמך על dir="rtl".
/* G145 · מילים שנופלות מהשורה */
.fw2{min-height:150vh;display:grid;place-items:center;padding-inline:var(--gutter, clamp(24px, 5vw, 96px))}
.fw2 h2{font-size:clamp(28px,5vw,72px);font-weight:800;line-height:1.3;margin:0;text-align:center;max-width:22ch}
.fw2 .w{display:inline-block;margin-inline:.14em;will-change:transform,opacity}
<div class="fw2"><h2><span class="w keep">אתר</span> <span class="w">מרשים</span> <span class="w">עם</span> <span class="w">אפקטים</span> <span class="w">ותמונות</span> <span class="w">ענקיות</span> <span class="w keep">שמביא</span> <span class="w">בעיקר</span> <span class="w">מחמאות</span> <span class="w keep">לקוחות</span></h2></div>
gsap.registerPlugin(ScrollTrigger);
(function(){
const drop=gsap.utils.toArray(".fw2 .w:not(.keep)"),keep=gsap.utils.toArray(".fw2 .keep");
const accent=getComputedStyle(document.documentElement).getPropertyValue("--accent").trim()||"#4a3aff";
if(matchMedia("(prefers-reduced-motion: reduce)").matches){gsap.set(drop,{opacity:0});gsap.set(keep,{color:accent});return;}
const dy=matchMedia("(max-width:767px)").matches?240:420;
gsap.timeline({scrollTrigger:{trigger:".fw2",start:"top 60%",end:"bottom 60%",scrub:.6}})
.to(drop,{y:dy,rotate:()=>gsap.utils.random(-40,40),opacity:0,duration:1,ease:"power2.in",stagger:{each:.12,from:"random"}})
.to(keep,{color:accent,duration:.4},"-=.3");
})();