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 */}
+
+
+
+
- ))}
+
+
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 }) => (
+
+)
+
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) => (
-
-
-
-
- {/* Dark overlay for better text readability */}
-
-
- {/* Hover overlay */}
-
-
-
{item.category}
-
{item.title}
-
{item.description}
+ {/* Main Content Container */}
+
+ {/* Gallery Grid */}
+
+
+ {items.map((item, index) => (
+
+
+
+
+ {/* 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 */}
+
+
+
+
+ Start Your Own Meetup
+
+
+
+
+
+ {/* 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
+
)
}