12 Commits

Author SHA1 Message Date
e5a23421a7 Merge version_5 into main
Merge version_5 into main
2025-12-22 11:00:03 +00:00
02bf7a5e6d Update src/app/page.tsx 2025-12-22 10:59:58 +00:00
418ca5e438 Update src/app/layout.tsx 2025-12-22 10:59:57 +00:00
190888711a Merge version_5 into main
Merge version_5 into main
2025-12-22 10:58:17 +00:00
d5f719ea0f Update src/app/page.tsx 2025-12-22 10:58:12 +00:00
d443cf6b39 Merge version_5 into main
Merge version_5 into main
2025-12-22 10:56:19 +00:00
bed42c51aa Update src/app/page.tsx 2025-12-22 10:56:15 +00:00
6f57fcfb23 Update src/app/globals.css 2025-12-22 10:56:14 +00:00
d8aae7a5d8 Merge version_4 into main
Merge version_4 into main
2025-12-22 10:53:12 +00:00
f1dc82446a Merge version_3 into main
Merge version_3 into main
2025-12-22 10:47:57 +00:00
b91afefe1c Merge version_3 into main
Merge version_3 into main
2025-12-22 10:45:56 +00:00
351109b757 Merge version_2 into main
Merge version_2 into main
2025-12-22 10:37:47 +00:00
3 changed files with 137 additions and 279 deletions

View File

@@ -4,13 +4,13 @@
/* Base units */ /* Base units */
/* --vw is set by ThemeProvider */ /* --vw is set by ThemeProvider */
--background: #000f06; --background: #ffff00;
--card: #0d1d0d; --card: #ffff00;
--foreground: #e6ffe6; --foreground: #000000;
--primary-cta: #1cde5d; --primary-cta: #000000;
--secondary-cta: #0a1f0f; --secondary-cta: #ffff00;
--accent: #5dd882; --accent: #cccc00;
--background-accent: #0d6b32; --background-accent: #ffff00;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
@@ -495,7 +495,7 @@ html {
body { body {
background-color: var(--background); background-color: var(--background);
color: var(--foreground); color: var(--foreground);
font-family: var(--font-poppins), sans-serif; font-family: var(--font-inter-tight), sans-serif;
position: relative; position: relative;
min-height: 100vh; min-height: 100vh;
overscroll-behavior: none; overscroll-behavior: none;
@@ -508,5 +508,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: var(--font-poppins), sans-serif; font-family: var(--font-inter-tight), sans-serif;
} }

View File

@@ -1,295 +1,153 @@
"use client"; "use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import ProductCardFour from '@/components/sections/product/ProductCardFour';
import FeatureCardTwenty from '@/components/sections/feature/FeatureCardTwenty';
import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterBase from '@/components/sections/footer/FooterBase';
import { Users, TrendingUp, Target, Star, Quote } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="shift-hover" defaultButtonVariant="text-stagger"
defaultTextAnimation="reveal-blur" defaultTextAnimation="entrance-slide"
borderRadius="soft" borderRadius="rounded"
contentWidth="large" contentWidth="medium"
sizing="mediumSizeExtraSmallSpacing" sizing="medium"
background="grid" background="circleGradient"
cardStyle="solid-bordered" cardStyle="glass-elevated"
primaryButtonStyle="neon-glow-border" primaryButtonStyle="gradient"
secondaryButtonStyle="outline" secondaryButtonStyle="glass"
headingFontWeight="semibold" headingFontWeight="normal"
> >
{/* Navbar */}
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay <div className="text-center py-16">
brandName="OddsVault" <h1 className="text-4xl font-bold mb-4">OddsVault</h1>
navItems={[ <p className="text-lg opacity-75">Real-time NBA Team & Player Odds</p>
{ name: "Home", id: "hero" }, <nav className="mt-8 space-x-6">
{ name: "Team Odds", id: "product" }, <a href="#hero" className="hover:opacity-75">Home</a>
{ name: "How It Works", id: "feature" }, <a href="#product" className="hover:opacity-75">Team Odds</a>
{ name: "Testimonials", id: "testimonial" }, <a href="#feature" className="hover:opacity-75">How It Works</a>
{ name: "Get Started", id: "contact" } <a href="#testimonial" className="hover:opacity-75">Testimonials</a>
]} <a href="#contact" className="hover:opacity-75">Get Started</a>
button={{ text: "Explore Odds", href: "product" }} </nav>
/> </div>
</div> </div>
{/* Hero */}
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroBillboard <div className="text-center py-20">
title="Real-time NBA Team & Player Odds" <h1 className="text-5xl font-bold mb-6">Real-time NBA Team & Player Odds</h1>
description="Bet smarter with live updates and exclusive betting lines. Your edge in the game starts here." <p className="text-xl opacity-75 mb-8 max-w-2xl mx-auto">Bet smarter with live updates and exclusive betting lines. Your edge in the game starts here.</p>
tag="Live Now" <div className="space-x-4">
buttons={[ <button className="bg-blue-600 text-white px-8 py-3 rounded-lg hover:bg-blue-700">Get Started</button>
{ text: "Explore Odds", href: "product" }, <button className="border border-gray-300 px-8 py-3 rounded-lg hover:bg-gray-50">Learn More</button>
{ text: "Learn More", href: "feature" } </div>
]} </div>
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399481083-1b76akuc.jpg"
imageAlt="NBA basketball court"
frameStyle="card"
/>
</div> </div>
{/* Product */}
<div id="product" data-section="product"> <div id="product" data-section="product">
<ProductCardFour <div className="py-20">
title="NBA Team & Player Odds" <div className="text-center mb-16">
description="Access the most competitive betting lines for tonight's games. Live odds with real-time updates." <h2 className="text-4xl font-bold mb-4">NBA Team & Player Odds</h2>
tag="Live Now" <p className="text-lg opacity-75">Access the most competitive betting lines for tonight's games. Live odds with real-time updates.</p>
textboxLayout="default" </div>
gridVariant="uniform-all-items-equal" <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 max-w-6xl mx-auto px-4">
animationType="slide-up" <div className="bg-white rounded-lg shadow-lg p-6 border">
containerStyle="default" <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399486812-olv4o32v.jpg" alt="Lakers vs Celtics matchup" className="w-full h-32 object-cover rounded mb-4" />
useInvertedBackground="noInvert" <h3 className="font-semibold mb-2">Lakers vs Celtics Spread</h3>
products={[ <p className="text-blue-600 font-bold">-110 / +110</p>
{ </div>
id: "1", <div className="bg-white rounded-lg shadow-lg p-6 border">
name: "Lakers vs Celtics Spread", <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399482580-ts2malqq.png" alt="LeBron James points prop" className="w-full h-32 object-cover rounded mb-4" />
price: "-110 / +110", <h3 className="font-semibold mb-2">LeBron Over 25.5 Points</h3>
variant: "Game Time: Tonight 7:30 PM", <p className="text-blue-600 font-bold">-115 / -105</p>
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399486812-olv4o32v.jpg", </div>
imageAlt: "Lakers vs Celtics matchup" <div className="bg-white rounded-lg shadow-lg p-6 border">
}, <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399481083-1b76akuc.jpg" alt="Warriors game odds" className="w-full h-32 object-cover rounded mb-4" />
{ <h3 className="font-semibold mb-2">Warriors Moneyline</h3>
id: "2", <p className="text-blue-600 font-bold">-250 / +210</p>
name: "LeBron Over 25.5 Points", </div>
price: "-115 / -105", <div className="bg-white rounded-lg shadow-lg p-6 border">
variant: "Player Prop - Live Odds", <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399487883-n3fvenqc.jpg" alt="Doncic triple double prop" className="w-full h-32 object-cover rounded mb-4" />
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399482580-ts2malqq.png", <h3 className="font-semibold mb-2">Luka Doncic Triple Double</h3>
imageAlt: "LeBron James points prop" <p className="text-blue-600 font-bold">+180 / -200</p>
}, </div>
{ </div>
id: "3", </div>
name: "Warriors Moneyline",
price: "-250 / +210",
variant: "Full Game - Best Odds",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399481083-1b76akuc.jpg",
imageAlt: "Warriors game odds"
},
{
id: "4",
name: "Luka Doncic Triple Double",
price: "+180 / -200",
variant: "Special Props - Updated",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399487883-n3fvenqc.jpg",
imageAlt: "Doncic triple double prop"
}
]}
/>
</div> </div>
{/* Feature */}
<div id="feature" data-section="feature"> <div id="feature" data-section="feature">
<FeatureCardTwenty <div className="py-20 bg-gray-50">
title="How OddsVault Stands Apart" <div className="text-center mb-16">
description="Different approach to NBA sports betting. We deliver real-time odds, exclusive player props, and competitive lines you won't find elsewhere. Built for serious bettors who demand clarity and accuracy." <h2 className="text-4xl font-bold mb-4">How OddsVault Stands Apart</h2>
tag="Why Choose Us" <p className="text-lg opacity-75 max-w-3xl mx-auto">Different approach to NBA sports betting. We deliver real-time odds, exclusive player props, and competitive lines you won't find elsewhere. Built for serious bettors who demand clarity and accuracy.</p>
textboxLayout="default" </div>
useInvertedBackground="noInvert" <div className="grid grid-cols-2 lg:grid-cols-4 gap-6 max-w-6xl mx-auto px-4">
images={[ <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399485808-dgvco7wg.jpg" alt="Real-time odds updates" className="w-full h-48 object-cover rounded-lg" />
{ <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399484647-2hnh078u.jpg" alt="Professional betting platform" className="w-full h-48 object-cover rounded-lg" />
id: 1, <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399487883-n3fvenqc.jpg" alt="Advanced player analytics" className="w-full h-48 object-cover rounded-lg" />
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399485808-dgvco7wg.jpg", <img src="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399486812-olv4o32v.jpg" alt="Comprehensive game analysis" className="w-full h-48 object-cover rounded-lg" />
imageAlt: "Real-time odds updates" </div>
}, </div>
{
id: 2,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399484647-2hnh078u.jpg",
imageAlt: "Professional betting platform"
},
{
id: 3,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399487883-n3fvenqc.jpg",
imageAlt: "Advanced player analytics"
},
{
id: 4,
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399486812-olv4o32v.jpg",
imageAlt: "Comprehensive game analysis"
}
]}
/>
</div>
<div id="metric" data-section="metric">
<MetricCardOne
title="OddsVault by the Numbers"
description="Trusted by thousands of NBA bettors worldwide"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
animationType="slide-up"
containerStyle="default"
useInvertedBackground="noInvert"
metrics={[
{
id: "1",
value: "50K+",
title: "Active Bettors",
description: "Daily users on the platform",
icon: Users
},
{
id: "2",
value: "250+",
title: "Live Odds",
description: "Updated every second",
icon: TrendingUp
},
{
id: "3",
value: "1M+",
title: "Bets Placed",
description: "Successful monthly transactions",
icon: Target
},
{
id: "4",
value: "4.8★",
title: "User Rating",
description: "Highest rated sportsbook",
icon: Star
}
]}
/>
</div>
<div id="testimonial" data-section="testimonial">
<TestimonialCardSix
title="Trusted by Winning Bettors"
description="Real players, real wins, real stories. See why serious NBA bettors choose OddsVault."
animationType="slide-up"
textboxLayout="default"
useInvertedBackground="noInvert"
testimonials={[
{
id: "1",
name: "Marcus Johnson",
handle: "Professional Bettor",
testimonial: "I've tried every major sportsbook out there. OddsVault consistently offers the tightest spreads and most competitive lines. My ROI has improved significantly since switching.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399489339-4b0slwhc.jpg",
imageAlt: "Marcus Johnson",
icon: Quote
},
{
id: "2",
name: "Sarah Chen",
handle: "Sports Analytics Expert",
testimonial: "The live odds updates are lightning fast. I caught a line movement before anyone else and made a killing on the Warriors game. This is the platform for serious players.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399490259-ptyv09vk.jpg",
imageAlt: "Sarah Chen",
icon: Quote
},
{
id: "3",
name: "James Rodriguez",
handle: "Trading Strategist",
testimonial: "The player props selection here is unmatched. Every bet I've analyzed has been accurate and profitable. OddsVault is my go-to platform for serious betting.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399481083-1b76akuc.jpg",
imageAlt: "James Rodriguez",
icon: Quote
},
{
id: "4",
name: "Emma Wilson",
handle: "Data Analyst",
testimonial: "The real-time analytics dashboard is incredible. I can track line movements across multiple books simultaneously. This is the future of sports betting.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399482580-ts2malqq.png",
imageAlt: "Emma Wilson",
icon: Quote
},
{
id: "5",
name: "David Park",
handle: "Betting Coach",
testimonial: "I recommend OddsVault to all my clients. The platform is user-friendly, odds are sharp, and the customer service is exceptional.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399484647-2hnh078u.jpg",
imageAlt: "David Park",
icon: Quote
},
{
id: "6",
name: "Lisa Turner",
handle: "Sharp Bettor",
testimonial: "Best platform for finding value in NBA odds. The interface is clean, execution is fast, and limits are generous. Exactly what a pro bettor needs.",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399485808-dgvco7wg.jpg",
imageAlt: "Lisa Turner",
icon: Quote
}
]}
/>
</div> </div>
{/* Contact */}
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactSplit <div className="py-20">
tag="Stay Updated" <div className="max-w-4xl mx-auto px-4 text-center">
title="Get Live Odds Alerts" <h2 className="text-4xl font-bold mb-4">Get Live Odds Alerts</h2>
description="Never miss a line movement. Get instant notifications when odds shift, new player props drop, or your favorite teams are playing." <p className="text-lg opacity-75 mb-8">Never miss a line movement. Get instant notifications when odds shift, new player props drop, or your favorite teams are playing.</p>
useInvertedBackground="noInvert" <div className="flex flex-col sm:flex-row gap-4 justify-center max-w-md mx-auto">
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/gallery/uploaded-1766399484647-2hnh078u.jpg" <input type="email" placeholder="Enter your email" className="flex-1 px-4 py-3 border border-gray-300 rounded-lg" />
imageAlt="NBA arena packed with fans" <button className="bg-blue-600 text-white px-8 py-3 rounded-lg hover:bg-blue-700">Notify Me</button>
mediaPosition="right" </div>
inputPlaceholder="Enter your email" <p className="text-sm opacity-60 mt-4">We respect your inbox. Unsubscribe anytime. Real-time odds updates only.</p>
buttonText="Notify Me" </div>
termsText="We respect your inbox. Unsubscribe anytime. Real-time odds updates only." </div>
/>
</div> </div>
{/* Footer */}
<div id="footer" data-section="footer"> <div id="footer" data-section="footer">
<FooterBase <div className="bg-gray-900 text-white py-16">
logoText="OddsVault" <div className="max-w-6xl mx-auto px-4">
copyrightText="© 2025 OddsVault. All rights reserved." <div className="grid grid-cols-1 md:grid-cols-4 gap-8">
columns={[ <div>
{ <h3 className="font-bold text-xl mb-4">OddsVault</h3>
title: "Platform", <p className="opacity-75">Real-time NBA betting odds platform</p>
items: [ </div>
{ label: "How It Works", href: "feature" }, <div>
{ label: "Team Odds", href: "product" }, <h4 className="font-semibold mb-4">Platform</h4>
{ label: "Player Props", href: "product" }, <ul className="space-y-2 opacity-75">
{ label: "Live Updates", href: "hero" } <li><a href="#feature" className="hover:opacity-100">How It Works</a></li>
] <li><a href="#product" className="hover:opacity-100">Team Odds</a></li>
}, <li><a href="#product" className="hover:opacity-100">Player Props</a></li>
{ <li><a href="#hero" className="hover:opacity-100">Live Updates</a></li>
title: "Company", </ul>
items: [ </div>
{ label: "About Us", href: "hero" }, <div>
{ label: "Contact", href: "contact" }, <h4 className="font-semibold mb-4">Company</h4>
{ label: "Blog", href: "hero" }, <ul className="space-y-2 opacity-75">
{ label: "Careers", href: "hero" } <li><a href="#hero" className="hover:opacity-100">About Us</a></li>
] <li><a href="#contact" className="hover:opacity-100">Contact</a></li>
}, <li><a href="#hero" className="hover:opacity-100">Blog</a></li>
{ <li><a href="#hero" className="hover:opacity-100">Careers</a></li>
title: "Legal", </ul>
items: [ </div>
{ label: "Terms of Service", href: "hero" }, <div>
{ label: "Privacy Policy", href: "hero" }, <h4 className="font-semibold mb-4">Legal</h4>
{ label: "Responsible Gambling", href: "hero" }, <ul className="space-y-2 opacity-75">
{ label: "Compliance", href: "hero" } <li><a href="#hero" className="hover:opacity-100">Terms of Service</a></li>
] <li><a href="#hero" className="hover:opacity-100">Privacy Policy</a></li>
} <li><a href="#hero" className="hover:opacity-100">Responsible Gambling</a></li>
]} <li><a href="#hero" className="hover:opacity-100">Compliance</a></li>
/> </ul>
</div>
</div>
<div className="border-t border-gray-700 mt-12 pt-8 text-center opacity-75">
<p>© 2025 OddsVault. All rights reserved.</p>
</div>
</div>
</div>
</div> </div>
</ThemeProvider> </ThemeProvider>
); );