From 58d2c1ef247885b2afec7d5c8f86908df9e0db94 Mon Sep 17 00:00:00 2001 From: Dhrutinandan Swain Date: Sun, 17 Aug 2025 01:47:31 +0530 Subject: [PATCH] Refactor MissionCard and Navbar components for improved styling and functionality; add Applications page with application process details and links; enhance Timeline component with scroll animations and visual effects; update achievements data and navbar configuration. --- src/components/AchievementCard.jsx | 101 ++++++- src/components/Footer.jsx | 210 ++++++++------ src/components/MissionCard.jsx | 17 +- src/components/Navbar.jsx | 24 +- src/components/Timeline.jsx | 307 ++++++++++++++++----- src/config/achievement.js | 52 +++- src/config/navbarHero.js | 13 +- src/config/teammate.js | 17 -- src/main.jsx | 2 + src/pages/achievements/AchievementPage.jsx | 18 +- src/pages/applications/Applications.jsx | 180 ++++++++++++ 11 files changed, 713 insertions(+), 228 deletions(-) create mode 100644 src/pages/applications/Applications.jsx diff --git a/src/components/AchievementCard.jsx b/src/components/AchievementCard.jsx index 82734e0..89f1b77 100644 --- a/src/components/AchievementCard.jsx +++ b/src/components/AchievementCard.jsx @@ -1,30 +1,105 @@ -import { Calendar } from "lucide-react"; +import { Calendar, Award, TrendingUp } from "lucide-react"; +import { useState, useEffect } from "react"; const AchievementCard = ({ title, description, year, isLeft, index }) => { + const [isVisible, setIsVisible] = useState(false); + const [isHovered, setIsHovered] = useState(false); + + useEffect(() => { + const observer = new IntersectionObserver( + ([entry]) => { + if (entry.isIntersecting) { + setTimeout(() => setIsVisible(true), index * 100); + } + }, + { + threshold: 0.2, + rootMargin: "0px 0px -50px 0px", + }, + ); + + const cardElement = document.querySelector(`[data-card-index="${index}"]`); + if (cardElement) { + observer.observe(cardElement); + } + + return () => observer.disconnect(); + }, [index]); + return (
setIsHovered(true)} + onMouseLeave={() => setIsHovered(false)} > -
-
- - {year} + {/* Animated background gradient */} +
+ + {/* Top accent line with animation */} +
+
+
+ +
+ {/* Year badge with enhanced styling */} +
+
+ + {year} +
+
+ +
-

+ + {/* Title with enhanced typography */} +

{title}

-

{description}

-
+ {/* Description with better spacing */} +

+ {description} +

+ + {/* Enhanced progress bar with icon */} +
+
+
+
+
+
+ +
+
+ + {/* Floating particles effect */} +
+
+
diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index ca85714..da3308a 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -13,104 +13,134 @@ const Footer = ({ year = new Date().getFullYear(), }) => { return ( -