diff --git a/src/app/page.tsx b/src/app/page.tsx index 1a88e05..0e4eb96 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -3,6 +3,9 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple'; import HeroSplitKpi from '@/components/sections/hero/HeroSplitKpi'; +'use client'; + +import { useState, useEffect } from 'react'; import MediaSplitTabsAbout from '@/components/sections/about/MediaSplitTabsAbout'; import ProductCardOne from '@/components/sections/product/ProductCardOne'; import FeatureCardSixteen from '@/components/sections/feature/FeatureCardSixteen'; @@ -13,6 +16,27 @@ import FooterMedia from '@/components/sections/footer/FooterMedia'; import { Sparkles } from 'lucide-react'; export default function LandingPage() { + const [bubbles, setBubbles] = useState([]); + + useEffect(() => { + const handleMouseMove = (e) => { + const newBubble = { + id: Date.now(), + x: e.clientX, + y: e.clientY, + }; + + setBubbles((prev) => [...prev, newBubble]); + + // Remove bubble after animation completes (2 seconds) + setTimeout(() => { + setBubbles((prev) => prev.filter((bubble) => bubble.id !== newBubble.id)); + }, 2000); + }; + + window.addEventListener('mousemove', handleMouseMove); + return () => window.removeEventListener('mousemove', handleMouseMove); + }, []); return ( + {/* Bubble Container */} +
+ {bubbles.map((bubble) => ( +
+ ))} +
+ + +