Skip to content

Commit 47223b9

Browse files
authored
Merge pull request #53 from codersforcauses/4-create-body-of-landing-page
Issue 4: create body of landing page
2 parents 4663da8 + cb67d30 commit 47223b9

File tree

3 files changed

+123
-1
lines changed

3 files changed

+123
-1
lines changed

client/public/landing-page-bg.PNG

584 KB
Loading
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
import Link from "next/link";
2+
import React from "react";
3+
4+
import { Button } from "./ui/button";
5+
6+
const LandingPageBody: React.FC = () => {
7+
return (
8+
<div className="min-h-screen bg-gray-900">
9+
{/* Hero Section */}
10+
<div className="relative min-h-screen">
11+
{/* Background Image */}
12+
<div
13+
className="absolute inset-0 bg-cover bg-center bg-no-repeat"
14+
style={{
15+
backgroundImage: "url('/landing-page-bg.PNG')",
16+
backgroundBlendMode: "overlay",
17+
}}
18+
/>
19+
20+
{/* Gradient Overlay */}
21+
<div className="absolute inset-0 bg-gradient-to-r from-gray-900/90 via-gray-900/50 to-transparent" />
22+
23+
{/* Content */}
24+
<div className="relative z-10 flex min-h-screen items-center justify-start px-6 sm:px-10 lg:px-20">
25+
<div className="max-w-2xl font-sans text-white">
26+
{/* Main Heading */}
27+
<h1 className="mb-6 text-4xl font-bold leading-tight sm:text-5xl lg:text-6xl">
28+
Register for the 2026
29+
<br />
30+
<span className="text-white">Australian Transplant</span>
31+
<br />
32+
<span className="text-white">Games</span>
33+
</h1>
34+
35+
{/* Description */}
36+
<div className="mb-8 space-y-4 text-lg sm:text-xl">
37+
<p>
38+
The Transplant Australia Games are a powerful celebration of
39+
life, showcasing the strength and vitality of organ and tissue
40+
transplant recipients, living donors, and their supporters. This
41+
national event fosters connection, awareness, and recognition
42+
through sport and community. Register or log in now to access
43+
comprehensive event details, participation guidelines, and key
44+
updates.
45+
</p>
46+
<p>
47+
Join us in championing the life-saving impact of donation and
48+
the enduring spirit of those who thrive because of it.
49+
</p>
50+
</div>
51+
52+
{/* Action Buttons */}
53+
<div className="flex flex-col gap-4 sm:flex-row sm:gap-6">
54+
<Link href="/signup">
55+
<Button
56+
size="lg"
57+
className="hover:bg-primary/90 w-full transform rounded-full bg-primary px-8 py-3 text-lg font-semibold text-white transition-all duration-300 hover:scale-105 sm:w-auto"
58+
>
59+
Register
60+
</Button>
61+
</Link>
62+
63+
<Link href="/login">
64+
<Button
65+
variant="outline"
66+
size="lg"
67+
className="w-full transform rounded-full border-2 border-white bg-transparent px-8 py-3 text-lg font-semibold text-white transition-all duration-300 hover:scale-105 hover:bg-white hover:text-primary sm:w-auto"
68+
>
69+
Login
70+
</Button>
71+
</Link>
72+
</div>
73+
74+
{/* Learn More Link */}
75+
<div className="mt-8">
76+
<a
77+
href="#"
78+
className="inline-flex items-center text-lg text-white transition-colors duration-300 hover:text-gray-200"
79+
>
80+
Learn More About Registration
81+
<svg
82+
className="ml-2 h-5 w-5"
83+
fill="none"
84+
stroke="currentColor"
85+
viewBox="0 0 24 24"
86+
>
87+
<path
88+
strokeLinecap="round"
89+
strokeLinejoin="round"
90+
strokeWidth={2}
91+
d="M9 5l7 7-7 7"
92+
/>
93+
</svg>
94+
</a>
95+
</div>
96+
</div>
97+
</div>
98+
99+
{/* Decorative Elements */}
100+
<div className="absolute bottom-10 left-1/2 -translate-x-1/2 transform animate-bounce">
101+
<svg
102+
className="h-8 w-8 text-white"
103+
fill="none"
104+
stroke="currentColor"
105+
viewBox="0 0 24 24"
106+
>
107+
<path
108+
strokeLinecap="round"
109+
strokeLinejoin="round"
110+
strokeWidth={2}
111+
d="M19 14l-7 7m0 0l-7-7m7 7V3"
112+
/>
113+
</svg>
114+
</div>
115+
</div>
116+
</div>
117+
);
118+
};
119+
120+
export default LandingPageBody;

client/src/pages/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Inter as FontSans } from "next/font/google";
22
import { useState } from "react";
33

44
import Footer from "@/components/Footer";
5+
import LandingPageBody from "@/components/landing-page-body";
56
import Navbar from "@/components/Navbar";
67
import { usePings } from "@/hooks/pings";
78
import { cn } from "@/lib/utils";
@@ -22,6 +23,8 @@ export default function Home() {
2223
return (
2324
<>
2425
<Navbar />
26+
<LandingPageBody />
27+
<Footer />
2528
<main
2629
className={cn(
2730
"flex min-h-screen flex-col items-center gap-4 p-24 font-sans",
@@ -36,7 +39,6 @@ export default function Home() {
3639
Response from server: <span>{data as string}</span>
3740
</p>
3841
</main>
39-
<Footer />
4042
</>
4143
);
4244
}

0 commit comments

Comments
 (0)