diff --git a/src/app/page.tsx b/src/app/page.tsx index cbb98f9..c1b34c4 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -16,6 +16,7 @@ import software_projects from '@/data/software_projects'; import game_projects from '@/data/game_projects'; import timelineData from '@/data/timeline'; import FloatingChatIcon from '@/components/ChatWindow'; +import GradientBackground from '../components/GradientBackground'; export default function HomePage() { const [showContent, setShowContent] = useState(false); @@ -27,6 +28,7 @@ export default function HomePage() { return ( <> + {!showContent && ( { const [isOpen, setIsOpen] = useState(false); @@ -9,15 +11,34 @@ const FloatingChatIcon: React.FC = () => { return ( <> - - - + + + - + - + diff --git a/src/components/GradientBackground.tsx b/src/components/GradientBackground.tsx new file mode 100644 index 0000000..720190f --- /dev/null +++ b/src/components/GradientBackground.tsx @@ -0,0 +1,44 @@ +import React, { useEffect, useState } from 'react'; +import { Box } from '@mui/material'; + +const GradientBackground: React.FC = () => { + const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 }); + + useEffect(() => { + const handleMouseMove = (e: MouseEvent) => { + setMousePosition({ + x: (e.clientX / window.innerWidth) * 100, + y: (e.clientY / window.innerHeight) * 100, + }); + }; + + window.addEventListener('mousemove', handleMouseMove); + return () => window.removeEventListener('mousemove', handleMouseMove); + }, []); + + return ( + + ); +}; + +export default GradientBackground; \ No newline at end of file