Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d6ad6dceb3 | |||
| 9f227daec3 | |||
| d860f62976 |
423
src/app/page.tsx
423
src/app/page.tsx
@@ -3,334 +3,129 @@
|
|||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import ReactLenis from "lenis/react";
|
import ReactLenis from "lenis/react";
|
||||||
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
import ContactCTA from '@/components/sections/contact/ContactCTA';
|
||||||
import FeatureCardEight from '@/components/sections/feature/FeatureCardEight';
|
import FeatureCardTen from '@/components/sections/feature/FeatureCardTen';
|
||||||
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
|
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||||
import HeroSplitKpi from '@/components/sections/hero/HeroSplitKpi';
|
import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia';
|
||||||
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
import ProductCardOne from '@/components/sections/product/ProductCardOne';
|
import ProductCardFour from '@/components/sections/product/ProductCardFour';
|
||||||
import TestimonialCardThirteen from '@/components/sections/testimonial/TestimonialCardThirteen';
|
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
|
||||||
import TextAbout from '@/components/sections/about/TextAbout';
|
import MetricSplitMediaAbout from '@/components/sections/about/MetricSplitMediaAbout';
|
||||||
|
import { Coffee, Target, Users, MapPin } from "lucide-react";
|
||||||
|
|
||||||
export default function LandingPage() {
|
export default function LandingPage() {
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="text-shift"
|
defaultButtonVariant="hover-magnetic"
|
||||||
defaultTextAnimation="reveal-blur"
|
defaultTextAnimation="background-highlight"
|
||||||
borderRadius="rounded"
|
borderRadius="pill"
|
||||||
contentWidth="smallMedium"
|
contentWidth="mediumLarge"
|
||||||
sizing="largeSizeMediumTitles"
|
sizing="largeSizeMediumTitles"
|
||||||
background="aurora"
|
background="floatingGradient"
|
||||||
cardStyle="inset"
|
cardStyle="glass-elevated"
|
||||||
primaryButtonStyle="flat"
|
primaryButtonStyle="primary-glow"
|
||||||
secondaryButtonStyle="solid"
|
secondaryButtonStyle="layered"
|
||||||
headingFontWeight="normal"
|
headingFontWeight="extrabold"
|
||||||
>
|
>
|
||||||
<ReactLenis root>
|
<ReactLenis root>
|
||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarStyleApple
|
<NavbarStyleCentered
|
||||||
navItems={[
|
navItems={[
|
||||||
{
|
{ name: "About", id: "#about" },
|
||||||
name: "About",
|
{ name: "Features", id: "#features" },
|
||||||
id: "#about",
|
{ name: "Menu", id: "#menu" },
|
||||||
},
|
{ name: "Contact", id: "#contact" },
|
||||||
{
|
]}
|
||||||
name: "Features",
|
brandName="KACJ Coffee"
|
||||||
id: "#features",
|
/>
|
||||||
},
|
</div>
|
||||||
{
|
|
||||||
name: "Menu",
|
|
||||||
id: "#menu",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Contact",
|
|
||||||
id: "#contact",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
brandName="KACJ Coffee"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="hero" data-section="hero">
|
<div id="hero" data-section="hero">
|
||||||
<HeroSplitKpi
|
<HeroSplitDualMedia
|
||||||
background={{
|
background={{ variant: "sparkles-gradient" }}
|
||||||
variant: "plain",
|
title="Where Coffee Becomes an Art Form"
|
||||||
}}
|
description="Discover the perfect harmony of ethically sourced beans, precision roasting, and handcrafted sourdough. Your daily ritual, elevated."
|
||||||
title="Crafted with Intention, Roasted with Passion"
|
tag="JB's Premier Specialty Roaster"
|
||||||
description="Single-origin beans roasted in-house, fresh sourdough baked daily, and signature Dirty Lattes that have earned a 4.8-star reputation across Johor Bahru and Singapore. Every detail — from the silkiness of our milk to the crunch of our pastry — is a reflection of our commitment to honest, exceptional coffee and artisan bakes."
|
rating={4.8}
|
||||||
kpis={[
|
ratingText="4.8 Stars from 500+ Reviews"
|
||||||
{
|
mediaItems={[
|
||||||
value: "4.8",
|
{ imageSrc: "http://img.b2bpic.net/free-photo/front-view-sliced-bread-with-brown-sugar-cubes_23-2148695488.jpg" },
|
||||||
label: "Customer Rating",
|
{ imageSrc: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg" }
|
||||||
},
|
]}
|
||||||
{
|
buttons={[{ text: "Explore Our Menu", href: "#menu" }]}
|
||||||
value: "100%",
|
/>
|
||||||
label: "House Roasted",
|
</div>
|
||||||
},
|
|
||||||
{
|
|
||||||
value: "Daily",
|
|
||||||
label: "Fresh Bakes",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
enableKpiAnimation={true}
|
|
||||||
buttons={[
|
|
||||||
{
|
|
||||||
text: "Visit Us",
|
|
||||||
href: "#contact",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
imageSrc="http://img.b2bpic.net/free-photo/front-view-sliced-bread-with-brown-sugar-cubes_23-2148695488.jpg"
|
|
||||||
mediaAnimation="slide-up"
|
|
||||||
avatars={[
|
|
||||||
{
|
|
||||||
src: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg",
|
|
||||||
alt: "Customer",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg",
|
|
||||||
alt: "Customer",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg",
|
|
||||||
alt: "Customer",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg",
|
|
||||||
alt: "Customer",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg",
|
|
||||||
alt: "Customer",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
avatarText="Trusted by thousands of coffee lovers"
|
|
||||||
marqueeItems={[
|
|
||||||
{
|
|
||||||
type: "text",
|
|
||||||
text: "Single Origin",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "text",
|
|
||||||
text: "Artisan Sourdough",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "text",
|
|
||||||
text: "Roasted Locally",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "text",
|
|
||||||
text: "JB Best Coffee",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "text",
|
|
||||||
text: "Fresh Daily",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="about" data-section="about">
|
<div id="about" data-section="about">
|
||||||
<TextAbout
|
<MetricSplitMediaAbout
|
||||||
useInvertedBackground={true}
|
title="Our Craft, Your Morning Ritual"
|
||||||
title="The Art of the Craft"
|
description="We don't just brew coffee; we curate an experience. From sourcing micro-lot beans to baking fresh sourdough daily, our passion is in every detail."
|
||||||
buttons={[
|
metrics={[
|
||||||
{
|
{ value: "500+", title: "Reviews" },
|
||||||
text: "Our Roasting Method",
|
{ value: "100%", title: "Roasted In-House" },
|
||||||
href: "#features",
|
{ value: "Daily", title: "Fresh Bakes" }
|
||||||
},
|
]}
|
||||||
]}
|
imageSrc="http://img.b2bpic.net/free-photo/sliced-bun-cutting-board-high-angle_23-2148229098.jpg"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="features" data-section="features">
|
<div id="features" data-section="features">
|
||||||
<FeatureCardEight
|
<FeatureCardTen
|
||||||
textboxLayout="default"
|
title="Why KACJ Stands Out"
|
||||||
useInvertedBackground={false}
|
textboxLayout="split"
|
||||||
features={[
|
animationType="slide-up"
|
||||||
{
|
features={[
|
||||||
title: "Single-Origin Excellence",
|
{
|
||||||
description: "Ethically sourced beans from the finest micro-lots across the globe.",
|
title: "Single-Origin Excellence", description: "Directly sourced micro-lots with traceable stories in every cup.", media: { imageSrc: "http://img.b2bpic.net/free-photo/coffee-near-typing-person_23-2147768827.jpg" },
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/sliced-bun-cutting-board-high-angle_23-2148229098.jpg?_wi=1",
|
items: [{ icon: Coffee, text: "Ethically Sourced" }],
|
||||||
},
|
reverse: false
|
||||||
{
|
}
|
||||||
title: "Work-Friendly Oasis",
|
]}
|
||||||
description: "Designed for focus, comfort, and productivity with high-speed connectivity.",
|
/>
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/coffee-near-typing-person_23-2147768827.jpg?_wi=1",
|
</div>
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Weekend Wonders",
|
|
||||||
description: "Curated photogenic experiences that keep explorers coming back for more.",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/pensive-business-lady_1098-17148.jpg",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Fresh Baked Daily",
|
|
||||||
description: "Authentic sourdough and pastries made in-house every morning.",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/sliced-bun-cutting-board-high-angle_23-2148229098.jpg?_wi=2",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Community Vibe",
|
|
||||||
description: "A warm space where people connect over a shared love for coffee.",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/coffee-near-typing-person_23-2147768827.jpg?_wi=2",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
title="Why KACJ Stands Out"
|
|
||||||
description="Excellence in every cup and every crumb."
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="menu" data-section="menu">
|
<div id="menu" data-section="menu">
|
||||||
<ProductCardOne
|
<ProductCardFour
|
||||||
animationType="slide-up"
|
title="Artisan Signature Collection"
|
||||||
textboxLayout="default"
|
gridVariant="asymmetric-60-wide-40-narrow"
|
||||||
gridVariant="three-columns-all-equal-width"
|
animationType="scale-rotate"
|
||||||
useInvertedBackground={true}
|
useInvertedBackground={false}
|
||||||
products={[
|
products={[
|
||||||
{
|
{ id: "1", name: "Dirty Latte", price: "RM 16", variant: "Signature", imageSrc: "http://img.b2bpic.net/free-photo/homemade-blackberry-galette_114579-1308.jpg" }
|
||||||
id: "p1",
|
]}
|
||||||
name: "Dirty Latte",
|
/>
|
||||||
price: "RM 16",
|
</div>
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-blackberry-galette_114579-1308.jpg?_wi=1",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "p2",
|
|
||||||
name: "Shokupan Sando",
|
|
||||||
price: "RM 22",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-blackberry-galette_114579-1308.jpg?_wi=2",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "p3",
|
|
||||||
name: "Artisan Sourdough",
|
|
||||||
price: "RM 18",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-blackberry-galette_114579-1308.jpg?_wi=3",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "p4",
|
|
||||||
name: "Single Origin Pour Over",
|
|
||||||
price: "RM 20",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-blackberry-galette_114579-1308.jpg?_wi=4",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "p5",
|
|
||||||
name: "Berry Custard Danish",
|
|
||||||
price: "RM 12",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-blackberry-galette_114579-1308.jpg?_wi=5",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "p6",
|
|
||||||
name: "House Espresso Blend",
|
|
||||||
price: "RM 45",
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/homemade-blackberry-galette_114579-1308.jpg?_wi=6",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
title="Artisan Selections"
|
|
||||||
description="Our current signature lineup."
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="testimonials" data-section="testimonials">
|
<div id="testimonials" data-section="testimonials">
|
||||||
<TestimonialCardThirteen
|
<TestimonialCardFive
|
||||||
animationType="slide-up"
|
title="Voices of the Community"
|
||||||
textboxLayout="default"
|
textboxLayout="split"
|
||||||
useInvertedBackground={false}
|
testimonials={[
|
||||||
testimonials={[
|
{
|
||||||
{
|
id: "1", name: "Sarah", date: "2024-05-12", title: "Exceptional Coffee", quote: "The best Dirty Latte in Johor Bahru. Truly artisan.", tag: "Regular", avatarSrc: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg"
|
||||||
id: "1",
|
}
|
||||||
name: "Sarah",
|
]}
|
||||||
handle: "@sarah_j",
|
/>
|
||||||
testimonial: "The best Dirty Latte I have had in JB, hands down.",
|
</div>
|
||||||
rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg?_wi=1",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "2",
|
|
||||||
name: "Chen",
|
|
||||||
handle: "@chen_coffee",
|
|
||||||
testimonial: "I work here weekly. The WiFi is solid and the pastries are heavenly.",
|
|
||||||
rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg?_wi=2",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "3",
|
|
||||||
name: "Emily",
|
|
||||||
handle: "@emily_explores",
|
|
||||||
testimonial: "Stopped by on a day trip from Singapore and it was worth the queue!",
|
|
||||||
rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg?_wi=3",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "4",
|
|
||||||
name: "David",
|
|
||||||
handle: "@david_coff",
|
|
||||||
testimonial: "Genuine artisan quality that feels rare in JB these days.",
|
|
||||||
rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg?_wi=4",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "5",
|
|
||||||
name: "Maya",
|
|
||||||
handle: "@maya_eats",
|
|
||||||
testimonial: "So aesthetically pleasing, my feed loved the visit.",
|
|
||||||
rating: 5,
|
|
||||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-drawing-cup-coffee-notebook_158595-661.jpg?_wi=5",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
showRating={true}
|
|
||||||
title="Voices of the Community"
|
|
||||||
description="Hear what our regulars say about their KACJ experience."
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="contact" data-section="contact">
|
<div id="contact" data-section="contact">
|
||||||
<ContactCTA
|
<ContactCTA
|
||||||
useInvertedBackground={true}
|
tag="Get In Touch"
|
||||||
background={{
|
title="Visit Our Roastery"
|
||||||
variant: "plain",
|
description="Ready to experience the KACJ difference? Come visit our space or drop us a message."
|
||||||
}}
|
buttons={[{ text: "Get Directions", href: "#" }]}
|
||||||
tag="Visit Us"
|
background={{ variant: "glowing-orb" }}
|
||||||
title="Experience KACJ Today"
|
/>
|
||||||
description="Drop by our JB café for a fresh brew or reach out for inquiries."
|
</div>
|
||||||
buttons={[
|
|
||||||
{
|
|
||||||
text: "Get Directions",
|
|
||||||
href: "https://maps.google.com",
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterBaseCard
|
<FooterBaseReveal
|
||||||
logoText="KACJ Coffee"
|
logoText="KACJ Coffee"
|
||||||
columns={[
|
columns={[
|
||||||
{
|
{ title: "Menu", items: [{ label: "Coffees", href: "#" }, { label: "Bakery", href: "#" }] }
|
||||||
title: "Navigation",
|
]}
|
||||||
items: [
|
/>
|
||||||
{
|
</div>
|
||||||
label: "About",
|
|
||||||
href: "#about",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "Menu",
|
|
||||||
href: "#menu",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "Legal",
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
label: "Privacy Policy",
|
|
||||||
href: "#",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "Terms of Service",
|
|
||||||
href: "#",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -10,15 +10,15 @@
|
|||||||
--accent: #ffffff;
|
--accent: #ffffff;
|
||||||
--background-accent: #ffffff; */
|
--background-accent: #ffffff; */
|
||||||
|
|
||||||
--background: #f5f4ef;
|
--background: #020617;
|
||||||
--card: #dad6cd;
|
--card: #0f172a;
|
||||||
--foreground: #2a2928;
|
--foreground: #e2e8f0;
|
||||||
--primary-cta: #2a2928;
|
--primary-cta: #c4d8f9;
|
||||||
--primary-cta-text: #f5f4ef;
|
--primary-cta-text: #f5f4ef;
|
||||||
--secondary-cta: #ecebea;
|
--secondary-cta: #041633;
|
||||||
--secondary-cta-text: #2a2928;
|
--secondary-cta-text: #2a2928;
|
||||||
--accent: #ffffff;
|
--accent: #2d30f3;
|
||||||
--background-accent: #c6b180;
|
--background-accent: #1d4ed8;
|
||||||
|
|
||||||
/* text sizing - set by ThemeProvider */
|
/* text sizing - set by ThemeProvider */
|
||||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||||
|
|||||||
Reference in New Issue
Block a user