Prepare production deployment

This commit is contained in:
2026-07-20 04:14:24 +05:00
parent 55583e2101
commit 2e3550a4dc
46 changed files with 1497 additions and 882 deletions
+14 -12
View File
@@ -11,26 +11,26 @@
const ctx = gsap.context(() => {
const words = section.querySelectorAll<HTMLElement>('[data-hero-word]');
const desc = section.querySelector<HTMLElement>('[data-hero-desc]');
const cta = section.querySelector<HTMLElement>('[data-hero-cta]');
const mock = section.querySelector<HTMLElement>('[data-hero-mockup]');
const desc = section.querySelector<HTMLElement>('[data-hero-desc]');
const cta = section.querySelector<HTMLElement>('[data-hero-cta]');
const mock = section.querySelector<HTMLElement>('[data-hero-mockup]');
gsap.set(words, { opacity: 0, y: 44, skewX: -6 });
gsap.set(desc, { opacity: 0, y: 24 });
gsap.set(cta, { opacity: 0, y: 16 });
gsap.set(mock, { opacity: 0, x: 48 });
gsap.set(desc, { opacity: 0, y: 24 });
gsap.set(cta, { opacity: 0, y: 16 });
gsap.set(mock, { opacity: 0, x: 48 });
const tl = gsap.timeline({
defaults: { ease: 'power3.out' },
onComplete: () => gsap.set([words, desc, cta, mock], { clearProps: 'all' }),
onComplete: () => gsap.set([words, desc, cta, mock], { clearProps: 'all' })
});
words.forEach((w, i) =>
tl.to(w, { opacity: 1, y: 0, skewX: 0, duration: 0.75 }, 0.05 + i * 0.1)
);
tl.to(desc, { opacity: 1, y: 0, duration: 0.65, ease: 'power2.out' }, 0.42);
tl.to(cta, { opacity: 1, y: 0, duration: 0.55, ease: 'expo.out' }, 0.58);
tl.to(mock, { opacity: 1, x: 0, duration: 0.9, ease: 'power2.out' }, 0.18);
tl.to(cta, { opacity: 1, y: 0, duration: 0.55, ease: 'expo.out' }, 0.58);
tl.to(mock, { opacity: 1, x: 0, duration: 0.9, ease: 'power2.out' }, 0.18);
}, section);
return () => ctx.revert();
@@ -47,12 +47,14 @@
<h1 class="flex flex-col font-display leading-[0.95] font-black uppercase">
<span data-hero-word class="text-[clamp(2.5rem,10vw,6.25rem)]">Рыночный</span>
<span data-hero-word class="text-[clamp(3rem,13vw,8rem)]">прогноз</span>
<span data-hero-word class="text-[clamp(1.5rem,6.5vw,4rem)] leading-none text-primary">от ML-модели</span>
<span data-hero-word class="text-[clamp(1.5rem,6.5vw,4rem)] leading-none text-primary"
>от ML-модели</span
>
</h1>
<p
data-hero-desc
class="mt-6 max-w-full text-base leading-[1.3] text-desc sm:mt-8 sm:text-xl lg:mt-10 xl:max-w-180 lg:text-2xl lg:leading-[1.1]"
class="mt-6 max-w-full text-base leading-[1.3] text-desc sm:mt-8 sm:text-xl lg:mt-10 lg:text-2xl lg:leading-[1.1] xl:max-w-180"
>
Исторические свечи, прогнозная зона, уровни входа и выхода — всё на одном интерактивном
графике. Горизонт 19 свечей, таймфрейм 5M.
@@ -64,7 +66,7 @@
</div>
</div>
<div data-hero-mockup class="w-full mx-auto xl:mx-0 z-20">
<div data-hero-mockup class="z-20 mx-auto w-full xl:mx-0">
<DashboardMockup />
</div>