Skip to content

Commit ea035fe

Browse files
committed
Added color constants for easy changes, and welcome section.
1 parent f0b9c1f commit ea035fe

1 file changed

Lines changed: 131 additions & 10 deletions

File tree

client/src/pages/index.tsx

Lines changed: 131 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,84 @@
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";
210
import 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
583
const 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

1391
export 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

Comments
 (0)