diff --git a/public/delivery.png b/public/delivery.png new file mode 100644 index 0000000..ed2a7d1 Binary files /dev/null and b/public/delivery.png differ diff --git a/public/merchant.png b/public/merchant.png new file mode 100644 index 0000000..5d0ac49 Binary files /dev/null and b/public/merchant.png differ diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index b078d78..e629d06 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -102,12 +102,12 @@ export default function AboutPage() { > -

{card.title} -

+

-

{c.count}

+

{c.count}

{c.label}

diff --git a/src/app/brands/page.tsx b/src/app/brands/page.tsx index 38c367b..a482f3f 100644 --- a/src/app/brands/page.tsx +++ b/src/app/brands/page.tsx @@ -186,7 +186,7 @@ export default function BrandsPage() {
-

{item.title}

+

{item.title}

{item.desc}

@@ -307,9 +307,9 @@ export default function BrandsPage() {
-

+

{step.title} -

+

{step.desc}

))} diff --git a/src/app/businesses/page.tsx b/src/app/businesses/page.tsx index d1b4eb2..85cc7e4 100644 --- a/src/app/businesses/page.tsx +++ b/src/app/businesses/page.tsx @@ -152,9 +152,9 @@ export default function BusinessesPage() {
-

+

Get Online -

+

Introduce your business to your Neighbourhood. Compete with online businesses through your offline store.

@@ -181,9 +181,9 @@ export default function BusinessesPage() {
-

+

Get Noticed -

+

Your products get published to Nearle customers in your neighborhood through the app. Customers search based on location, products, discounts, and promos.

@@ -202,9 +202,9 @@ export default function BusinessesPage() {
-

+

Get Simplified -

+

Delight the community with a personalized online experience. Unlock revenue opportunities and marketing strategies that will take your business further.

diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx index 7244b5f..db24edd 100644 --- a/src/app/contact/page.tsx +++ b/src/app/contact/page.tsx @@ -38,7 +38,7 @@ export default function ContactPage() {
-

R.S. Puram Hub

+

R.S. Puram Hub

Connecting vendors & residents

diff --git a/src/app/delivery-partners/page.tsx b/src/app/delivery-partners/page.tsx index 57d3cd3..616293f 100644 --- a/src/app/delivery-partners/page.tsx +++ b/src/app/delivery-partners/page.tsx @@ -2,8 +2,7 @@ import React from "react"; import Link from "next/link"; import { MaterialIcon } from "@/components/ui/MaterialIcon"; import { PremiumPageShell } from "@/components/layout/PremiumPageShell"; -import { HeroVisualCollage } from "@/components/layout/HeroVisualCollage"; -import { FeatureStatsRow } from "@/components/ui/FeatureStatsRow"; +import { DeliveryHero } from "@/components/heroes/DeliveryHero"; import { FAQAccordion } from "@/components/ui/FAQAccordion"; import { AnimatedSection } from "@/components/motion/AnimatedSection"; import { AnimatedGrid, AnimatedCard } from "@/components/motion/AnimatedGrid"; @@ -23,13 +22,6 @@ export const metadata: Metadata = { }, }; -const HERO_STATS = [ - { title: "Flexible Hours", icon: "schedule", desc: "Work when it suits you" }, - { title: "Weekly Payouts", icon: "payments", desc: "Earnings settled every week" }, - { title: "Short Distances", icon: "near_me", desc: "Deliver within your neighbourhood" }, - { title: "Local Support", icon: "support_agent", desc: "Our team is always there" }, -]; - const BENEFITS = [ { icon: "access_time", @@ -161,67 +153,9 @@ const FAQ_ITEMS = [ ]; export default function DeliveryPartnersPage() { - const collageCards = [ - { text: "Flexible Hours", icon: "access_time" }, - { text: "Weekly Payouts", icon: "payments" }, - { text: "Local Deliveries", icon: "near_me" }, - ]; - return ( - {/* ─── Hero Section ─── */} -
-
-
-
- - Delivery Partners - - -

- Deliver Locally. -
- Earn Daily. -

- -

- Join the Nearle delivery network and earn by making short, local deliveries in your neighbourhood, on your own schedule, at your own pace. -

- -
- - Join the Delivery Network - - - See Earnings - -
-
- -
- -
-
-
- -
-
- -
-
-
+ {/* ─── Benefits Grid ─── */}
@@ -250,7 +184,7 @@ export default function DeliveryPartnersPage() {
-

{benefit.title}

+

{benefit.title}

{benefit.desc}

@@ -291,7 +225,7 @@ export default function DeliveryPartnersPage() {
-

{req.title}

+

{req.title}

{req.desc}

diff --git a/src/app/globals.css b/src/app/globals.css index 09cccb0..f57122c 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -723,7 +723,7 @@ body { backdrop-filter: blur(10px); } -.experience-card h3 { +.experience-card__title { color: white; font-size: clamp(24px, 2vw, 34px); line-height: 1.1; diff --git a/src/app/merchants/page.tsx b/src/app/merchants/page.tsx index c0377e4..ab92a94 100644 --- a/src/app/merchants/page.tsx +++ b/src/app/merchants/page.tsx @@ -2,8 +2,7 @@ import React from "react"; import Link from "next/link"; import { MaterialIcon } from "@/components/ui/MaterialIcon"; import { PremiumPageShell } from "@/components/layout/PremiumPageShell"; -import { HeroVisualCollage } from "@/components/layout/HeroVisualCollage"; -import { FeatureStatsRow } from "@/components/ui/FeatureStatsRow"; +import { MerchantsHero } from "@/components/heroes/MerchantsHero"; import { FAQAccordion } from "@/components/ui/FAQAccordion"; import { AnimatedSection } from "@/components/motion/AnimatedSection"; import { AnimatedGrid, AnimatedCard } from "@/components/motion/AnimatedGrid"; @@ -22,13 +21,6 @@ export const metadata: Metadata = { }, }; -const HERO_STATS = [ - { title: "Digital Catalogue", icon: "menu_book", desc: "Showcase your products" }, - { title: "QR Ordering", icon: "qr_code", desc: "Scan & order from your store" }, - { title: "Local Discovery", icon: "location_on", desc: "Get found by nearby customers" }, - { title: "Order Management", icon: "assignment", desc: "Track every order live" }, -]; - const BENEFITS = [ { icon: "menu_book", @@ -164,67 +156,9 @@ const FAQ_ITEMS = [ ]; export default function MerchantsPage() { - const collageCards = [ - { text: "Digital Catalogue", icon: "menu_book" }, - { text: "Local Orders", icon: "receipt_long" }, - { text: "Nearby Customers", icon: "people_nearby" }, - ]; - return ( - {/* ─── Hero Section ─── */} -
-
-
-
- - Merchant Partners - - -

- Bring Your Store Online -
- with Nearle. -

- -

- Your neighbourhood customers are already looking for you online. Get discovered, take orders, and grow your business, without leaving your store. -

- -
- - Become a Merchant Partner - - - See How It Works - -
-
- -
- -
-
-
- -
-
- -
-
-
+ {/* ─── Merchant Benefits Grid ─── */}
@@ -253,7 +187,7 @@ export default function MerchantsPage() {
-

{benefit.title}

+

{benefit.title}

{benefit.desc}

@@ -291,9 +225,9 @@ export default function MerchantsPage() {
-

+

{step.title} -

+

{step.desc}

))} @@ -342,7 +276,7 @@ export default function MerchantsPage() {
-

{reason.title}

+

{reason.title}

{reason.desc}

diff --git a/src/app/people/page.tsx b/src/app/people/page.tsx index 6535e1f..b7344e6 100644 --- a/src/app/people/page.tsx +++ b/src/app/people/page.tsx @@ -181,7 +181,7 @@ export default function PeoplePage() {
-

{offering.title}

+

{offering.title}

{offering.descr}

@@ -215,7 +215,7 @@ export default function PeoplePage() {
-

{s.count}

+

{s.count}

{s.label}

@@ -293,7 +293,7 @@ export default function PeoplePage() {
-

{b.title}

+

{b.title}

{b.microcopy}

{b.text}

@@ -458,7 +458,7 @@ export default function PeoplePage() {
-

{b.title}

+

{b.title}

{b.text}

diff --git a/src/app/privacy/page.tsx b/src/app/privacy/page.tsx index b75c07f..6f2e24f 100644 --- a/src/app/privacy/page.tsx +++ b/src/app/privacy/page.tsx @@ -82,7 +82,7 @@ export default function PrivacyPolicyPage() {
-

{point.title}

+

{point.title}

{point.desc}

@@ -246,7 +246,7 @@ export default function PrivacyPolicyPage() {

If you have any questions, concerns, or complaints about this Privacy Policy or how Nearle handles your data, please contact:

-

Nearle Privacy Team

+

Nearle Privacy Team

diff --git a/src/app/terms/page.tsx b/src/app/terms/page.tsx index f47cedf..6a84f16 100644 --- a/src/app/terms/page.tsx +++ b/src/app/terms/page.tsx @@ -84,7 +84,7 @@ export default function TermsOfServicePage() {
-

{card.title}

+

{card.title}

{card.desc}

@@ -254,7 +254,7 @@ export default function TermsOfServicePage() {

For questions about these Terms of Service or to raise a dispute, contact:

-

Nearle Legal Team

+

Nearle Legal Team

diff --git a/src/components/businesses/BusinessFeaturesGrid.tsx b/src/components/businesses/BusinessFeaturesGrid.tsx index 532ac33..cae5ecd 100644 --- a/src/components/businesses/BusinessFeaturesGrid.tsx +++ b/src/components/businesses/BusinessFeaturesGrid.tsx @@ -483,12 +483,12 @@ export function BusinessFeaturesGrid() {
-

{feat.title} -

+

{feat.descr}

diff --git a/src/components/contact/ContactForm.tsx b/src/components/contact/ContactForm.tsx index 0b1e3fd..2917dd5 100644 --- a/src/components/contact/ContactForm.tsx +++ b/src/components/contact/ContactForm.tsx @@ -259,7 +259,7 @@ export function ContactForm() {
-

Message Sent!

+

Message Sent!

Thank you for reaching out. We will get back to you within 24 hours.

diff --git a/src/components/delivery/AnimatedTimeline.tsx b/src/components/delivery/AnimatedTimeline.tsx index b997dfa..46fb19b 100644 --- a/src/components/delivery/AnimatedTimeline.tsx +++ b/src/components/delivery/AnimatedTimeline.tsx @@ -56,7 +56,7 @@ export function AnimatedTimeline({ items }: { items: TimelineItem[] }) {
-

{item.title}

+

{item.title}

{item.time} diff --git a/src/components/heroes/ContactHero.tsx b/src/components/heroes/ContactHero.tsx index 3332fb5..35b49ad 100644 --- a/src/components/heroes/ContactHero.tsx +++ b/src/components/heroes/ContactHero.tsx @@ -127,7 +127,7 @@ export function ContactHero() {
-

{item.label}

+

{item.label}

{item.value}

diff --git a/src/components/heroes/DeliveryHero.tsx b/src/components/heroes/DeliveryHero.tsx new file mode 100644 index 0000000..68bd2b3 --- /dev/null +++ b/src/components/heroes/DeliveryHero.tsx @@ -0,0 +1,96 @@ +"use client"; + +import Image from "next/image"; +import Link from "next/link"; +import { motion } from "framer-motion"; +import { FeatureStatsRow } from "@/components/ui/FeatureStatsRow"; +import { HeroLogo } from "@/components/heroes/HeroLogo"; +import { staggerFast } from "@/lib/animations"; + +const HERO_STATS = [ + { title: "Flexible Hours", icon: "schedule", desc: "Work when it suits you" }, + { title: "Weekly Payouts", icon: "payments", desc: "Earnings settled every week" }, + { title: "Short Distances", icon: "near_me", desc: "Deliver within your neighbourhood" }, + { title: "Local Support", icon: "support_agent", desc: "Our team is always there" }, +]; + +const EASE = [0.22, 1, 0.36, 1] as [number, number, number, number]; + +// Shared cascade timing: logo settles at ~1.2s, then badge → heading → description → CTA +const badgeVariant = { + hidden: { opacity: 0, scale: 0.88 }, + visible: { opacity: 1, scale: 1, transition: { type: "spring" as const, stiffness: 280, damping: 20, delay: 0.9 } }, +}; +const titleVariant = { + hidden: { opacity: 0, y: 36 }, + visible: { opacity: 1, y: 0, transition: { duration: 0.65, delay: 1.05, ease: EASE } }, +}; +const descVariant = { + hidden: { opacity: 0, y: 24 }, + visible: { opacity: 1, y: 0, transition: { duration: 0.5, delay: 1.25, ease: EASE } }, +}; +const ctaVariant = { + hidden: { opacity: 0, y: 16 }, + visible: { opacity: 1, y: 0, transition: { duration: 0.45, delay: 1.4, ease: EASE } }, +}; + +export function DeliveryHero() { + return ( +
+
+ +
+ +
+ + + + + + Delivery Partners + + + + Deliver Locally. +
+ Earn Daily. +
+ + + Join the Nearle delivery network and earn by making short, local deliveries in your neighbourhood, on your own schedule, at your own pace. + +
+
+
+ +
+
+ +
+
+
+ ); +} diff --git a/src/components/heroes/MerchantsHero.tsx b/src/components/heroes/MerchantsHero.tsx new file mode 100644 index 0000000..22a3ce5 --- /dev/null +++ b/src/components/heroes/MerchantsHero.tsx @@ -0,0 +1,96 @@ +"use client"; + +import Image from "next/image"; +import Link from "next/link"; +import { motion } from "framer-motion"; +import { FeatureStatsRow } from "@/components/ui/FeatureStatsRow"; +import { HeroLogo } from "@/components/heroes/HeroLogo"; +import { staggerContainer } from "@/lib/animations"; + +const HERO_STATS = [ + { title: "Digital Catalogue", icon: "menu_book", desc: "Showcase your products" }, + { title: "QR Ordering", icon: "qr_code", desc: "Scan & order from your store" }, + { title: "Local Discovery", icon: "location_on", desc: "Get found by nearby customers" }, + { title: "Order Management", icon: "assignment", desc: "Track every order live" }, +]; + +const EASE = [0.22, 1, 0.36, 1] as [number, number, number, number]; + +// Shared cascade timing: logo settles at ~1.2s, then badge → heading → description → CTA +const badgeVariant = { + hidden: { opacity: 0, x: -20 }, + visible: { opacity: 1, x: 0, transition: { duration: 0.5, delay: 0.9, ease: EASE } }, +}; +const titleVariant = { + hidden: { opacity: 0, y: 28 }, + visible: { opacity: 1, y: 0, transition: { duration: 0.55, delay: 1.05, ease: EASE } }, +}; +const descVariant = { + hidden: { opacity: 0 }, + visible: { opacity: 1, transition: { duration: 0.45, delay: 1.25, ease: "easeOut" as const } }, +}; +const ctaVariant = { + hidden: { opacity: 0, y: 16 }, + visible: { opacity: 1, y: 0, transition: { duration: 0.45, delay: 1.4, ease: EASE } }, +}; + +export function MerchantsHero() { + return ( +
+
+ +
+ +
+ + + + + + Merchant Partners + + + + Bring Your Store Online +
+ with Nearle. +
+ + + Your neighbourhood customers are already looking for you online. Get discovered, take orders, and grow your business, without leaving your store. + +
+
+
+ +
+
+ +
+
+
+ ); +} diff --git a/src/components/home/BusinessSection.tsx b/src/components/home/BusinessSection.tsx index 4e2ef38..6f2a4c5 100644 --- a/src/components/home/BusinessSection.tsx +++ b/src/components/home/BusinessSection.tsx @@ -108,7 +108,7 @@ function LocalDiscoveryVisual() { Owner
-

Kumar Provision Store

+

Kumar Provision Store

Gandhi Nagar, West Delhi

@@ -238,9 +238,9 @@ export function BusinessSection() {
-

+

{feature.title} -

+

{feature.desc}

@@ -290,9 +290,9 @@ export function BusinessSection() { Success Story -

+

Kumar Provision Store -

+

Nearle helped us reach more customers in our area and manage orders effortlessly.

diff --git a/src/components/home/HowItWorks.tsx b/src/components/home/HowItWorks.tsx index 608034b..4958db4 100644 --- a/src/components/home/HowItWorks.tsx +++ b/src/components/home/HowItWorks.tsx @@ -378,9 +378,9 @@ export function HowItWorks() {
-

+

{step.title} -

+

{step.desc}

diff --git a/src/components/home/HyperlocalFeatures.tsx b/src/components/home/HyperlocalFeatures.tsx index 421039c..f77ef66 100644 --- a/src/components/home/HyperlocalFeatures.tsx +++ b/src/components/home/HyperlocalFeatures.tsx @@ -115,9 +115,9 @@ export function HyperlocalFeatures() {
-

+

{item.title} -

+

{item.desc}

diff --git a/src/components/home/ServiceCategories.tsx b/src/components/home/ServiceCategories.tsx index 5e2ae6b..19fb00a 100644 --- a/src/components/home/ServiceCategories.tsx +++ b/src/components/home/ServiceCategories.tsx @@ -137,9 +137,9 @@ export function ServiceCategories() { {/* Card Body */}
-

+

{cat.name} -

+

{cat.desc}

diff --git a/src/components/home/WhyNearle.tsx b/src/components/home/WhyNearle.tsx index 0f142e7..7a10005 100644 --- a/src/components/home/WhyNearle.tsx +++ b/src/components/home/WhyNearle.tsx @@ -100,9 +100,9 @@ export function WhyNearle() {
-

+

{card.title} -

+

{card.desc}