diff --git a/src/components/Features.tsx b/src/components/Features.tsx index b8b2092..52ded26 100644 --- a/src/components/Features.tsx +++ b/src/components/Features.tsx @@ -6,75 +6,196 @@ const Features = () => { icon: BarChart3, title: 'Activity Analytics', description: 'Comprehensive charts and graphs showing commit patterns, contribution streaks, and repository activity over time.', - bgColor: 'bg-blue-100', - iconColor: 'text-blue-600' + bgColor: 'bg-blue-100 dark:bg-blue-900/30', + iconColor: 'text-blue-600 dark:text-blue-400', + hoverColor: 'hover:bg-blue-50 dark:hover:bg-blue-900/50' }, { icon: Users, title: 'Multi-User Tracking', description: 'Monitor multiple GitHub users simultaneously and compare their activity levels and contribution patterns.', - bgColor: 'bg-green-100', - iconColor: 'text-green-600' + bgColor: 'bg-green-100 dark:bg-green-900/30', + iconColor: 'text-green-600 dark:text-green-400', + hoverColor: 'hover:bg-green-50 dark:hover:bg-green-900/50' }, { icon: Search, title: 'Smart Search', description: 'Quickly find and add users to your tracking list with intelligent search and auto-suggestions.', - bgColor: 'bg-purple-100', - iconColor: 'text-purple-600' + bgColor: 'bg-purple-100 dark:bg-purple-900/30', + iconColor: 'text-purple-600 dark:text-purple-400', + hoverColor: 'hover:bg-purple-50 dark:hover:bg-purple-900/50' }, { icon: Zap, title: 'Real-time Updates', description: 'Get instant notifications and updates when tracked users make new contributions or repositories.', - bgColor: 'bg-orange-100', - iconColor: 'text-orange-600' + bgColor: 'bg-orange-100 dark:bg-orange-900/30', + iconColor: 'text-orange-600 dark:text-orange-400', + hoverColor: 'hover:bg-orange-50 dark:hover:bg-orange-900/50' }, { icon: Shield, title: 'Privacy First', description: 'All data is fetched from public GitHub APIs. We don\'t store personal information or require GitHub access.', - bgColor: 'bg-red-100', - iconColor: 'text-red-600' + bgColor: 'bg-red-100 dark:bg-red-900/30', + iconColor: 'text-red-600 dark:text-red-400', + hoverColor: 'hover:bg-red-50 dark:hover:bg-red-900/50' }, { icon: Globe, title: 'Export & Share', description: 'Export activity reports and share insights with your team through various formats and integrations.', - bgColor: 'bg-indigo-100', - iconColor: 'text-indigo-600' + bgColor: 'bg-indigo-100 dark:bg-indigo-900/30', + iconColor: 'text-indigo-600 dark:text-indigo-400', + hoverColor: 'hover:bg-indigo-50 dark:hover:bg-indigo-900/50' } ]; + // Duplicate features array for seamless loop + const duplicatedFeatures = [...features, ...features]; + return ( -
-
-
-

Powerful Features

-

- Everything you need to track, analyze, and understand GitHub activity patterns -

-
+ <> + + +
+
+ {/* Section Header */} +
+

+ + Powerful Features + +

+

+ Everything you need to track, analyze, and understand GitHub activity patterns with advanced insights and real-time monitoring +

+
+ + {/* Marquee Container */} +
+ {/* Marquee Track */} +
+ {duplicatedFeatures.map((feature, index) => { + const IconComponent = feature.icon; + return ( +
+ {/* Shimmer effect overlay */} +
+ + {/* Content */} +
+ {/* Icon container with enhanced styling */} +
+ +
+ + {/* Title with gradient on hover */} +

+ {feature.title} +

+ + {/* Description */} +

+ {feature.description} +

+
+ + {/* Decorative corner accent */} +
+ + {/* Bottom accent line */} +
+
+ ); + })} +
+
+ -
- {features.map((feature, index) => { - const IconComponent = feature.icon; - return ( -
-
- -
-

{feature.title}

-

- {feature.description} -

-
- ); - })}
-
-
+ + {/* Background decorative elements */} +
+
+
+ ); }; -export default Features; +export default Features; \ No newline at end of file diff --git a/src/components/Hero.tsx b/src/components/Hero.tsx index 1549f8e..a76594c 100644 --- a/src/components/Hero.tsx +++ b/src/components/Hero.tsx @@ -1,34 +1,204 @@ import { Search } from 'lucide-react'; -import { Link } from 'react-router-dom'; +import { useState, useEffect } from 'react'; const Hero = () => { + const [displayText, setDisplayText] = useState(''); + const [showSecondLine, setShowSecondLine] = useState(false); + const [currentIndex, setCurrentIndex] = useState(0); + const fullText = 'Track GitHub Activity'; + + useEffect(() => { + if (currentIndex < fullText.length) { + const timer = setTimeout(() => { + setDisplayText(prev => prev + fullText[currentIndex]); + setCurrentIndex(prev => prev + 1); + }, 100); + return () => clearTimeout(timer); + } else { + // Show second line after first line is complete + const timer = setTimeout(() => { + setShowSecondLine(true); + }, 500); + return () => clearTimeout(timer); + } + }, [currentIndex, fullText]); + return ( -
-
-
-

- Track GitHub Activity - Like Never Before -

-

- Monitor and analyze GitHub user activity with powerful insights. Perfect for developers, - project managers, and teams who want to understand contribution patterns and repository engagement. -

-
- - {/* - */} + <> + + +
+ {/* Animated background blobs */} +
+
+
+
+
+ + {/* Floating particles */} +
+
+
+
+
+
+ +
+
+

+
+ + {displayText} + | + +
+
+ + Like Never Before + +
+

+ +
+

+ Monitor and analyze GitHub user activity with powerful insights. Perfect for developers, + project managers, and teams who want to understand contribution patterns and repository engagement. +

+
+ +
+ + + {/* Demo button (commented out in original, styled for completeness) */} + +
-
-
+ + {/* Additional decorative elements */} +
+
+ + {/* Grid pattern overlay */} +
+
+
+ + ); }; -export default Hero; +export default Hero; \ No newline at end of file diff --git a/src/components/HowItWorks.tsx b/src/components/HowItWorks.tsx index 8abf1e1..fd51eb2 100644 --- a/src/components/HowItWorks.tsx +++ b/src/components/HowItWorks.tsx @@ -1,49 +1,186 @@ +import { Search, BarChart3, TrendingUp, ArrowRight } from 'lucide-react'; +import { useState } from 'react'; const HowItWorks = () => { + const [activeStep, setActiveStep] = useState(0); + const steps = [ { number: 1, title: 'Search Users', - description: 'Enter GitHub usernames or search for users by name. Add them to your tracking dashboard.' + description: 'Enter GitHub usernames or search for users by name. Add them to your tracking dashboard with intelligent auto-suggestions.', + icon: Search, + blueShade: 'from-blue-400 to-blue-600', + bgColor: 'bg-blue-50 dark:bg-blue-950/30', + borderColor: 'border-blue-200 dark:border-blue-800', + hoverBorderColor: 'hover:border-blue-300 dark:hover:border-blue-700' }, { number: 2, title: 'Monitor Activity', - description: 'Watch insights of commits, pull requests, issues, and other GitHub activities.' + description: 'Watch real-time insights of commits, pull requests, issues, and other GitHub activities with comprehensive analytics.', + icon: BarChart3, + blueShade: 'from-blue-500 to-blue-700', + bgColor: 'bg-blue-50 dark:bg-blue-950/30', + borderColor: 'border-blue-200 dark:border-blue-800', + hoverBorderColor: 'hover:border-blue-300 dark:hover:border-blue-700' }, { number: 3, title: 'Analyze Insights', - description: 'Review detailed analytics, export reports, and gain valuable insights into development patterns.' + description: 'Review detailed analytics, export comprehensive reports, and gain valuable insights into development patterns and trends.', + icon: TrendingUp, + blueShade: 'from-blue-600 to-blue-800', + bgColor: 'bg-blue-50 dark:bg-blue-950/30', + borderColor: 'border-blue-200 dark:border-blue-800', + hoverBorderColor: 'hover:border-blue-300 dark:hover:border-blue-700' } ]; return ( -
-
-
-

How It Works

-

- Get started in minutes with our simple three-step process +

+ + {/* Subtle background decoration */} +
+
+
+
+ +
+ {/* Header */} +
+

+ + How It Works + +

+

+ Get started in minutes with our intuitive three-step process designed for developers and teams

-
- {steps.map((step, index) => ( -
-
- {step.number} + {/* Desktop Layout */} +
+
+ {/* Connection Lines */} +
+
+
+
-

{step.title}

-

- {step.description} -

- ))} + + {/* Steps */} +
+ {steps.map((step, index) => { + const IconComponent = step.icon; + return ( +
setActiveStep(index)} + > + {/* Card */} +
+ + {/* Icon Container */} +
+
+ +
+
+ {step.number} +
+
+ + {/* Content */} +
+

+ {step.title} +

+

+ {step.description} +

+
+ + {/* Subtle decorative elements */} +
+ + {/* Bottom accent */} +
+
+ + {/* Arrow connector */} + {index < steps.length - 1 && ( +
+
+ +
+
+ )} +
+ ); + })} +
+
+
+ + {/* Mobile Layout */} +
+ {steps.map((step, index) => { + const IconComponent = step.icon; + return ( +
+ {/* Step Card */} +
+
+ {/* Icon */} +
+
+ +
+ {step.number} +
+
+
+ + {/* Content */} +
+

+ {step.title} +

+

+ {step.description} +

+
+
+
+ + {/* Mobile connector */} + {index < steps.length - 1 && ( +
+
+
+ )} +
+ ); + })} +
+ + {/* Bottom CTA */} +
+
+ Ready to get started? + +
); }; -export default HowItWorks; +export default HowItWorks; \ No newline at end of file