From 52fa02b40ecbcc3c00f8afdb7d415193a7c6b23b Mon Sep 17 00:00:00 2001 From: Damien Date: Fri, 28 Feb 2025 06:44:42 -0500 Subject: [PATCH] feat: gradiant background --- src/app/page.tsx | 2 ++ src/components/ChatWindow.tsx | 35 ++++++++++++++++----- src/components/GradientBackground.tsx | 44 +++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 src/components/GradientBackground.tsx 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