-
Notifications
You must be signed in to change notification settings - Fork 171
Improve About Us Page UI/UX and Theme Consistency #418
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
yuvraj-k-singh
wants to merge
2
commits into
GitMetricsLab:main
Choose a base branch
from
yuvraj-k-singh:improve/contact-us
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,87 +1,227 @@ | ||
| import React from "react"; | ||
| import { motion } from "framer-motion"; | ||
| import { Lightbulb, Users, Settings, Search } from "lucide-react"; | ||
| import { Lightbulb, Users, Settings, Search, ArrowRight, ExternalLink } from "lucide-react"; | ||
|
|
||
| const features = [ | ||
| interface Feature { | ||
| icon: React.ReactNode; | ||
| title: string; | ||
| description: string; | ||
| } | ||
|
|
||
| interface Stat { | ||
| value: string; | ||
| label: string; | ||
| } | ||
|
|
||
| const features: Feature[] = [ | ||
| { | ||
| icon: <Search size={40} className="text-indigo-600 dark:text-indigo-400" />, | ||
| icon: <Search size={26} className="text-blue-600 dark:text-blue-400" />, | ||
| title: "Simple Issue Tracking", | ||
| description: "Track your GitHub issues seamlessly with intuitive filters and search options.", | ||
| description: "Track your GitHub issues seamlessly with intuitive filters, global search parameters, and structural clarity.", | ||
| }, | ||
| { | ||
| icon: <Users size={40} className="text-indigo-600 dark:text-indigo-400" />, | ||
| icon: <Users size={26} className="text-blue-600 dark:text-blue-400" />, | ||
| title: "Team Collaboration", | ||
| description: "Collaborate with your team in real-time, manage issues and pull requests effectively.", | ||
| description: "Collaborate with your product team in real-time. Assign issues, manage pipelines, and merge pull requests natively.", | ||
| }, | ||
| { | ||
| icon: <Settings size={40} className="text-indigo-600 dark:text-indigo-400" />, | ||
| icon: <Settings size={26} className="text-blue-600 dark:text-blue-400" />, | ||
| title: "Customizable Settings", | ||
| description: "Customize your issue tracking workflow to match your team's needs.", | ||
| description: "Tailor your issue boards, automation loops, and priority workflows to map exactly to your team's lifecycle.", | ||
| }, | ||
| ]; | ||
|
|
||
| const About = () => { | ||
| const stats: Stat[] = [ | ||
| { value: "99.9%", label: "Uptime SLA" }, | ||
| { value: "10x", label: "Faster Issue Triaging" }, | ||
| { value: "24/7", label: "Automated Webhooks" }, | ||
| { value: "0ms", label: "Stale State Desync" }, | ||
| ]; | ||
|
|
||
| const About: React.FC = () => { | ||
|
|
||
| // Functional navigation handlers to address CodeRabbit's interactive requirements | ||
| const handleGetStarted = (): void => { | ||
| // Navigates directly to your tracking dashboard app context window route | ||
| window.location.href = "/tracker"; | ||
| }; | ||
|
|
||
| const handleViewRepository = (): void => { | ||
| // Opens the repository landing window instantly in a secure sandbox tab | ||
| window.open( | ||
| "https://github.com", // Replace with your exact project URL if needed | ||
| "_blank", | ||
| "noopener,noreferrer" | ||
| ); | ||
| }; | ||
|
|
||
| return ( | ||
| <div className="bg-gradient-to-br from-white to-gray-100 dark:from-gray-900 dark:to-gray-800 text-black dark:text-white min-h-screen"> | ||
| <div className="w-full bg-slate-50 dark:bg-slate-950 text-slate-900 dark:text-slate-100 min-h-screen font-sans overflow-x-hidden selection:bg-blue-500/20 transition-colors duration-200"> | ||
|
|
||
| {/* Hero Section */} | ||
| <section className="py-24 text-center relative overflow-hidden"> | ||
| <motion.h1 | ||
| className="text-5xl font-extrabold mb-4 drop-shadow-sm" | ||
| initial={{ opacity: 0, y: -20 }} | ||
| animate={{ opacity: 1, y: 0 }} | ||
| transition={{ duration: 0.6 }} | ||
| > | ||
| About Us | ||
| </motion.h1> | ||
| <motion.p | ||
| className="text-xl max-w-xl mx-auto text-gray-600 dark:text-gray-300" | ||
| initial={{ opacity: 0 }} | ||
| animate={{ opacity: 1 }} | ||
| transition={{ delay: 0.2, duration: 0.6 }} | ||
| > | ||
| Welcome to <strong>GitHub Tracker</strong> — your smart solution to manage GitHub issues without chaos. | ||
| </motion.p> | ||
| </section> | ||
| {/* 🌌 1. Enhanced Full-Width Hero Section */} | ||
| <section className="relative w-full py-32 md:py-40 text-center px-4 overflow-hidden border-b border-slate-200/60 dark:border-slate-800/50 bg-white dark:bg-slate-950 flex flex-col items-center justify-center"> | ||
| <div className="absolute inset-0 w-full h-full bg-[linear-gradient(to_right,#8080800a_1px,transparent_1px),linear-gradient(to_bottom,#8080800a_1px,transparent_1px)] bg-[size:24px_24px] [mask-image:linear-gradient(to_bottom,black_60%,transparent_100%)] pointer-events-none" /> | ||
| <div className="absolute top-0 left-1/2 -translate-x-1/2 w-[600px] md:w-[800px] h-[450px] bg-blue-500/10 dark:bg-blue-500/5 blur-[140px] rounded-full pointer-events-none" /> | ||
|
|
||
| {/* Mission Section */} | ||
| <section className="py-20 px-6 bg-white dark:bg-gray-900 text-center"> | ||
| <motion.div | ||
| initial={{ opacity: 0, y: 10 }} | ||
| whileInView={{ opacity: 1, y: 0 }} | ||
| transition={{ duration: 0.5 }} | ||
| > | ||
| <Lightbulb size={48} className="mx-auto text-indigo-600 dark:text-indigo-400 mb-4" /> | ||
| <h2 className="text-4xl font-bold mb-6">Our Mission</h2> | ||
| <p className="text-lg max-w-3xl mx-auto text-gray-700 dark:text-gray-300 leading-relaxed"> | ||
| We aim to provide an efficient and user-friendly way to track GitHub issues and pull requests. | ||
| Our goal is to make it easy for developers to stay organized and focused on their projects | ||
| without getting bogged down by the details. | ||
| </p> | ||
| </motion.div> | ||
| <div className="relative w-full max-w-7xl mx-auto space-y-8 px-4 sm:px-6 lg:px-8 z-10"> | ||
| <motion.span | ||
| className="inline-flex items-center gap-1.5 px-3 py-1 text-xs font-semibold tracking-wider text-blue-700 dark:text-blue-400 uppercase bg-blue-50 dark:bg-blue-950/40 border border-blue-200/30 dark:border-blue-900/40 rounded-full shadow-sm" | ||
| initial={{ opacity: 0, y: -10 }} | ||
| animate={{ opacity: 1, y: 0 }} | ||
| transition={{ duration: 0.4 }} | ||
| > | ||
| Our Identity | ||
| </motion.span> | ||
|
|
||
| <motion.h1 | ||
| className="text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-black tracking-tight text-slate-900 dark:text-white leading-[1.1] sm:leading-none max-w-5xl mx-auto bg-clip-text text-transparent bg-gradient-to-b from-slate-900 via-slate-950 to-slate-700 dark:from-white dark:via-white dark:to-slate-400" | ||
| initial={{ opacity: 0, y: 15 }} | ||
| animate={{ opacity: 1, y: 0 }} | ||
| transition={{ duration: 0.5, delay: 0.1 }} | ||
| > | ||
| Engineered to Solve <br className="hidden sm:inline" /> Development Chaos | ||
| </motion.h1> | ||
|
|
||
| <motion.p | ||
| className="text-lg md:text-xl max-w-3xl mx-auto text-slate-600 dark:text-slate-400 font-normal leading-relaxed md:leading-loose" | ||
| initial={{ opacity: 0 }} | ||
| animate={{ opacity: 1 }} | ||
| transition={{ delay: 0.3, duration: 0.6 }} | ||
| > | ||
| Welcome to <strong className="text-blue-600 dark:text-blue-400 font-semibold tracking-wide">GitHub Tracker</strong>. We build elegant orchestration layers that sit directly on top of your standard technical workflows. | ||
| </motion.p> | ||
| </div> | ||
| </section> | ||
|
|
||
| {/* Features Section */} | ||
| <section className="py-24 px-6 bg-gray-50 dark:bg-gray-950"> | ||
| <h2 className="text-4xl font-bold text-center mb-12">What We Do</h2> | ||
| <div className="grid grid-cols-1 md:grid-cols-3 gap-10 max-w-6xl mx-auto"> | ||
| {features.map((feature, idx) => ( | ||
| <motion.div | ||
| {/* 📊 2. High-Density Metrics / Performance Strip Section */} | ||
| <section className="w-full bg-white dark:bg-slate-950 border-b border-slate-100 dark:border-slate-900/60 py-16 px-4"> | ||
| <div className="max-w-7xl mx-auto grid grid-cols-2 md:grid-cols-4 gap-8 text-center"> | ||
| {stats.map((stat, idx) => ( | ||
| <motion.div | ||
| key={idx} | ||
| className="p-8 bg-white dark:bg-gray-800 shadow-lg rounded-2xl hover:shadow-xl transition duration-300 text-center border border-gray-100 dark:border-gray-700" | ||
| whileHover={{ scale: 1.05 }} | ||
| initial={{ opacity: 0, y: 30 }} | ||
| whileInView={{ opacity: 1, y: 0 }} | ||
| transition={{ delay: idx * 0.2, duration: 0.6 }} | ||
| initial={{ opacity: 0, scale: 0.95 }} | ||
| whileInView={{ opacity: 1, scale: 1 }} | ||
| viewport={{ once: true }} | ||
| transition={{ delay: idx * 0.05, duration: 0.4 }} | ||
| className="space-y-2" | ||
| > | ||
| <div className="mb-4">{feature.icon}</div> | ||
| <h3 className="text-xl font-semibold mb-2">{feature.title}</h3> | ||
| <p className="text-gray-600 dark:text-gray-300">{feature.description}</p> | ||
| <h4 className="text-3xl md:text-4xl font-extrabold text-blue-600 dark:text-blue-500 tracking-tight">{stat.value}</h4> | ||
| <p className="text-xs md:text-sm text-slate-500 dark:text-slate-400 font-medium uppercase tracking-wider">{stat.label}</p> | ||
| </motion.div> | ||
| ))} | ||
| </div> | ||
| </section> | ||
|
|
||
| {/* 🎯 3. Asymmetrical Mission Section */} | ||
| <section className="w-full py-24 px-4 sm:px-6 lg:px-8 bg-slate-50/30 dark:bg-slate-950"> | ||
| <div className="max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-12 gap-12 items-center"> | ||
| <motion.div | ||
| className="lg:col-span-5 space-y-4" | ||
| initial={{ opacity: 0, x: -30 }} | ||
| whileInView={{ opacity: 1, x: 0 }} | ||
| viewport={{ once: true, margin: "-100px" }} | ||
| transition={{ duration: 0.6 }} | ||
| > | ||
| <div className="w-12 h-12 min-w-[48px] min-h-[48px] bg-gradient-to-tr from-blue-600 to-sky-400 rounded-xl flex items-center justify-center shadow-lg shadow-blue-500/20 dark:shadow-blue-500/10 mb-2"> | ||
| <Lightbulb size={22} className="text-white" /> | ||
| </div> | ||
| <h2 className="text-3xl md:text-4xl font-extrabold text-slate-900 dark:text-white tracking-tight"> | ||
| Our Continuous Mission | ||
| </h2> | ||
| <div className="h-1 w-20 bg-blue-600 dark:bg-blue-500 rounded-full" /> | ||
| </motion.div> | ||
|
|
||
| <motion.div | ||
| className="lg:col-span-7 p-8 sm:p-10 bg-white dark:bg-slate-900 border border-slate-200/60 dark:border-slate-800/80 rounded-3xl shadow-sm space-y-6 relative group" | ||
| initial={{ opacity: 0, x: 30 }} | ||
| whileInView={{ opacity: 1, x: 0 }} | ||
| viewport={{ once: true, margin: "-100px" }} | ||
| transition={{ duration: 0.6 }} | ||
| > | ||
| <div className="absolute top-0 right-0 w-24 h-24 bg-blue-500/5 rounded-bl-full transition-all group-hover:scale-110 pointer-events-none" /> | ||
| <p className="text-lg text-slate-700 dark:text-slate-300 leading-relaxed font-normal"> | ||
| We aim to provide an efficient and hyper-intuitive paradigm to manage public or private repositories, issues, and complex pull requests. | ||
| </p> | ||
| <p className="text-base text-slate-600 dark:text-slate-400 leading-relaxed"> | ||
| Our philosophy is rooted in abstraction: stripping away cluttered interfaces so developers, engineering managers, and maintainers can maintain deep operational flow without losing visibility of administrative tracking elements. | ||
| </p> | ||
| </motion.div> | ||
| </div> | ||
| </section> | ||
|
|
||
| {/* 🚀 4. Full-Width Feature Grid Section */} | ||
| <section className="w-full py-24 px-4 sm:px-6 lg:px-8 bg-white dark:bg-slate-950 border-t border-slate-100 dark:border-slate-900/40"> | ||
| <div className="max-w-7xl mx-auto space-y-16"> | ||
| <div className="text-center space-y-3"> | ||
| <h2 className="text-3xl font-extrabold tracking-tight text-slate-900 dark:text-white">What We Orchestrate</h2> | ||
| <p className="text-slate-500 dark:text-slate-400 max-w-xl mx-auto text-sm md:text-base"> | ||
| A precise architectural breakdown of the utility features engineered directly into your tracking layer. | ||
| </p> | ||
| </div> | ||
|
|
||
| <div className="grid grid-cols-1 md:grid-cols-3 gap-8 items-stretch"> | ||
| {features.map((feature, idx) => ( | ||
| <motion.div | ||
| key={idx} | ||
| className="flex flex-col p-8 bg-slate-50/50 dark:bg-slate-900 rounded-2xl border border-slate-200/50 dark:border-slate-800/60 shadow-sm relative overflow-hidden group" | ||
| whileHover={{ y: -6, boxShadow: "0 20px 40px -15px rgba(0,0,0,0.04)" }} | ||
| initial={{ opacity: 0, y: 20 }} | ||
| whileInView={{ opacity: 1, y: 0 }} | ||
| viewport={{ once: true }} | ||
| transition={{ delay: idx * 0.1, duration: 0.4 }} | ||
| > | ||
| <div className="absolute top-0 left-0 right-0 h-[2px] bg-gradient-to-r from-transparent via-blue-500 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300" /> | ||
| <div className="p-3 bg-blue-50 dark:bg-blue-950/40 border border-blue-100 dark:border-blue-900/30 rounded-xl mb-6 w-fit flex items-center justify-center group-hover:scale-105 transition-transform duration-300"> | ||
| {feature.icon} | ||
| </div> | ||
| <h3 className="text-xl font-bold text-slate-900 dark:text-white mb-3">{feature.title}</h3> | ||
| <p className="text-slate-600 dark:text-slate-400 text-sm leading-relaxed mb-6">{feature.description}</p> | ||
| <div className="mt-auto pt-2 flex items-center gap-1.5 text-xs font-semibold text-blue-600 dark:text-blue-400 opacity-0 group-hover:opacity-100 -translate-x-2 group-hover:translate-x-0 transition-all duration-300"> | ||
| Learn architecture <ArrowRight size={14} /> | ||
| </div> | ||
| </motion.div> | ||
| ))} | ||
| </div> | ||
| </div> | ||
| </section> | ||
|
|
||
| {/* 🚀 5. Premium Full-Width CTA Section */} | ||
| <section className="w-full py-24 px-4 sm:px-6 lg:px-8 bg-slate-50 dark:bg-slate-950 border-t border-slate-100 dark:border-slate-900/40"> | ||
| {/* Fixed Background: from-blue-600 to-blue-800 eliminates the indigo color token conflict */} | ||
| <div className="max-w-7xl mx-auto relative rounded-3xl overflow-hidden bg-gradient-to-br from-blue-600 to-blue-800 text-white p-10 sm:p-14 lg:p-16 text-center space-y-6 shadow-xl shadow-blue-500/10"> | ||
| <div className="absolute inset-0 bg-[linear-gradient(to_right,#ffffff08_1px,transparent_1px),linear-gradient(to_bottom,#ffffff08_1px,transparent_1px)] bg-[size:32px_32px] pointer-events-none" /> | ||
| <div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[500px] h-[500px] bg-white/10 blur-[120px] rounded-full pointer-events-none" /> | ||
|
|
||
| <div className="relative space-y-4 max-w-2xl mx-auto"> | ||
| <h2 className="text-3xl sm:text-4xl font-black tracking-tight">Ready to Master Your Workspaces?</h2> | ||
| <p className="text-blue-100 text-sm sm:text-base leading-relaxed"> | ||
| Connect your GitHub account today and unify your tracking metrics. Deploy natively inside cloud pipelines or self-host your secure stack instances instantly. | ||
| </p> | ||
| </div> | ||
|
|
||
| {/* Functional Actions: Added active navigation hooks onClick to ensure production-level usability */} | ||
| <div className="relative pt-4 flex flex-col sm:flex-row items-center justify-center gap-4"> | ||
| <motion.button | ||
| whileHover={{ scale: 1.03 }} | ||
| whileTap={{ scale: 0.98 }} | ||
| onClick={handleGetStarted} | ||
| className="w-full sm:w-auto px-8 py-3.5 bg-white text-blue-600 font-bold text-sm rounded-xl shadow-md hover:bg-slate-50 transition-colors flex items-center justify-center gap-2" | ||
| > | ||
| Get Started Free <ArrowRight size={16} /> | ||
| </motion.button> | ||
| <motion.button | ||
| whileHover={{ scale: 1.03 }} | ||
| onClick={handleViewRepository} | ||
| className="w-full sm:w-auto px-6 py-3.5 bg-white/10 text-white border border-white/20 font-bold text-sm rounded-xl hover:bg-white/20 transition-colors flex items-center justify-center gap-2 backdrop-blur-sm" | ||
| > | ||
| View Repository <ExternalLink size={14} /> | ||
| </motion.button> | ||
| </div> | ||
| </div> | ||
| </section> | ||
|
|
||
| </div> | ||
| ); | ||
| }; | ||
|
|
||
| export default About; | ||
| export default About; | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.