Строки из-под маски
01Как сделано: GSAP SplitText (type: lines, mask) + expo.out, stagger 0.09. Сам заголовок остаётся читаемым для скринридеров и при «уменьшить движение».
Лаборатория движения
Девять живых примеров. Всё работает прямо здесь: наводите, тяните, листайте. Если в системе включено «уменьшить движение», анимации отключатся — это проверено.
Как сделано: GSAP SplitText (type: lines, mask) + expo.out, stagger 0.09. Сам заголовок остаётся читаемым для скринридеров и при «уменьшить движение».
Как сделано: gsap.quickTo на x/y по pointermove (инерция 0.6 с). Включается только для мыши и без reduced-motion.
Как сделано: 3D-наклон через gsap.quickTo (rotationX/Y, perspective 900) и радиальный блик на CSS-переменных, следующий за курсором.
Как сделано: Скорость и наклон считаются из ScrollTrigger.getVelocity(): листайте быстрее — строка ускоряется и меняет направление.
Листайте страницу — слова загораются по одному, в такт прокрутке.
Как сделано: SplitText (words) + scrub: непрозрачность слов привязана к положению страницы без собственной математики.
Как сделано: Позиция курсора с инерцией пишется в CSS-переменные; два слоя текста и radial-gradient в mask-image. Без мыши текст просто читаем.
Как сделано: stroke-dasharray / stroke-dashoffset по getTotalLength() и timeline со stagger. Наведите курсор, чтобы проиграть заново.
Как сделано: Анимируем число в обычном объекте и пишем в DOM в onUpdate; ease power3.out даёт мягкое замедление.
Как сделано: Motion: drag с упругим возвратом (bounceStiffness / bounceDamping), whileHover и whileDrag.