diff --git a/frontend/public/Feature_images/Contribution_Analytics.png b/frontend/public/Feature_images/Contribution_Analytics.png new file mode 100644 index 0000000..81c9359 Binary files /dev/null and b/frontend/public/Feature_images/Contribution_Analytics.png differ diff --git a/frontend/public/Feature_images/Github_README_AI.png b/frontend/public/Feature_images/Github_README_AI.png index bab984f..4787cfb 100644 Binary files a/frontend/public/Feature_images/Github_README_AI.png and b/frontend/public/Feature_images/Github_README_AI.png differ diff --git a/frontend/public/Feature_images/Smart Notifications.png b/frontend/public/Feature_images/Smart Notifications.png new file mode 100644 index 0000000..f4d8392 Binary files /dev/null and b/frontend/public/Feature_images/Smart Notifications.png differ diff --git a/frontend/src/components/ui/Logo.jsx b/frontend/src/components/ui/Logo.jsx index 847b8a5..ba2f8ce 100644 --- a/frontend/src/components/ui/Logo.jsx +++ b/frontend/src/components/ui/Logo.jsx @@ -60,9 +60,9 @@ const Logo = ({ text: 'text-foreground' }, auth: { - container: 'bg-white/90 dark:bg-gray-800/90 border border-gray-200 dark:border-gray-600 rounded-xl shadow-lg backdrop-blur-sm', - icon: 'text-blue-600 dark:text-blue-400', - text: 'text-gray-900 dark:text-white font-bold' + container: 'bg-neutral-50 dark:bg-neutral-800/30 border border-neutral-200 dark:border-neutral-700 rounded-lg', + icon: 'text-neutral-600 dark:text-neutral-400', + text: 'text-neutral-900 dark:text-neutral-100' } } diff --git a/frontend/src/components/ui/ScrollytellingFeatureShowcase.jsx b/frontend/src/components/ui/ScrollytellingFeatureShowcase.jsx index 937dba1..d9ee07f 100644 --- a/frontend/src/components/ui/ScrollytellingFeatureShowcase.jsx +++ b/frontend/src/components/ui/ScrollytellingFeatureShowcase.jsx @@ -11,16 +11,18 @@ const ScrollytellingFeatureShowcase = forwardRef(({ features, title, subtitle }, const scrollTimeout = useRef(null) const isContinuousScrolling = useRef(false) - // Map features to their corresponding images (updated order after removing Contribution Analytics & Smart Notifications) + // Map features to their corresponding images (exact order from LandingPage.jsx) const getFeatureImage = (index) => { const imageMap = { 0: '/Feature_images/Auto_Commit_AI_Scheduling.png', // Auto Commit AI Scheduling ✅ 1: '/Feature_images/Multi-Repository_Github_Tools.png', // Multi-Repository GitHub Tools ✅ 2: '/Feature_images/Github_README_AI.png', // GitHub README AI ✅ - 3: '/Feature_images/Enterprise_Security.png', // Enterprise Security ✅ - 4: '/Feature_images/Goal_Tracking.png', // Goal Tracking ✅ - 5: '/Feature_images/Analytics_Dashboard.png', // Analytics Dashboard ✅ - 6: '/Feature_images/README_Generation.png', // README Generation ✅ + 3: '/Feature_images/Contribution_Analytics.png', // Contribution Analytics ✅ + 4: '/Feature_images/Enterprise_Security.png', // Enterprise Security ✅ + 5: '/Feature_images/Goal_Tracking.png', // Goal Tracking ✅ + 6: '/Feature_images/Analytics_Dashboard.png', // Analytics Dashboard ✅ + 7: '/Feature_images/Smart Notifications.png', // Smart Notifications ✅ + 8: '/Feature_images/README_Generation.png', // README Generation ✅ } return imageMap[index] || '/Feature_images/Analytics_Dashboard.png' // Default fallback } diff --git a/frontend/src/pages/LandingPage.jsx b/frontend/src/pages/LandingPage.jsx index f7687ad..3db70c9 100644 --- a/frontend/src/pages/LandingPage.jsx +++ b/frontend/src/pages/LandingPage.jsx @@ -72,7 +72,12 @@ const LandingPage = () => { description: "Create stunning GitHub profile READMEs with our advanced GitHub README AI. The best README AI generator for professional GitHub profiles.", color: "from-amber-500 to-orange-500" }, - + { + icon: Activity, + title: "Contribution Analytics", + description: "Track your coding consistency with beautiful visualizations and insights that help you stay motivated.", + color: "from-green-500 to-emerald-500" + }, { icon: Shield, title: "Enterprise Security", @@ -91,7 +96,12 @@ const LandingPage = () => { description: "Get detailed insights into your coding patterns, streak statistics, and productivity trends with charts.", color: "from-teal-500 to-cyan-500" }, - + { + icon: Mail, + title: "Smart Notifications", + description: "Receive intelligent email alerts about your streaks, achievements, and important repository updates.", + color: "from-orange-500 to-red-500" + }, { icon: FileText, title: "README Generation", diff --git a/frontend/src/pages/SignInPage.jsx b/frontend/src/pages/SignInPage.jsx index 6f2abd5..fdd3746 100644 --- a/frontend/src/pages/SignInPage.jsx +++ b/frontend/src/pages/SignInPage.jsx @@ -68,78 +68,60 @@ const SignInPage = () => { fontFamily: '"Inter", "Poppins", sans-serif', }, elements: { - // Main card styling - card: 'shadow-none border-0 bg-transparent', + formButtonPrimary: 'bg-indigo-600 hover:bg-indigo-700 text-white font-medium py-2.5 px-4 rounded-md transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm hover:shadow-md', + card: 'shadow-none border-0', headerTitle: 'hidden', headerSubtitle: 'hidden', - - // Primary button (Continue/Sign In) - Better mobile sizing - formButtonPrimary: 'bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-700 hover:to-indigo-700 text-white font-semibold py-3 sm:py-4 px-6 sm:px-8 rounded-lg sm:rounded-xl transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 shadow-lg hover:shadow-xl transform hover:-translate-y-0.5 w-full text-base sm:text-lg', - - // Social buttons (GitHub, Google, etc.) - Better mobile sizing socialButtonsBlockButton: - 'border-2 border-gray-200 dark:border-gray-600 hover:border-blue-300 dark:hover:border-blue-500 hover:bg-blue-50 dark:hover:bg-blue-900/20 rounded-lg sm:rounded-xl transition-all duration-300 hover:shadow-md py-3 sm:py-4 px-4 w-full', - socialButtonsBlockButtonText: 'text-gray-700 dark:text-gray-300 font-medium', - - // Form inputs - Better mobile sizing + 'border border-slate-300 dark:border-slate-600 hover:bg-slate-50 dark:hover:bg-slate-700 rounded-md transition-all duration-200 hover:shadow-sm', + socialButtonsBlockButtonText: 'text-slate-600 dark:text-slate-300 font-medium', formFieldInput: - 'border-2 border-gray-200 dark:border-gray-600 dark:bg-gray-700/50 dark:text-white placeholder-gray-400 dark:placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 rounded-lg sm:rounded-xl transition-all duration-200 py-3 sm:py-4 px-3 sm:px-4 text-base w-full', - formFieldLabel: 'text-gray-700 dark:text-gray-300 font-semibold text-sm sm:text-base mb-2', - - // Links and text - footerActionLink: 'text-blue-600 dark:text-blue-400 hover:text-blue-700 dark:hover:text-blue-300 font-semibold transition-colors duration-200', - - // Divider - dividerLine: 'bg-gray-200 dark:bg-gray-600', - dividerText: 'text-gray-500 dark:text-gray-400 text-sm font-medium', - - // OTP/Verification inputs + 'border-slate-300 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-100 placeholder-slate-400 dark:placeholder-slate-400 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 rounded-md transition-colors duration-200', + formFieldLabel: 'text-slate-700 dark:text-slate-300 font-medium text-sm', + footerActionLink: 'text-indigo-600 hover:text-indigo-700 font-medium transition-colors duration-200', + dividerLine: 'bg-slate-200 dark:bg-slate-700', + dividerText: 'text-slate-500 dark:text-slate-400 text-sm', + // Specific styling for OTP inputs to prevent disappearing otpCodeFieldInput: - 'border-2 border-gray-200 dark:border-gray-600 dark:bg-gray-700/50 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-center font-mono rounded-xl', - verificationCodeField: 'space-x-3', + 'border-slate-300 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-100 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 text-center font-mono rounded-md', + verificationCodeField: 'space-x-2', verificationCodeFieldInput: - 'w-14 h-14 text-center border-2 border-gray-200 dark:border-gray-600 dark:bg-gray-700/50 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-blue-500 font-mono text-xl rounded-xl transition-all duration-200', - - // Hide Clerk branding - footer: 'hidden', - footerAction: 'hidden', - footerActionText: 'hidden', - footerActionLink: 'hidden', + 'w-12 h-12 text-center border-slate-300 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-100 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 font-mono text-lg rounded-md', }, }), [isDark]) - // Mobile Design - const MobileDesign = () => ( -
- {/* Mobile Header */} -
-
-
- -
-
-

- Welcome back -

-

- Sign in to continue -

+ return ( +
+ {/* Background decoration */} +
+
+
+
+
+ +
- {/* Mobile Auth Card */} -
- {/* Handle bar */} -
+
+

+ Welcome back +

+

+ Sign in to your account to continue automating your GitHub commits +

+
+
-
+
+
{clerkError ? (
-
+

{clerkError}

@@ -147,29 +129,7 @@ const SignInPage = () => { ) : ( { )}
- - {/* Mobile Footer */} -
-

- Don't have an account?{' '} - - Sign up - -

-
-
-
- ) - - // Desktop Design - const DesktopDesign = () => ( -
- {/* Enhanced Background Effects */} -
- {/* Primary gradient orbs */} -
-
- - {/* Grid pattern */} -
-
- - {/* Main Container */} -
- {/* Logo Section */} -
-
- -
-

- Welcome back -

-

- Sign in to your account to continue automating your GitHub commits -

-
- - {/* Auth Card */} -
- {/* Card glow effect */} -
- -
- {clerkError ? ( -
-
-

{clerkError}

-
- -
- ) : ( - - - - )} -
-
- - {/* Desktop Footer */} -
-

- Don't have an account?{' '} - - Sign up for free - -

-
- Secure - - Reliable - - Fast -
-
) - - return ( - <> - {/* Mobile Design - Hidden on SM and up */} -
- -
- - {/* Desktop Design - Hidden on mobile */} -
- -
- - ) } export default SignInPage diff --git a/frontend/src/pages/SignUpPage.jsx b/frontend/src/pages/SignUpPage.jsx index 2ef46f0..788b617 100644 --- a/frontend/src/pages/SignUpPage.jsx +++ b/frontend/src/pages/SignUpPage.jsx @@ -68,78 +68,59 @@ const SignUpPage = () => { fontFamily: '"Inter", "Poppins", sans-serif', }, elements: { - // Main card styling - card: 'shadow-none border-0 bg-transparent', + formButtonPrimary: 'bg-indigo-600 hover:bg-indigo-700 text-white font-medium py-2.5 px-4 rounded-md transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 shadow-sm hover:shadow-md', + card: 'shadow-none border-0', headerTitle: 'hidden', headerSubtitle: 'hidden', - - // Primary button (Continue/Sign Up) - Better mobile sizing - formButtonPrimary: 'bg-gradient-to-r from-green-600 to-blue-600 hover:from-green-700 hover:to-blue-700 text-white font-semibold py-3 sm:py-4 px-6 sm:px-8 rounded-lg sm:rounded-xl transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-green-500 focus:ring-offset-2 shadow-lg hover:shadow-xl transform hover:-translate-y-0.5 w-full text-base sm:text-lg', - - // Social buttons (GitHub, Google, etc.) - Better mobile sizing socialButtonsBlockButton: - 'border-2 border-gray-200 dark:border-gray-600 hover:border-green-300 dark:hover:border-green-500 hover:bg-green-50 dark:hover:bg-green-900/20 rounded-lg sm:rounded-xl transition-all duration-300 hover:shadow-md py-3 sm:py-4 px-4 w-full', - socialButtonsBlockButtonText: 'text-gray-700 dark:text-gray-300 font-medium', - - // Form inputs - Better mobile sizing + 'border border-slate-300 dark:border-slate-600 hover:bg-slate-50 dark:hover:bg-slate-700 rounded-md transition-all duration-200 hover:shadow-sm', + socialButtonsBlockButtonText: 'text-slate-600 dark:text-slate-300 font-medium', formFieldInput: - 'border-2 border-gray-200 dark:border-gray-600 dark:bg-gray-700/50 dark:text-white placeholder-gray-400 dark:placeholder-gray-400 focus:ring-2 focus:ring-green-500 focus:border-green-500 rounded-lg sm:rounded-xl transition-all duration-200 py-3 sm:py-4 px-3 sm:px-4 text-base w-full', - formFieldLabel: 'text-gray-700 dark:text-gray-300 font-semibold text-sm sm:text-base mb-2', - - // Links and text - footerActionLink: 'text-green-600 dark:text-green-400 hover:text-green-700 dark:hover:text-green-300 font-semibold transition-colors duration-200', - - // Divider - dividerLine: 'bg-gray-200 dark:bg-gray-600', - dividerText: 'text-gray-500 dark:text-gray-400 text-sm font-medium', - - // OTP/Verification inputs + 'border-slate-300 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-100 placeholder-slate-400 dark:placeholder-slate-400 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 rounded-md transition-colors duration-200', + formFieldLabel: 'text-slate-700 dark:text-slate-300 font-medium text-sm', + footerActionLink: 'text-indigo-600 hover:text-indigo-700 font-medium transition-colors duration-200', + dividerLine: 'bg-slate-200 dark:bg-slate-700', + dividerText: 'text-slate-500 dark:text-slate-400 text-sm', otpCodeFieldInput: - 'border-2 border-gray-200 dark:border-gray-600 dark:bg-gray-700/50 dark:text-white focus:ring-2 focus:ring-green-500 focus:border-green-500 text-center font-mono rounded-xl', - verificationCodeField: 'space-x-3', + 'border-slate-300 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-100 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 text-center font-mono rounded-md', + verificationCodeField: 'space-x-2', verificationCodeFieldInput: - 'w-14 h-14 text-center border-2 border-gray-200 dark:border-gray-600 dark:bg-gray-700/50 dark:text-white focus:ring-2 focus:ring-green-500 focus:border-green-500 font-mono text-xl rounded-xl transition-all duration-200', - - // Hide Clerk branding - footer: 'hidden', - footerAction: 'hidden', - footerActionText: 'hidden', - footerActionLink: 'hidden', + 'w-12 h-12 text-center border-slate-300 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-100 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 font-mono text-lg rounded-md', }, }), [isDark]) - // Mobile Design - const MobileDesign = () => ( -
- {/* Mobile Header */} -
-
-
- -
-
-

- Create account -

-

- Start your free trial today -

+ return ( +
+ {/* Background decoration */} +
+
+
+
+
+ +
- {/* Mobile Auth Card */} -
- {/* Handle bar */} -
+
+

+ Create your account +

+

+ Start automating your GitHub commits today - it's free! +

+
+
-
+
+
{clerkError ? (
-
+

{clerkError}

@@ -147,29 +128,7 @@ const SignUpPage = () => { ) : ( { )}
- - {/* Mobile Footer */} -
-

- Already have an account?{' '} - - Sign in - -

-
-
-
- ) - - // Desktop Design - const DesktopDesign = () => ( -
- {/* Enhanced Background Effects */} -
- {/* Primary gradient orbs */} -
-
- - {/* Grid pattern */} -
-
- - {/* Main Container */} -
- {/* Logo Section */} -
-
- -
-

- Create your account -

-

- Start automating your GitHub commits today - it's free! -

-
- - {/* Auth Card */} -
- {/* Card glow effect */} -
- -
- {clerkError ? ( -
-
-

{clerkError}

-
- -
- ) : ( - - - - )} -
-
- - {/* Desktop Footer */} -
-

- Already have an account?{' '} - - Sign in here - -

-
- Free Trial - - No Credit Card - - Cancel Anytime -
-
) - - return ( - <> - {/* Mobile Design - Hidden on SM and up */} -
- -
- - {/* Desktop Design - Hidden on mobile */} -
- -
- - ) } export default SignUpPage