Merge version_4 into main #5

Merged
bender merged 4 commits from version_4 into main 2026-06-12 23:10:25 +00:00
4 changed files with 92 additions and 167 deletions

View File

@@ -11,8 +11,8 @@ import { Nunito_Sans } from "next/font/google";
export const metadata: Metadata = {
title: 'Two Rivers Mall | Shop, Dine, Play in Nairobi',
description: 'Discover Two Rivers Mall, Nairobi\'s premier lifestyle destination with 200+ stores, world-class dining, and thrilling entertainment for families, professionals, and tourists.',
title: 'My Website - Reset',
description: 'This is a reset website with default content.',
keywords: ["Two Rivers Mall, Nairobi, shopping mall, dining, entertainment, amusement park, family fun, stores, events, lifestyle destination"],
openGraph: {
"title": "Two Rivers Mall | Shop, Dine, Play in Nairobi",
@@ -41,9 +41,9 @@ export const metadata: Metadata = {
},
};
const nunitoSans = Nunito_Sans({
variable: "--font-nunito-sans",
subsets: ["latin"],
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
export default function RootLayout({
@@ -54,7 +54,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${nunitoSans.variable} antialiased`}>
<body className={`${inter.variable} antialiased`}>
<Tag />
{children}
<script

View File

@@ -13,7 +13,6 @@ import PricingCardTwo from '@/components/sections/pricing/PricingCardTwo';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen';
import { Award, Box, Building, Calendar, Facebook, Film, Instagram, ShoppingBag, Sparkles, Star, Twitter } from "lucide-react";
export default function LandingPage() {
return (
@@ -21,13 +20,13 @@ export default function LandingPage() {
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="smallMedium"
sizing="largeSizeMediumTitles"
background="fluid"
cardStyle="glass-elevated"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="radial-glow"
headingFontWeight="semibold"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="solid"
primaryButtonStyle="flat"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
@@ -46,56 +45,24 @@ export default function LandingPage() {
{
name: "Contact", id: "#contact"},
]}
brandName="Two Rivers Mall"
button={{
text: "Explore the Directory", href: "#stores"}}
brandName="My Website"
/>
</div>
<div id="home" data-section="home">
<HeroSplit
background={{
variant: "radial-gradient"}}
variant: "plain"}}
imagePosition="right"
title="Unlock Nairobi's Premier Destination: Shop, Dine, Play, Experience More"
description="Two Rivers Mall brings together 200 premium stores, world-class dining, and thrilling entertainment under one roof. From family fun to upscale shopping, discover your next favorite destination on Limuru Road."
title="Welcome to Your New Website"
description="Your site has been reset to a clean, default state. Begin customizing to reflect your unique vision."
buttons={[
{
text: "Explore the Directory", href: "#stores"},
]}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3F3WGpc9823thxsq5XEkQAL2GLQ/uploaded-1781305073834-zu1nwsn2.png"
imageAlt="Exterior facade of Two Rivers Mall"
mediaAnimation="slide-up"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/close-up-girl-with-shopping-bags_23-2148225670.jpg", alt: "Close up girl with shopping bags "},
{
src: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-posing-with-lots-shopping-bags_23-2148695588.jpg", alt: "Front view of smiley woman posing with lots of shopping bags"},
{
src: "http://img.b2bpic.net/free-photo/girl-posing-with-her-eyes-closed_23-2148225669.jpg", alt: "Girl posing with her eyes closed"},
{
src: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-posing-with-multiple-shopping-bags_23-2148695589.jpg", alt: "Front view of smiley woman posing with multiple shopping bags"},
{
src: "http://img.b2bpic.net/free-photo/smiling-man-with-shopping-bags_329181-5055.jpg", alt: "Smiling man with shopping bags"},
]}
avatarText="Join 1M+ happy visitors annually"
marqueeItems={[
{
type: "text-icon", text: "Latest Fashion", icon: Box,
},
{
type: "text-icon", text: "Gourmet Meals", icon: Building,
},
{
type: "text-icon", text: "Family Fun", icon: Film,
},
{
type: "text-icon", text: "Exciting Events", icon: Calendar,
},
{
type: "text-icon", text: "Shopping Spree", icon: ShoppingBag,
},
text: "Discover More", href: "#about"},
]}
imageSrc="https://via.placeholder.com/1200x800?text=Hero+Image"
imageAlt="A generic placeholder hero image"
mediaAnimation="none"
/>
</div>
@@ -104,9 +71,9 @@ export default function LandingPage() {
useInvertedBackground={false}
heading={[
{
type: "text", content: "Your Ultimate Lifestyle Destination in Nairobi"},
type: "text", content: "About Our Mission"},
{
type: "image", src: "http://img.b2bpic.net/free-photo/blurred-escalator-seen-from_1203-1286.jpg", alt: "Interior view of a modern shopping mall"},
type: "image", src: "https://via.placeholder.com/600x400?text=About+Image", alt: "Placeholder about image"},
]}
buttons={[
{
@@ -117,142 +84,110 @@ export default function LandingPage() {
<div id="features" data-section="features">
<FeatureCardNine
animationType="slide-up"
animationType="none"
textboxLayout="default"
useInvertedBackground={true}
useInvertedBackground={false}
features={[
{
title: "Diverse Retail Selection", description: "Explore over 200 premium stores, featuring global brands and local favorites across fashion, electronics, home goods, and more.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/laughing-woman-with-paper-bags_23-2147786761.jpg", imageAlt: "Woman shopping in a clothing store"},
title: "Feature One", description: "Brief description of the first key feature.", phoneOne: {
imageSrc: "https://via.placeholder.com/300x600?text=Phone+Screen+1"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/connection-digital-touchscreen-screen-retail_1253-540.jpg", imageAlt: "Person using a shopping app on a phone"},
imageSrc: "https://via.placeholder.com/300x600?text=Phone+Screen+2"},
},
{
title: "World-Class Dining", description: "Savor a culinary journey with a wide array of restaurants, cafes, and eateries offering international and local cuisines for every palate.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/dreamy-stylish-girl-with-blonde-hair-pink-lips-sitting-coffee-shop-with-wooden-chairs-table-she-holds-cup-cofee-touches-her-hair_197531-102.jpg", imageAlt: "Friends enjoying a meal at a restaurant"},
title: "Feature Two", description: "Brief description of the second key feature.", phoneOne: {
imageSrc: "https://via.placeholder.com/300x600?text=Phone+Screen+3"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/hostess-arranging-chairs-around-table_23-2147830618.jpg", imageAlt: "Chef preparing food in a modern kitchen"},
},
{
title: "Thrilling Entertainment", description: "Experience endless fun at our amusement park, state-of-the-art cinema, bowling alley, and various family-friendly attractions.", phoneOne: {
imageSrc: "http://img.b2bpic.net/free-photo/excited-young-woman-enjoying-amusement-park_23-2147910306.jpg", imageAlt: "Family enjoying rides at an amusement park"},
phoneTwo: {
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-couple-wearing-reality-goggles-enjoying-playing-video-game_23-2148048992.jpg", imageAlt: "Group watching a movie in a cinema"},
imageSrc: "https://via.placeholder.com/300x600?text=Phone+Screen+4"},
},
]}
showStepNumbers={true}
title="Experience Unmatched Variety"
description="Discover a world of choices, from exclusive boutiques to family-friendly fun. Two Rivers Mall offers something for everyone, every day."
showStepNumbers={false}
title="Core Features"
description="Explore the essential functionalities we offer."
/>
</div>
<div id="stores" data-section="stores">
<ProductCardOne
animationType="slide-up"
animationType="none"
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
products={[
{
id: "fashion", name: "Fashion & Apparel", price: "200+ Brands", imageSrc: "http://img.b2bpic.net/free-photo/futuristic-store-with-abstract-concept-architecture_23-2150861950.jpg", imageAlt: "Fashion boutique interior"},
id: "p1", name: "Product/Service A", price: "$100", imageSrc: "https://via.placeholder.com/400x300?text=Product+A", imageAlt: "Product A"},
{
id: "electronics", name: "Electronics & Gadgets", price: "Latest Tech", imageSrc: "http://img.b2bpic.net/free-photo/side-view-sad-girl-holding-smartphone_23-2149458400.jpg", imageAlt: "Electronics store with gadgets"},
id: "p2", name: "Product/Service B", price: "$200", imageSrc: "https://via.placeholder.com/400x300?text=Product+B", imageAlt: "Product B"},
{
id: "home", name: "Home & Living", price: "Stylish Decor", imageSrc: "http://img.b2bpic.net/free-photo/tea-pot_23-2147788596.jpg", imageAlt: "Modern home decor items"},
{
id: "jewelry", name: "Jewelry & Accessories", price: "Luxury Brands", imageSrc: "http://img.b2bpic.net/free-photo/side-view-silver-bracelets-with-diamonds-black-wall_140725-12838.jpg", imageAlt: "Sparkling jewelry display"},
{
id: "beauty", name: "Beauty & Wellness", price: "Premium Products", imageSrc: "http://img.b2bpic.net/free-photo/zero-waste-beauty-products_23-2149304153.jpg", imageAlt: "Beauty products and cosmetics"},
{
id: "kids", name: "Kids & Toys", price: "Fun for All Ages", imageSrc: "http://img.b2bpic.net/free-photo/mother-daughter-with-shopping-bag-city_1157-21135.jpg", imageAlt: "Colorful kids toy store"},
id: "p3", name: "Product/Service C", price: "$300", imageSrc: "https://via.placeholder.com/400x300?text=Product+C", imageAlt: "Product C"},
]}
title="Our Esteemed Stores & Brands"
description="Browse our extensive directory of over 200 international and local brands, offering everything from fashion to electronics, home goods, and specialty stores."
title="Our Products & Services"
description="Browse our offerings, designed to meet your needs."
/>
</div>
<div id="entertainment" data-section="entertainment">
<PricingCardTwo
animationType="slide-up"
animationType="none"
textboxLayout="default"
useInvertedBackground={true}
useInvertedBackground={false}
plans={[
{
id: "day-pass", badge: "Popular", badgeIcon: Sparkles,
price: "$25", subtitle: "Amusement Park Day Pass", buttons: [
id: "basic", badge: "Basic", price: "$10/mo", subtitle: "Essential features", buttons: [
{
text: "Get Day Pass", href: "#"},
text: "Start Free", href: "#"},
],
features: [
"Unlimited rides for one day", "Access to all attractions", "Family-friendly activities"],
"Feature 1", "Feature 2"],
},
{
id: "family-bundle", badge: "Best Value", badgeIcon: Star,
price: "$80", subtitle: "Family Fun Bundle", buttons: [
id: "pro", badge: "Pro", price: "$30/mo", subtitle: "Advanced capabilities", buttons: [
{
text: "Get Family Bundle", href: "#"},
text: "Get Pro", href: "#"},
],
features: [
"4 Day Passes", "Cinema Tickets (4)", "Bowling Game (1 hour)"],
},
{
id: "vip-experience", badge: "Premium", badgeIcon: Award,
price: "$150", subtitle: "VIP Entertainment Experience", buttons: [
{
text: "Book VIP", href: "#"},
],
features: [
"All Family Bundle features", "Private Lounge access", "Exclusive event discounts"],
"All Basic features", "Feature 3", "Feature 4"],
},
]}
title="Thrilling Entertainment Packages"
description="Dive into excitement with our diverse entertainment options, including the themed amusement park, cinema, and more. Perfect for all ages!"
title="Flexible Pricing"
description="Choose a plan that scales with you."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardSixteen
animationType="slide-up"
animationType="none"
textboxLayout="default"
useInvertedBackground={false}
testimonials={[
{
id: "1", name: "Sarah Johnson", role: "Parent", company: "Nairobi Resident", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/female-model-phone-shopping-bags-park_23-2147645097.jpg", imageAlt: "Happy Sarah Johnson"},
id: "t1", name: "Jane Doe", role: "CEO", company: "Tech Solutions", rating: 5,
imageSrc: "https://via.placeholder.com/100x100?text=User+1"},
{
id: "2", name: "David Kim", role: "Entrepreneur", company: "Local Business Owner", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-adults-having-party-home_23-2149215876.jpg", imageAlt: "Satisfied David Kim"},
{
id: "3", name: "Emily Rodriguez", role: "Food Blogger", company: "Foodie Explorer", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-with-delicious-food_23-2150124824.jpg", imageAlt: "Delighted Emily Rodriguez"},
{
id: "4", name: "Michael Chen", role: "Tourist", company: "Global Traveler", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/stylish-girls-taking-selfie-mall_23-2147669852.jpg", imageAlt: "Impressed Michael Chen"},
{
id: "5", name: "Jessica Lee", role: "Student", company: "University of Nairobi", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/front-view-women-holding-paper-wrapped-sandwich_23-2151311183.jpg", imageAlt: "Excited Jessica Lee"},
id: "t2", name: "John Smith", role: "Founder", company: "Creative Agency", rating: 4,
imageSrc: "https://via.placeholder.com/100x100?text=User+2"},
]}
kpiItems={[
{
value: "200+", label: "Stores & Eateries"},
value: "99%", label: "Satisfaction"},
{
value: "1M+", label: "Annual Visitors"},
value: "50K+", label: "Users"},
{
value: "4.8", label: "Average Rating"},
value: "Top", label: "Rated"},
]}
title="Voices of Our Community"
description="Hear from visitors who have experienced the magic of Two Rivers Mall. Their joy is our greatest reward."
title="What Our Users Say"
description="Real feedback from satisfied customers."
/>
</div>
<div id="dining" data-section="dining">
<SocialProofOne
textboxLayout="default"
useInvertedBackground={true}
useInvertedBackground={false}
names={[
"International Cuisine", "Fine Dining Restaurants", "Casual Cafes", "Fast Food Favorites", "Dessert & Bakeries", "Juice Bars", "Coffee Houses", "African Delicacies"]}
title="A Culinary Journey Awaits"
description="From casual cafes to fine dining restaurants, Two Rivers Mall offers an unparalleled gastronomic experience with diverse cuisines to satisfy every palate."
"Partner A", "Partner B", "Partner C", "Partner D", "Partner E"]}
title="Trusted Partners"
description="Collaborating with industry leaders to bring you the best."
/>
</div>
@@ -262,31 +197,31 @@ export default function LandingPage() {
useInvertedBackground={false}
faqs={[
{
id: "schedule", title: "Where can I find the event schedule?", content: "Our full event calendar, including showtimes, dates, and special promotions, is available on our website and at the customer service desk."},
id: "q1", title: "How do I get started?", content: "Simply sign up and follow the onboarding process."
},
{
id: "children-events", title: "Are there special events for children?", content: "Yes, we regularly host a variety of child-friendly events, workshops, and performances designed to entertain and educate younger visitors."},
{
id: "booking", title: "How do I book tickets for shows?", content: "Tickets for most shows and events can be purchased directly through our website, at the venue box office, or via our official ticketing partners."},
id: "q2", title: "What are your pricing options?", content: "Check our pricing section for detailed plans."
},
]}
imageSrc="http://img.b2bpic.net/free-photo/portrait-young-woman-covered-with-holi-powder-looking-away_23-2148129364.jpg"
imageAlt="People at a lively mall event"
mediaAnimation="slide-up"
imageSrc="https://via.placeholder.com/800x600?text=FAQ+Image"
imageAlt="A generic placeholder for FAQ section"
mediaAnimation="none"
mediaPosition="left"
title="Upcoming Events & Information"
description="Stay updated on the latest happenings at Two Rivers Mall, from live shows to seasonal festivals and family workshops. Plan your visit around our exciting calendar."
faqsAnimation="slide-up"
title="Common Questions"
description="Find quick answers to your most pressing questions."
faqsAnimation="none"
/>
</div>
<div id="contact" data-section="contact">
<ContactCenter
useInvertedBackground={true}
useInvertedBackground={false}
background={{
variant: "sparkles-gradient"}}
tag="Get in Touch"
title="Plan Your Perfect Visit"
description="Have a question or need assistance? Our team is here to help you make the most of your time at Two Rivers Mall. Reach out today!"
inputPlaceholder="Enter your email"
variant: "plain"}}
tag="Contact Us"
title="Get in Touch"
description="We'd love to hear from you! Send us a message."
inputPlaceholder="Your Email Address"
buttonText="Send Message"
termsText="By submitting this form, you agree to our privacy policy and terms of service."
/>
@@ -294,19 +229,9 @@ export default function LandingPage() {
<div id="footer" data-section="footer">
<FooterCard
logoText="Two Rivers Mall"
copyrightText="© 2024 Two Rivers Mall. All rights reserved."
socialLinks={[
{
icon: Facebook,
href: "https://facebook.com/TwoRiversMall", ariaLabel: "Facebook"},
{
icon: Instagram,
href: "https://instagram.com/TwoRiversMall", ariaLabel: "Instagram"},
{
icon: Twitter,
href: "https://twitter.com/TwoRiversMall", ariaLabel: "Twitter"},
]}
logoText="My Website"
copyrightText="© 2025 My Website. All rights reserved."
socialLinks={[]}
/>
</div>
</ReactLenis>

View File

@@ -11,7 +11,7 @@ html {
body {
background-color: var(--background);
color: var(--foreground);
font-family: var(--font-nunito-sans), sans-serif;
font-family: var(--font-inter), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4,
h5,
h6 {
font-family: var(--font-nunito-sans), sans-serif;
font-family: var(--font-inter), sans-serif;
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #e3deea;
--card: #ffffff;
--foreground: #1f2027;
--primary-cta: #1f2027;
--background: #ffffff;
--card: #f9f9f9;
--foreground: #000612e6;
--primary-cta: #15479c;
--primary-cta-text: #e3deea;
--secondary-cta: #ffffff;
--secondary-cta: #f9f9f9;
--secondary-cta-text: #1f2027;
--accent: #627dc6;
--background-accent: #627dc6;
--accent: #e2e2e2;
--background-accent: #c4c4c4;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);