→ לכל המאגר

G84 · סקשן יוצא מפוקוס כשהבא נכנס

GSAP GSAP · ScrollTrigger הירו ופתיחהתהליך ושלבים ממתין

בזמן שהסקשן הבא עולה מלמטה, הקודם מתכווץ מעט, מתטשטש ומתכהה, כאילו הוא נשאר מאחור. מעבר עמוק בין פרקים בלי מסכות.

מתי משתמשים: בין פרקי סיפור באתר תדמית פרימיום: הירו לערכים, ערכים לעבודות. שניים עד ארבעה מעברים בעמוד.

הדמו כאן עיצובי-ניטרלי בכוונה. כשהמהלך נכנס לפרויקט, מיובאת רק ההתנהגות: הצבעים, הרדיוסים, הפונטים והצללים יורשים את העיצוב של אותו פרויקט.

הדמו

גלול למטה, הדמו מגיע ↓

מתחילים מהשאלה של הלקוח

לא מהצבעים ולא מהלוגו. מה הוא מחפש, ומה עוצר אותו מלפנות.

כותבים משפט אחד שמוכר

ואז בונים סביבו את כל העמוד, מלמעלה למטה.

מודדים, ורק אז משנים

כל פנייה נספרת. כל שינוי נבחן מול מספר.

עוד מסלול גלילה. נסה גם חזרה למעלה ↑
הסקשן היוצא sticky וה-scale/blur שלו סקראב מול כניסת הבא, וההחשכה היא שכבת דיו בפסאודו-אלמנט. אסור brightness: הוא מחשיך גם את הטקסט, וכרטיס בהיר עם טקסט כהה הופך לבלתי קריא, בעוד ששכבת דיו מורידה את שניהם יחד ושומרת על היחס. הרקע של המכל הוא דיו, כדי שהכרטיס המתכווץ ייסוג לתוך חושך. פינות מתעגלות בזמן ההתכווצות, זה מה שנותן את תחושת הכרטיס.

קוד להדבקה

הקוד כאן עומד בפני עצמו. כל טוקן עיצוב נושא ברירת מחדל, מחלקות העזר של המאגר מוטמעות בו, ותגי הסקריפט מסודרים לפי הסדר הנכון. פרויקט שמגדיר --accent או --line משלו יורש אותם אוטומטית.

פתח קובץ עצמאי ↗
הצג את הקוד כאן

CSS

/* G84 · סקשן יוצא מפוקוס כשהבא נכנס */
.df{position:relative;background:var(--ink, #16182b)}
.df-sec{position:sticky;top:0;min-height:100vh;display:grid;place-items:center;padding:var(--sec, clamp(120px, 12vw, 260px)) var(--gutter, clamp(24px, 5vw, 96px));text-align:center;transform-origin:50% 40%;overflow:hidden}
.df-sec::after{content:"";position:absolute;inset:0;background:var(--ink, #16182b);opacity:var(--dim,0);border-radius:inherit;pointer-events:none}
.df-sec:nth-child(1){background:var(--card, #fff);z-index:1}
.df-sec:nth-child(2){background:var(--accent, #4a3aff);color:var(--accent-ink, #fff);z-index:2}
.df-sec:nth-child(3){background:var(--ink, #16182b);color:var(--bg, #f7f7fa);z-index:3}
.df-sec h2{margin:0 0 12px;font-size:var(--fs-h2, clamp(28px, 1.9vw + 0.5rem, 52px));max-width:20ch}
.df-sec p{margin:0;max-width:44ch;opacity:.8;line-height:1.7}

HTML

<div class="df">
  <section class="df-sec"><div><h2>מתחילים מהשאלה של הלקוח</h2><p>לא מהצבעים ולא מהלוגו. מה הוא מחפש, ומה עוצר אותו מלפנות.</p></div></section>
  <section class="df-sec"><div><h2>כותבים משפט אחד שמוכר</h2><p>ואז בונים סביבו את כל העמוד, מלמעלה למטה.</p></div></section>
  <section class="df-sec"><div><h2>מודדים, ורק אז משנים</h2><p>כל פנייה נספרת. כל שינוי נבחן מול מספר.</p></div></section>
</div>

JS

gsap.registerPlugin(ScrollTrigger);

(function(){
  if(matchMedia("(prefers-reduced-motion: reduce)").matches)return;
  const secs=gsap.utils.toArray(".df-sec"),mob=matchMedia("(max-width:767px)").matches;
  secs.slice(0,-1).forEach((sec,i)=>{
    const tw={scale:.92,borderRadius:28,"--dim":.62,ease:"none",
      scrollTrigger:{trigger:secs[i+1],start:"top bottom",end:"top top",scrub:.4}};
    if(!mob)tw.filter="blur(6px)";   // blur יקר בטלפון; ההחשכה עצמה היא שכבת דיו ולא brightness
    gsap.to(sec,tw);
  });
})();