diff --git a/public/images/CCNZ-bg.png b/public/images/CCNZ-bg.png new file mode 100644 index 0000000..07bebd4 Binary files /dev/null and b/public/images/CCNZ-bg.png differ diff --git a/public/images/harry.png b/public/images/harry.png new file mode 100644 index 0000000..27ed1c8 Binary files /dev/null and b/public/images/harry.png differ diff --git a/public/images/hilton-auckland.jpg b/public/images/hilton-auckland.jpg new file mode 100644 index 0000000..732dbe7 Binary files /dev/null and b/public/images/hilton-auckland.jpg differ diff --git a/src/components/CCNZSection.tsx b/src/components/CCNZSection.tsx index 588c5a0..80c69a3 100644 --- a/src/components/CCNZSection.tsx +++ b/src/components/CCNZSection.tsx @@ -1,5 +1,4 @@ -import { FC } from 'react' -import AnimatedGridPattern from './AnimatedGridPattern' +import { FC, useState, useEffect } from 'react' interface ConsultingFeature { title: string @@ -21,35 +20,47 @@ const consultingFeatures: ConsultingFeature[] = [ } ] +const backgroundImages = ['./images/CCNZ-bg.png', './images/harry.png', './images/expo2024.jpg'] + const ConsultingSection: FC = () => { - return ( -
- + const [currentImageIndex, setCurrentImageIndex] = useState(0) + const [isTransitioning, setIsTransitioning] = useState(false) + + useEffect(() => { + const timer = setInterval(() => { + setIsTransitioning(true) + setTimeout(() => { + setCurrentImageIndex((prevIndex) => (prevIndex === backgroundImages.length - 1 ? 0 : prevIndex + 1)) + setIsTransitioning(false) + }, 500) + }, 5000) + return () => clearInterval(timer) + }, []) + + return ( +
{/* Left Content Side */} -
+
-

- Need Professional - Crypto Guidance? -

-

Get expert cryptocurrency consulting services designed specifically for New Zealand investors

-
- -
- {consultingFeatures.map((feature, index) => ( -
-

{feature.title}

-

{feature.description}

+
+

+ Need Professional + Crypto Guidance? +

+ {/* Logo next to title */} +
+
+ Crypto Consulting NZ Logo +
- ))} +
+

Expert cryptocurrency consulting services designed specifically for New Zealand investors

@@ -77,61 +88,31 @@ const ConsultingSection: FC = () => { Professional consultants available now
-
-
- {/* Right Visual Side */} -
- {/* Gradient Overlay */} -
- - {/* Decorative Elements */} -
-
- - - - - +
+ {consultingFeatures.map((feature, index) => ( +
+

{feature.title}

+

{feature.description}

+
+ ))}
+
- {/* Main Image Container */} -
- {/* Consulting Logo */} -
- -
- - {/* 3D Card Effect */} -
-
-
-

Crypto Consulting NZ

-

Professional Guidance for Your Crypto Journey

-
-
+ {/* Background Image */} +
+
+
+
- -
) } diff --git a/src/components/ExpoSection.tsx b/src/components/ExpoSection.tsx index 03dccfb..6458dfb 100644 --- a/src/components/ExpoSection.tsx +++ b/src/components/ExpoSection.tsx @@ -28,17 +28,19 @@ const expoFeatures: ExpoFeature[] = [ const ExpoSection: FC = () => { return ( -
+
{/* Visual Side (Now Left) */} -
+
+ {/* Gradient Overlay */}
{/* Hexagon Grid Background */}
- {[...Array(6)].map((_, i) => ( + {[...Array(8)].map((_, i) => ( +
{ transform: `rotate(${Math.random() * 360}deg)` }} > - + +
@@ -57,10 +60,10 @@ const ExpoSection: FC = () => { {/* Floating Elements */}
- {[...Array(3)].map((_, i) => ( + {[...Array(5)].map((_, i) => (
{
{/* Main Visual Content */} -
+
{/* Expo Logo with Glow Effect */}
{/* Gradient overlay */} @@ -85,7 +88,7 @@ const ExpoSection: FC = () => {
{/* 3D Card with Animated Border */} -
+
{/* Animated Background Glow */}
@@ -123,40 +126,49 @@ const ExpoSection: FC = () => { {/* Content Container */}
{/* Title with Gradient */} -
+
+

+ Decentralized NZ++ +

+
+

- NZ Web3 Expo 2025 + Crypto & Blockchain Expo 25'

{/* Location & Date with Icons */} -
+
-
+
-

Auckland Convention Centre

+

Auckland Convention Centre

-
+
-

March 15-17

+

Coming September 2025

@@ -166,8 +178,8 @@ const ExpoSection: FC = () => {
{/* Content Side (Now Right) */} -
-
+
+

Join NZ's Premier diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index cc5dad2..8310c44 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -39,7 +39,7 @@ const Footer: FC = () => {


- +
@@ -158,6 +158,17 @@ const Footer: FC = () => {
+ ) } diff --git a/src/components/Gallery.tsx b/src/components/Gallery.tsx index 07f1d5c..f2db9fe 100644 --- a/src/components/Gallery.tsx +++ b/src/components/Gallery.tsx @@ -1,4 +1,5 @@ -import { FC } from 'react' +import { FC, useState, useEffect } from 'react' +import { Heart, Users, Sparkles } from 'lucide-react' interface GalleryItem { category: string @@ -7,6 +8,50 @@ interface GalleryItem { image: string } +interface AnimatedCounterProps { + end: number + duration?: number +} + +interface StatBoxProps { + icon: React.ReactNode + label: string + value: number +} + +const AnimatedCounter: FC = ({ end, duration = 2000 }) => { + const [count, setCount] = useState(0) + + useEffect(() => { + let startTimestamp: number | null = null + const step = (timestamp: number) => { + if (!startTimestamp) startTimestamp = timestamp + const progress = Math.min((timestamp - startTimestamp) / duration, 1) + + // Easing function for smooth deceleration + const easeOutQuart = (x: number): number => 1 - Math.pow(1 - x, 4) + const easedProgress = easeOutQuart(progress) + + setCount(Math.round(easedProgress * end)) + + if (progress < 1) { + window.requestAnimationFrame(step) + } + } + window.requestAnimationFrame(step) + }, [end, duration]) + + return {count.toLocaleString()} +} + +const StatBox: FC = ({ icon, label, value }) => ( +
+ {icon} + + {label} +
+) + const Gallery: FC = () => { const items: GalleryItem[] = [ { @@ -56,38 +101,84 @@ const Gallery: FC = () => {

Discover the dynamic evolution of Aotearoa's cryptocurrency, blockchain, and Web3 ecosystem, blending social impact, industry growth, investment opportunities, and futuristic innovation.

- {/* Gallery Grid */} -
-
- {items.map((item, index) => ( -
-
- {item.title} - - {/* Dark overlay for better text readability */} -
- - {/* Hover overlay */} -
-
- {item.category} -

{item.title}

-

{item.description}

+ {/* Main Content Container */} +
+ {/* Gallery Grid */} +
+
+ {items.map((item, index) => ( +
+
+ {item.title} + + {/* Dark overlay for better text readability */} +
+ + {/* Hover overlay */} +
+
+ {item.category} +

{item.title}

+

{item.description}

+
+ ))} +
+
+ + {/* Action Buttons and Stats Container */} +
+ {/* Support Us Button */} + + + {/* Start Meetup Button */} + + + {/* Join Community Button */} + + + {/* Stats Container */} +
+ } label="Total Attendees" value={1234} /> + } label="Total Events" value={126} /> + } label="Sponsorships" value={11} /> +
diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index 298fdef..e228a5c 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -65,7 +65,7 @@ const Navbar: FC = () => {
{/* Logo */}
- +

@@ -194,17 +194,28 @@ const Navbar: FC = () => { className="block px-4 py-2 rounded-lg text-gray-300 hover:text-white hover:bg-green-500/10 transition-colors text-sm sm:text-base" > - About us + About Us - Get help + Get Help

+ ) }