1- import { Home , Info , LogIn , Mail , Star , Workflow } from "lucide-react" ;
1+ import {
2+ ArrowRight ,
3+ Home ,
4+ Info ,
5+ LogIn ,
6+ Mail ,
7+ Star ,
8+ Workflow ,
9+ } from "lucide-react" ;
210import React from "react" ;
311
12+ import { Badge } from "@/components/ui/badge" ;
13+ import { Button } from "@/components/ui/button" ;
14+
15+ // Added this so that we can change colors more easily
16+ const COLORS = {
17+ // Background colors
18+ background : {
19+ main : "bg-slate-100" ,
20+ card : "bg-white" ,
21+ cardHeader : "bg-gradient-to-br from-slate-50 to-slate-100" ,
22+ nav : "bg-[#000912]" ,
23+ footer : "bg-slate-800" ,
24+ } ,
25+
26+ // Text colors
27+ text : {
28+ primary : "text-slate-800" ,
29+ secondary : "text-slate-600" ,
30+ tertiary : "text-slate-500" ,
31+ light : "text-gray-300" ,
32+ white : "text-white" ,
33+ navHover : "hover:text-white" ,
34+ } ,
35+
36+ // Border colors
37+ border : {
38+ default : "border-slate-200" ,
39+ input : "border-slate-300" ,
40+ separator : "border-slate-300" ,
41+ } ,
42+
43+ // Button colors
44+ button : {
45+ primary : "bg-slate-700" ,
46+ primaryHover : "hover:bg-slate-800" ,
47+ secondary : "bg-slate-200" ,
48+ secondaryHover : "hover:bg-slate-300" ,
49+ outline : "border-slate-300 text-slate-700 hover:bg-slate-100" ,
50+ } ,
51+
52+ // Badge/Accent colors
53+ badge : {
54+ default : "bg-slate-200 text-slate-700" ,
55+ step1 : "bg-blue-100" ,
56+ step2 : "bg-pink-100" ,
57+ step3 : "bg-purple-100" ,
58+ step4 : "bg-yellow-100" ,
59+ step5 : "bg-green-100" ,
60+ step6 : "bg-orange-100" ,
61+ } ,
62+
63+ // Icon colors
64+ icon : {
65+ default : "text-slate-600" ,
66+ nav : "text-slate-700" ,
67+ } ,
68+
69+ // Interactive states
70+ interactive : {
71+ cardHover : "hover:shadow-lg" ,
72+ linkHover : "hover:text-slate-800" ,
73+ } ,
74+
75+ // Decorative elements
76+ decoration : {
77+ bullet : "bg-slate-700" ,
78+ iconBg : "bg-slate-200" ,
79+ } ,
80+ } ;
81+
482// literally just for UX, clicking on any navbar buttons will scroll to that section instead of jumping instantly to that section
583const scrollTo = ( id : string ) => {
684 // question mark makes function scrolls only if the id is valid (wihout it an invalid id will error react)
@@ -12,36 +90,39 @@ const scrollTo = (id: string) => {
1290
1391export default function AboutPage ( ) {
1492 return (
15- < div className = "min-h-screen scroll-smooth bg-slate-100" >
93+ < div className = { `min-h-screen scroll-smooth ${ COLORS . background . main } ` } >
94+ { /* nav */ }
1695 < nav className = "fixed bottom-6 left-1/2 z-50 -translate-x-1/2" >
17- < div className = "flex items-center gap-6 rounded-full bg-[#000912] px-8 py-4 text-sm shadow-lg" >
96+ < div
97+ className = { `flex items-center gap-6 rounded-full ${ COLORS . background . nav } px-8 py-4 text-sm shadow-lg` }
98+ >
1899 < button
19100 onClick = { ( ) => scrollTo ( "welcome" ) }
20- className = " flex items-center gap-2 text-gray-300 hover: text-white"
101+ className = { ` flex items-center gap-2 ${ COLORS . text . light } transition-colors ${ COLORS . text . navHover } ` }
21102 >
22103 < Home className = "h-4 w-4" />
23104 < span className = "hidden sm:inline" > Welcome</ span >
24105 </ button >
25106
26107 < button
27108 onClick = { ( ) => scrollTo ( "about" ) }
28- className = " flex items-center gap-2 text-gray-300 hover: text-white"
109+ className = { ` flex items-center gap-2 ${ COLORS . text . light } transition-colors ${ COLORS . text . navHover } ` }
29110 >
30111 < Info className = "h-4 w-4" />
31112 < span className = "hidden sm:inline" > About</ span >
32113 </ button >
33114
34115 < button
35116 onClick = { ( ) => scrollTo ( "how" ) }
36- className = " flex items-center gap-2 text-gray-300 hover: text-white"
117+ className = { ` flex items-center gap-2 ${ COLORS . text . light } transition-colors ${ COLORS . text . navHover } ` }
37118 >
38119 < Workflow className = "h-4 w-4" />
39120 < span className = "hidden sm:inline" > How</ span >
40121 </ button >
41122
42123 < button
43124 onClick = { ( ) => scrollTo ( "why" ) }
44- className = " flex items-center gap-2 text-gray-300 hover: text-white"
125+ className = { ` flex items-center gap-2 ${ COLORS . text . light } transition-colors ${ COLORS . text . navHover } ` }
45126 >
46127 < Star className = "h-4 w-4" />
47128
@@ -50,15 +131,15 @@ export default function AboutPage() {
50131
51132 < button
52133 onClick = { ( ) => scrollTo ( "login" ) }
53- className = " flex items-center gap-2 text-gray-300 hover: text-white"
134+ className = { ` flex items-center gap-2 ${ COLORS . text . light } transition-colors ${ COLORS . text . navHover } ` }
54135 >
55136 < LogIn className = "h-4 w-4" />
56137 < span className = "hidden sm:inline" > Start</ span >
57138 </ button >
58139
59140 < button
60141 onClick = { ( ) => scrollTo ( "contact" ) }
61- className = " flex items-center gap-2 text-gray-300 hover: text-white"
142+ className = { ` flex items-center gap-2 ${ COLORS . text . light } transition-colors ${ COLORS . text . navHover } ` }
62143 >
63144 < Mail className = "h-4 w-4" />
64145 < span className = "hidden sm:inline" > Contact</ span >
@@ -70,7 +151,47 @@ export default function AboutPage() {
70151 id = "welcome"
71152 className = "container mx-auto min-h-screen max-w-6xl px-4 py-12 md:py-20"
72153 >
73- Welcome
154+ < div className = "space-y-8 text-center" >
155+ { /* welcome pill */ }
156+ < Badge
157+ variant = "secondary"
158+ className = { `${ COLORS . badge . default } px-4 py-2 text-sm` }
159+ >
160+ Welcome to UniConnect
161+ </ Badge >
162+
163+ < h1
164+ className = { `text-3xl font-bold sm:text-4xl md:text-6xl ${ COLORS . text . primary } leading-tight` }
165+ >
166+ Never Attend an Event
167+ < br />
168+ < span className = { COLORS . text . secondary } > Alone Again</ span >
169+ </ h1 >
170+ < p
171+ className = { `text-xl md:text-2xl ${ COLORS . text . secondary } mx-auto max-w-3xl leading-relaxed` }
172+ >
173+ Connect with like-minded students before you arrive. Find your
174+ people, build new friendships, and make every event better.
175+ </ p >
176+
177+ < div className = "flex items-center justify-center gap-4 pt-4 sm:flex-row" >
178+ < Button
179+ size = "lg"
180+ className = { `${ COLORS . button . primary } ${ COLORS . button . primaryHover } ${ COLORS . text . white } px-6 py-4 text-lg sm:px-8 sm:py-6` }
181+ onClick = { ( ) => scrollTo ( "login" ) }
182+ >
183+ Get Started < ArrowRight className = "ml-2 h-5 w-5" />
184+ </ Button >
185+ < Button
186+ size = "lg"
187+ variant = "outline"
188+ className = { `${ COLORS . button . outline } px-6 py-4 text-lg sm:px-8 sm:py-6` }
189+ onClick = { ( ) => scrollTo ( "about" ) }
190+ >
191+ Learn More
192+ </ Button >
193+ </ div >
194+ </ div >
74195 </ section >
75196 < section
76197 id = "about"
0 commit comments