diff --git a/ui/app/page.tsx b/ui/app/page.tsx index c08f8b3f..497d6e76 100644 --- a/ui/app/page.tsx +++ b/ui/app/page.tsx @@ -1,4 +1,4 @@ -'use client'; +"use client"; import { useState, useEffect, useRef, useCallback } from "react"; @@ -7,41 +7,67 @@ const scriptCategories = [ emoji: "🤖", name: "Automation", description: "Smart scripts that work while you sleep", - scripts: ["Auto Email Sender", "File Organizer", "Backup Scheduler", "File Renamer", "Folder Monitor"], + scripts: [ + "Auto Email Sender", + "File Organizer", + "Backup Scheduler", + "File Renamer", + "Folder Monitor", + ], color: "from-cyan-400 to-blue-600", hoverColor: "hover:from-cyan-500 hover:to-blue-700", - bgPattern: "linear-gradient(45deg, rgba(6,182,212,0.1) 25%, transparent 25%), linear-gradient(-45deg, rgba(6,182,212,0.1) 25%, transparent 25%)", - icon: "⚡" + bgPattern: + "linear-gradient(45deg, rgba(6,182,212,0.1) 25%, transparent 25%), linear-gradient(-45deg, rgba(6,182,212,0.1) 25%, transparent 25%)", + icon: "⚡", }, { emoji: "🧠", name: "Productivity", description: "Focus amplifiers for peak performance", - scripts: ["Pomodoro Timer", "Quote Fetcher", "Reminder System", "Time Tracker", "Todo Manager"], + scripts: [ + "Pomodoro Timer", + "Quote Fetcher", + "Reminder System", + "Time Tracker", + "Todo Manager", + ], color: "from-purple-400 to-pink-600", hoverColor: "hover:from-purple-500 hover:to-pink-700", - bgPattern: "radial-gradient(circle at 20% 50%, rgba(168,85,247,0.1) 0%, transparent 50%)", - icon: "🚀" + bgPattern: + "radial-gradient(circle at 20% 50%, rgba(168,85,247,0.1) 0%, transparent 50%)", + icon: "🚀", }, { emoji: "🌐", name: "Web Scraping", description: "Extract gold from the digital wilderness", - scripts: ["News Fetcher", "Weather Checker", "Web Scraper", "YouTube Downloader"], + scripts: [ + "News Fetcher", + "Weather Checker", + "Web Scraper", + "YouTube Downloader", + ], color: "from-green-400 to-teal-600", hoverColor: "hover:from-green-500 hover:to-teal-700", - bgPattern: "repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(34,197,94,0.1) 2px, rgba(34,197,94,0.1) 4px)", - icon: "🌊" + bgPattern: + "repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(34,197,94,0.1) 2px, rgba(34,197,94,0.1) 4px)", + icon: "🌊", }, { emoji: "⚙️", name: "Utilities", description: "Your digital Swiss Army knife", - scripts: ["Age Calculator", "Currency Converter", "Password Generator", "Unit Converter"], + scripts: [ + "Age Calculator", + "Currency Converter", + "Password Generator", + "Unit Converter", + ], color: "from-orange-400 to-red-600", hoverColor: "hover:from-orange-500 hover:to-red-700", - bgPattern: "conic-gradient(from 0deg, rgba(251,146,60,0.1), rgba(239,68,68,0.1), rgba(251,146,60,0.1))", - icon: "🔧" + bgPattern: + "conic-gradient(from 0deg, rgba(251,146,60,0.1), rgba(239,68,68,0.1), rgba(251,146,60,0.1))", + icon: "🔧", }, { emoji: "📊", @@ -50,8 +76,9 @@ const scriptCategories = [ scripts: ["Data Converter", "Data Processor", "Data Visualizer"], color: "from-indigo-400 to-purple-600", hoverColor: "hover:from-indigo-500 hover:to-purple-700", - bgPattern: "linear-gradient(135deg, rgba(99,102,241,0.1) 0%, rgba(168,85,247,0.1) 100%)", - icon: "📈" + bgPattern: + "linear-gradient(135deg, rgba(99,102,241,0.1) 0%, rgba(168,85,247,0.1) 100%)", + icon: "📈", }, { emoji: "🔐", @@ -60,8 +87,9 @@ const scriptCategories = [ scripts: ["Password Checker"], color: "from-red-400 to-pink-600", hoverColor: "hover:from-red-500 hover:to-pink-700", - bgPattern: "radial-gradient(ellipse at center, rgba(239,68,68,0.1) 0%, transparent 70%)", - icon: "🛡️" + bgPattern: + "radial-gradient(ellipse at center, rgba(239,68,68,0.1) 0%, transparent 70%)", + icon: "🛡️", }, { emoji: "🎵", @@ -70,9 +98,10 @@ const scriptCategories = [ scripts: ["Audio Processor", "Image Processor"], color: "from-yellow-400 to-orange-600", hoverColor: "hover:from-yellow-500 hover:to-orange-700", - bgPattern: "linear-gradient(60deg, rgba(251,191,36,0.1) 25%, transparent 25%), linear-gradient(120deg, rgba(251,191,36,0.1) 25%, transparent 25%)", - icon: "🎨" - } + bgPattern: + "linear-gradient(60deg, rgba(251,191,36,0.1) 25%, transparent 25%), linear-gradient(120deg, rgba(251,191,36,0.1) 25%, transparent 25%)", + icon: "🎨", + }, ]; const terminalCommands = [ @@ -82,7 +111,7 @@ const terminalCommands = [ "python utilities/password_generator.py --length 16 --secure", "python data_tools/data_visualizer.py --input data.csv --chart bar", "python security/password_checker.py --file passwords.txt", - "python media/image_processor.py --resize 1920x1080 --format jpg" + "python media/image_processor.py --resize 1920x1080 --format jpg", ]; const floatingParticles = Array.from({ length: 20 }, (_, i) => ({ @@ -91,7 +120,7 @@ const floatingParticles = Array.from({ length: 20 }, (_, i) => ({ y: Math.random() * 100, size: Math.random() * 4 + 2, speed: Math.random() * 0.3 + 0.1, - opacity: Math.random() * 0.5 + 0.3 + opacity: Math.random() * 0.5 + 0.3, })); export default function Home() { @@ -130,11 +159,13 @@ export default function Home() { // Animate particles useEffect(() => { const animateParticles = () => { - setParticles(prev => prev.map(particle => ({ - ...particle, - y: (particle.y + particle.speed * 0.01) % 100, - x: particle.x + Math.sin(Date.now() * 0.0001 + particle.id) * 0.02 - }))); + setParticles((prev) => + prev.map((particle) => ({ + ...particle, + y: (particle.y + particle.speed * 0.01) % 100, + x: particle.x + Math.sin(Date.now() * 0.0001 + particle.id) * 0.02, + })) + ); }; const interval = setInterval(animateParticles, 2000); @@ -144,14 +175,14 @@ export default function Home() { // Cursor blinking useEffect(() => { const interval = setInterval(() => { - setShowCursor(prev => !prev); + setShowCursor((prev) => !prev); }, 500); return () => clearInterval(interval); }, []); useEffect(() => { setIsLoaded(true); - + const handleScroll = () => { setScrollY(window.scrollY); // Animate stats when scrolled into view @@ -159,17 +190,17 @@ export default function Home() { setStatsAnimated(true); } }; - + const handleMouseMove = (e: MouseEvent) => { setMousePosition({ x: e.clientX, y: e.clientY }); }; - window.addEventListener('scroll', handleScroll); - window.addEventListener('mousemove', handleMouseMove); - + window.addEventListener("scroll", handleScroll); + window.addEventListener("mousemove", handleMouseMove); + return () => { - window.removeEventListener('scroll', handleScroll); - window.removeEventListener('mousemove', handleMouseMove); + window.removeEventListener("scroll", handleScroll); + window.removeEventListener("mousemove", handleMouseMove); }; }, [statsAnimated]); @@ -192,7 +223,11 @@ export default function Home() { const handleTerminalSubmit = (e: React.FormEvent) => { e.preventDefault(); if (terminalInput.trim()) { - setTerminalHistory(prev => [...prev, `$ ${terminalInput}`, "Command executed successfully! ✅"]); + setTerminalHistory((prev) => [ + ...prev, + `$ ${terminalInput}`, + "Command executed successfully! ✅", + ]); setTerminalInput(""); } }; @@ -219,20 +254,22 @@ export default function Home() { width: `${particle.size}px`, height: `${particle.size}px`, opacity: particle.opacity, - transform: `translateY(${scrollY * 0.02}px)` + transform: `translateY(${scrollY * 0.02}px)`, }} /> ))} {/* Enhanced cursor follower with trail effect */} -
- Seven powerful categories of automation tools, each designed to solve specific challenges in your digital workflow. + Seven powerful categories of automation tools, each designed to + solve specific challenges in your digital workflow.
{category.description}
- +- Join the automation revolution. Download, customize, and deploy Python scripts that work 24/7 for you. + Join the automation revolution. Download, customize, and deploy + Python scripts that work 24/7 for you.
- + {/* Interactive feature highlights */}+ +
Automating the future, one Python script at a time.
- -