feat: Apple-style scroll-driven landing page
- Add ScrollAnimations component (ScrollReveal, ParallaxLayer, FadeOnScroll) - Add CinematicShowcase for scroll-driven product reveals - Update Tuxedo page with cinematic product showcase and parallax layers - Update main HeroSection with same premium scroll animations - Add scroll progress bar, staggered reveals, counter animations - Apply consistent Apple-style UX across landing and Tuxedo pages Features: - Sections pin and reveal content progressively on scroll - Parallax depth effects on decorative elements - Counter animations triggered by scroll - Smooth hover states and transitions - GSAP + Framer Motion for smooth animations
This commit is contained in:
@@ -2,8 +2,6 @@
|
||||
|
||||
import { useEffect, useRef } from "react";
|
||||
import HeroSection from "@/components/landing/HeroSection";
|
||||
import FeaturesAndStats from "@/components/landing/FeaturesAndStats";
|
||||
import TestimonialsAndCTA from "@/components/landing/TestimonialsAndCTA";
|
||||
import { gsap } from "gsap";
|
||||
import { ScrollTrigger } from "gsap/ScrollTrigger";
|
||||
|
||||
@@ -20,21 +18,6 @@ export default function LandingPageClient() {
|
||||
if (typeof window === "undefined" || !mainRef.current) return;
|
||||
|
||||
const ctx = gsap.context(() => {
|
||||
// Parallax sections
|
||||
const parallaxElements = gsap.utils.toArray<Element>(".parallax-section");
|
||||
parallaxElements.forEach((el) => {
|
||||
gsap.to(el, {
|
||||
y: -50,
|
||||
ease: "none",
|
||||
scrollTrigger: {
|
||||
trigger: el,
|
||||
start: "top bottom",
|
||||
end: "bottom top",
|
||||
scrub: 1,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
// Reveal animations for sections
|
||||
const revealElements = gsap.utils.toArray<Element>(".scroll-reveal");
|
||||
revealElements.forEach((el) => {
|
||||
@@ -62,8 +45,6 @@ export default function LandingPageClient() {
|
||||
return (
|
||||
<div ref={mainRef}>
|
||||
<HeroSection />
|
||||
<FeaturesAndStats />
|
||||
<TestimonialsAndCTA />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user