diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..5a586b3 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "css.lint.unknownAtRules": "ignore" +} diff --git a/public/QR code .png b/public/QR code .png new file mode 100644 index 0000000..ee83d57 Binary files /dev/null and b/public/QR code .png differ diff --git a/public/mobile image.jpeg b/public/mobile image.jpeg new file mode 100644 index 0000000..3b46e60 Binary files /dev/null and b/public/mobile image.jpeg differ diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index 835b3bd..65964dc 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -1,5 +1,4 @@ import React from "react"; -import Link from "next/link"; import Image from "next/image"; import { MaterialIcon } from "@/components/ui/MaterialIcon"; import { ContactForm } from "@/components/contact/ContactForm"; diff --git a/src/app/globals.css b/src/app/globals.css index 848557f..3590922 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -688,10 +688,18 @@ body { max-width: 540px; min-width: 0; box-sizing: border-box; - padding: 40px; + padding: 48px 36px; border-radius: 32px; } +@media (max-width: 640px) { + .footer-contact-card { + max-width: 100%; + padding: 32px 20px; + border-radius: 24px; + } +} + .footer-contact-card input, .footer-contact-card textarea, .footer-contact-card button { diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 710e623..18d18bd 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -88,6 +88,7 @@ export default function RootLayout({ > {/* Material Symbols Outlined */} + {/* eslint-disable-next-line @next/next/no-page-custom-font */} + + + ); diff --git a/src/app/people/page.tsx b/src/app/people/page.tsx index e554e7a..8a4a25f 100644 --- a/src/app/people/page.tsx +++ b/src/app/people/page.tsx @@ -1,7 +1,6 @@ "use client"; import React, { useState, useEffect } from "react"; -import Link from "next/link"; import Image from "next/image"; import { MaterialIcon } from "@/components/ui/MaterialIcon"; diff --git a/src/components/home/AppPromo.tsx b/src/components/home/AppPromo.tsx index f385b41..de9c226 100644 --- a/src/components/home/AppPromo.tsx +++ b/src/components/home/AppPromo.tsx @@ -3,19 +3,24 @@ import { MaterialIcon } from "@/components/ui/MaterialIcon"; const FEATURES = [ { - title: "Eco-Friendly Routing", - desc: "Our routing software matches you to stores within 2km to minimize delivery times and energy.", - icon: "near_me", + title: "Browse Nearby Stores", + desc: "See all available groceries, pharmacies, and eateries in your immediate area.", + icon: "store", }, { - title: "Live Courier Tracking", - desc: "See your neighborhood runner on a live map as they collect your essentials and ride to your gate.", - icon: "map", + title: "Reorder from Favourite Shops", + desc: "Save your go-to neighborhood stores and reorder your daily needs with a single tap.", + icon: "replay", }, { - title: "Secure Digital Payments", - desc: "Enjoy quick checkouts via UPI, credit/debit cards, and integrated wallet coins with cashbacks.", - icon: "payments", + title: "Track Your Delivery", + desc: "Get real-time updates as your neighborhood partner delivers your order straight to your door.", + icon: "local_shipping", + }, + { + title: "Discover Local Offers", + desc: "Access exclusive deals, neighborhood sales, and daily promotions from stores near you.", + icon: "local_offer", }, ]; @@ -23,7 +28,7 @@ export function AppPromo() { return (
{/* Background Dot pattern */} @@ -39,17 +44,17 @@ export function AppPromo() { {/* Left Column: Typography, benefits, download actions (7 cols) */}
- + Download Nearle Mobile

- Get More With Our
- Mobile Application + Your Neighbourhood,
+ Now in Your Pocket.

- Experience the fastest way to order groceries, hot food, and emergency home maintenance. Download the app today for live updates and community coins. + Experience the easiest way to support and order from your local neighborhood shops. Download the app today.

{/* Benefit Bullets */} @@ -60,8 +65,8 @@ export function AppPromo() {
-

{item.title}

-

+

{item.title}

+

{item.desc}

@@ -72,7 +77,7 @@ export function AppPromo() { {/* Store Badges */}
-
+
Download on the
-
+
App Store
@@ -100,10 +105,10 @@ export function AppPromo() {
-
+
GET IT ON
-
+
Google Play
@@ -125,7 +130,7 @@ export function AppPromo() {
Nearle mobile app interface showing neighborhood services
-

Order Dispatched

-

Runner is arriving in 4 mins

+

Order Confirmed

+

Your local store is preparing your order

diff --git a/src/components/home/BusinessSection.tsx b/src/components/home/BusinessSection.tsx index c5c6b71..2e17c9f 100644 --- a/src/components/home/BusinessSection.tsx +++ b/src/components/home/BusinessSection.tsx @@ -1,51 +1,37 @@ import Image from "next/image"; +import Link from "next/link"; import { MaterialIcon } from "@/components/ui/MaterialIcon"; -const FEATURES = [ +const BENEFITS = [ { - title: "Direct Customer Relationship", - desc: "Build long-term direct ties with nearby families. Own your neighborhood presence.", - }, - { - title: "Managed Instant Delivery Fleet", - desc: "We supply professional, verified moped couriers. Focus on your business, not hiring drivers.", - }, - { - title: "Neighborhood Demand Trends", - desc: "Use Nearle's analytic insights to track demand, optimize your stock, and launch promos.", - }, -]; - -const STATS = [ - { - value: "40%+", - label: "Average Revenue Rise", - icon: "trending_up", + title: "Digital Catalogue", + desc: "Showcase your products online easily to nearby customers.", + icon: "menu_book", style: "bg-primary text-white", }, { - value: "12k+", - label: "Daily Neighborhood Orders", - icon: "shopping_bag", + title: "QR Ordering", + desc: "Enable existing customers to scan and place orders directly at your counter.", + icon: "qr_code", style: "bg-brand-accent text-brand-dark", }, { - value: "5k+", - label: "Verified Retail Partners", - icon: "storefront", - style: "bg-[#faf8f5] border border-outline-variant/20 text-primary", + title: "Local Discovery", + desc: "Get discovered by residents in your neighbourhood searching for your products.", + icon: "explore", + style: "bg-white border border-outline-variant/20 text-primary", }, { - value: "24/7", - label: "Partner Helpdesk Support", - icon: "support_agent", + title: "Delivery Support", + desc: "Fulfill orders with your own staff or rely on Nearle's local delivery partners.", + icon: "local_shipping", style: "bg-[#de96f9]/20 text-primary border border-primary/10", }, ]; export function BusinessSection() { return ( -
+
{/* Merchant Section Grid */} @@ -53,59 +39,63 @@ export function BusinessSection() { {/* Left Column: Feature copywriting (7 cols) */}
- + Merchant Partnerships

- Grow your local brand in the Neighborhood. + Bring Your Store Online with Nearle.

-

- Unlock delivery, loyalty programs, and localized promotions. Join over 5,000 neighborhood partners who are digitizing their community sales channels. +

+ Reach more nearby customers, accept online orders, promote local offers, and grow repeat sales — while staying in control of your business.

-
- {FEATURES.map((feat) => ( -
-
- -
-
-

- {feat.title} -

-

- {feat.desc} -

-
+
+
+
+
- ))} + Stay in control of your pricing and orders +
+
+
+ +
+ Build direct relationships with local families +
- +
+ + Partner With Nearle + + + Talk to Our Team + +
- {/* Right Column: Premium Bento Stats Grid (5 cols) */} + {/* Right Column: Benefit Cards Bento Grid (5 cols) */}
- {STATS.map((stat, idx) => ( + {BENEFITS.map((benefit, idx) => (
-
- +
+
-

- {stat.value} -

-

- {stat.label} +

+ {benefit.title} +

+

+ {benefit.desc}

@@ -114,7 +104,7 @@ export function BusinessSection() {
- {/* CURVED PROMO BANNER: Inspired by GoMoto Hottest Pizza Banner */} + {/* CURVED PROMO BANNER */}
{/* Decorative background vectors */}
@@ -122,21 +112,21 @@ export function BusinessSection() { {/* Left copy column */}
- + Piping Hot & Fresh

- Always the Hottest Meals
& Freshest Groceries. + Everything Nearby,
From Stores You Trust.

- Our advanced insulation packs guarantee your hot food stays steaming, and frozen goods stay completely frozen until handed to you. + Groceries, medicines, food, and everyday essentials — all from your neighbourhood.

- - Order Meals Now - + Explore Stores Now +
{/* Right visual column */} diff --git a/src/components/home/Hero.tsx b/src/components/home/Hero.tsx index 589ca5d..e62c76d 100644 --- a/src/components/home/Hero.tsx +++ b/src/components/home/Hero.tsx @@ -1,4 +1,5 @@ import Image from "next/image"; +import Link from "next/link"; import { MaterialIcon } from "@/components/ui/MaterialIcon"; const QUICK_LINKS = [ @@ -30,7 +31,7 @@ export function Hero() {
{/* ─── Base Dark Background Panel (Clipped diagonally) ─── */}
- {/* Subtle Background Dot Texture (Minimal, barely visible) */} + {/* Subtle Background Dot Texture */}
- {/* Minimal Route Animation (2-3 thin lines only, very subtle) */} - - - - - - - - - - - {/* Minimal glow nodes - only 2 small ones at top */} - - - - - - {/* Only 2 very thin route lines at top - staying clear of text area */} - - - - - {/* Soft purple radial glow behind the diagonal edge (clipped) */} + {/* Soft purple radial glow */}
@@ -112,26 +52,60 @@ export function Hero() {
{/* Left Column: Text & Search Content */}
- - Express Services + + Neighbourhood commerce, made simple -

- Express +

+ Your Favourite
- Neighborhood + Local Stores, Now at Your Doorstep.

-

- Get groceries, hot meals, daily essentials, and local professional - services delivered from trusted partners within{" "} - 25-30 minutes. +

+ Order groceries, medicines, food and everyday essentials from trusted stores near you — all in one convenient app.

- {/* Mobile/Tablet Only Nearle Bag Logo */} -
+ {/* CTAs */} +
+ + Explore Nearby Stores + + + List Your Store + +
+ + {/* Trust points */} +
+
+ + Real local shops +
+
+ + Fair local prices +
+
+ + Neighbourhood delivery +
+
+ + Available in Coimbatore +
+
+ + {/* Mobile/Tablet Only Nearle Bag Logo with context pins */} +
+ + {/* Mobile Context Pins */} +
+ + Groceries +
+
+ + Pharmacy +
+
+ + Food +
- {/* Right Column: Centered Nearle bag visual */} -
+ {/* Right Column: Centered Nearle bag visual with local commerce context pins and route line */} +
-
+ + +
Nearle delivery
+ + {/* Context Pins */} +
+ + Groceries +
+
+ + Pharmacy +
+
+ + Food +
- {/* Overlapping Quick Category Links (Moved outside of .hero for correct overflow behavior) */} + {/* Overlapping Quick Category Links */}
{QUICK_LINKS.map((item) => ( @@ -178,10 +182,10 @@ export function Hero() { />
-

+

{item.name}

-

+

{item.label}

diff --git a/src/components/home/HowItWorks.tsx b/src/components/home/HowItWorks.tsx new file mode 100644 index 0000000..ad3112b --- /dev/null +++ b/src/components/home/HowItWorks.tsx @@ -0,0 +1,74 @@ +import { MaterialIcon } from "@/components/ui/MaterialIcon"; + +const STEPS = [ + { + num: "01", + title: "Choose Your Area", + desc: "See stores available around your neighbourhood.", + icon: "location_on", + color: "bg-primary/5 text-primary border-primary/10", + }, + { + num: "02", + title: "Pick Your Favourite Store", + desc: "Browse groceries, medicines, food, and daily essentials from nearby shops.", + icon: "storefront", + color: "bg-secondary/5 text-secondary border-secondary/10", + }, + { + num: "03", + title: "Place Order & Get Delivery", + desc: "Order easily and get it delivered by the store or a Nearle delivery partner.", + icon: "local_shipping", + color: "bg-[#de96f9]/10 text-primary border-[#de96f9]/20", + }, +]; + +export function HowItWorks() { + return ( +
+
+ {/* Header Section */} +
+ + Simple Process + +

+ From Your Neighbourhood Store to Your Doorstep +

+
+ + {/* Steps Layout */} +
+ {/* Connector Line (Desktop Only) */} +
+ + {STEPS.map((step) => ( +
+ {/* Step number watermark */} +
+ {step.num} +
+ + {/* Step Circle with Icon */} +
+ +
+ + {/* Title & Description */} +

+ {step.title} +

+

+ {step.desc} +

+
+ ))} +
+
+
+ ); +} diff --git a/src/components/home/HyperlocalFeatures.tsx b/src/components/home/HyperlocalFeatures.tsx index 910dba2..47a1188 100644 --- a/src/components/home/HyperlocalFeatures.tsx +++ b/src/components/home/HyperlocalFeatures.tsx @@ -1,27 +1,33 @@ import Image from "next/image"; +import Link from "next/link"; import { MaterialIcon } from "@/components/ui/MaterialIcon"; const FEATURES = [ { - title: "Verified Community Partners", - icon: "verified_user", - desc: "Every merchant on Nearle is manually verified for food hygiene, service quality, and local licensing.", + title: "Trusted Nearby Stores", + icon: "store", + desc: "Connect directly with the local merchants you know and shop from regularly.", }, { - title: "Eco-Friendly 2KM Logistics", - icon: "electric_moped", - desc: "By capping deliveries at 2km, we run a fast, eco-friendly moped fleet that reduces emissions and saves fuel.", + title: "Short-Distance Local Delivery", + icon: "local_shipping", + desc: "Delivered quickly from shops in your immediate area to keep food hot and groceries fresh.", }, { - title: "Exclusive Society Discounting", - icon: "local_activity", - desc: "We coordinate with housing societies to negotiate collective discount rates and free scheduled delivery runs.", + title: "Easy Reorders", + icon: "replay", + desc: "Save your favourite stores and reorder your weekly essentials in seconds.", + }, + { + title: "Support Local Businesses", + icon: "favorite", + desc: "Help neighbourhood stores thrive and remain competitive in a digital world.", }, ]; export function HyperlocalFeatures() { return ( -
+
{/* Scoped CSS styles for precise layout enforcement */}