From 26c9b4b362e79fcee027a3ddccfff0eedefb35f9 Mon Sep 17 00:00:00 2001 From: Kevin Satria D <130447401+kevinnsd1@users.noreply.github.com> Date: Wed, 20 May 2026 13:13:51 +0700 Subject: [PATCH] feat: initialize project structure with core UI components including Navbar, Footer, and Hero sections --- src/App.tsx | 2 +- src/components/EventCard.tsx | 48 +++++------ src/components/EventSection.tsx | 37 ++++---- src/components/Footer.tsx | 141 ++++++++++++++++++++++-------- src/components/Hero.tsx | 147 ++++++++++---------------------- src/components/Navbar.tsx | 57 ++++++------- src/index.css | 63 +++++++++++--- 7 files changed, 271 insertions(+), 224 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 545519c..b093b29 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -5,7 +5,7 @@ import Footer from './components/Footer'; function App() { return ( -
+
diff --git a/src/components/EventCard.tsx b/src/components/EventCard.tsx index eaa7b9a..7c80920 100644 --- a/src/components/EventCard.tsx +++ b/src/components/EventCard.tsx @@ -22,24 +22,24 @@ export default function EventCard({ isAvailable = true, }: EventCardProps) { return ( -
+
{/* Image Container */} -
-
{/* Placeholder background */} +
+
{title} {/* Status Badge */}
- {status} @@ -48,46 +48,46 @@ export default function EventCard({ {/* Content Container */}
-

+

{title}

-
-
- +
+
+ {location}
-
- +
+ {date}
{/* Footer Area */} -
+
-

START FROM

+

START FROM

{isAvailable ? ( -

+

{price}

) : ( -

- Ticket Belum Tersedia +

+ Habis

)} -

By: {organizer}

+

BY: {organizer}

diff --git a/src/components/EventSection.tsx b/src/components/EventSection.tsx index 9406c8b..76d3420 100644 --- a/src/components/EventSection.tsx +++ b/src/components/EventSection.tsx @@ -37,7 +37,7 @@ const MOCK_EVENTS = [ }, { id: '4', - title: 'Tamasya lebaran', + title: 'TAMASYA LEBARAN', image: 'https://images.unsplash.com/photo-1493225457124-a1a2a5956093?q=80&w=1000&auto=format&fit=crop', date: '2024-04-18 18:00', location: 'PRSU, Medan', @@ -50,42 +50,41 @@ const MOCK_EVENTS = [ export default function EventSection() { return ( -
+
- {/* Section Header */} -
+ {/* Brutalist Section Header */} +
-
-
- Event Terbaru +
+ Event Terbaru
-

- Temukan Acaramu +

+ TEMUKAN
ACARAMU

-

- Temukan acara favorit Anda, dan mari bersenang-senang +

+ Jelajahi berbagai event spektakuler dan jangan lewatkan keseruannya!

-
{/* Events Grid */} -
+
{MOCK_EVENTS.map((event) => ( ))}
{/* Mobile View All Button */} -
-
diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 7fc79f7..f2f0119 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -1,70 +1,139 @@ -import { Facebook, Instagram, Mail, MessageCircle } from 'lucide-react'; +import { Facebook, Instagram, Mail, MessageCircle } from "lucide-react"; export default function Footer() { return ( -