12 Commits

Author SHA1 Message Date
25777d0e8d Update src/app/standings/page.tsx 2026-04-08 06:06:42 +00:00
6c49400276 Update src/app/races/page.tsx 2026-04-08 06:06:42 +00:00
5f7dfdbb6a Update src/app/news/page.tsx 2026-04-08 06:06:41 +00:00
306c2b4e44 Update src/app/drivers/page.tsx 2026-04-08 06:06:41 +00:00
aad5269a7b Add src/app/standings/page.tsx 2026-04-08 06:06:12 +00:00
e7b5d0d730 Add src/app/races/page.tsx 2026-04-08 06:06:12 +00:00
586c8f27b3 Update src/app/page.tsx 2026-04-08 06:06:12 +00:00
7cb9f28c0d Add src/app/news/page.tsx 2026-04-08 06:06:11 +00:00
0559ce02bb Add src/app/drivers/page.tsx 2026-04-08 06:06:11 +00:00
943392dbd0 Merge version_1 into main
Merge version_1 into main
2026-04-08 06:03:01 +00:00
a06c234ffb Merge version_1 into main
Merge version_1 into main
2026-04-08 06:02:35 +00:00
286b7521d0 Merge version_1 into main
Merge version_1 into main
2026-04-08 06:02:06 +00:00
5 changed files with 117 additions and 67 deletions

20
src/app/drivers/page.tsx Normal file
View File

@@ -0,0 +1,20 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterBase from '@/components/sections/footer/FooterBase';
export default function DriversPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<div id="nav" data-section="nav">
<NavbarStyleCentered navItems={[{ name: "Home", id: "/" }, { name: "Races", id: "/races" }, { name: "Drivers", id: "/drivers" }, { name: "Standings", id: "/standings" }, { name: "News", id: "/news" }]} brandName="F1 Universe" />
</div>
<main className="pt-32 pb-20 px-6 max-w-7xl mx-auto min-h-screen">
<h1 className="text-4xl font-bold mb-8">Driver Profiles</h1>
<p>Detailed driver statistics and profiles grid content goes here.</p>
</main>
<FooterBase logoText="F1 Universe" columns={[]} />
</ThemeProvider>
);
}

20
src/app/news/page.tsx Normal file
View File

@@ -0,0 +1,20 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterBase from '@/components/sections/footer/FooterBase';
export default function NewsPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<div id="nav" data-section="nav">
<NavbarStyleCentered navItems={[{ name: "Home", id: "/" }, { name: "Races", id: "/races" }, { name: "Drivers", id: "/drivers" }, { name: "Standings", id: "/standings" }, { name: "News", id: "/news" }]} brandName="F1 Universe" />
</div>
<main className="pt-32 pb-20 px-6 max-w-7xl mx-auto min-h-screen">
<h1 className="text-4xl font-bold mb-8">Latest F1 News</h1>
<p>Dynamic blog feed content goes here.</p>
</main>
<FooterBase logoText="F1 Universe" columns={[]} />
</ThemeProvider>
);
}

View File

@@ -12,6 +12,10 @@ import TeamCardFive from '@/components/sections/team/TeamCardFive';
import { Activity, Gauge, Shield, Target, Zap } from "lucide-react"; import { Activity, Gauge, Shield, Target, Zap } from "lucide-react";
export default function LandingPage() { export default function LandingPage() {
const handleAction = () => {
console.log("Button clicked");
};
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="hover-magnetic" defaultButtonVariant="hover-magnetic"
@@ -29,14 +33,10 @@ export default function LandingPage() {
<div id="nav" data-section="nav"> <div id="nav" data-section="nav">
<NavbarStyleCentered <NavbarStyleCentered
navItems={[ navItems={[
{ { name: "Home", id: "hero" },
name: "Home", id: "hero"}, { name: "Telemetry", id: "features" },
{ { name: "Calendar", id: "faq" },
name: "Telemetry", id: "features"}, { name: "Contact", id: "contact" },
{
name: "Calendar", id: "faq"},
{
name: "Contact", id: "contact"},
]} ]}
brandName="F1 Universe" brandName="F1 Universe"
/> />
@@ -50,17 +50,13 @@ export default function LandingPage() {
imageAlt="F1 car in cinematic lighting" imageAlt="F1 car in cinematic lighting"
showDimOverlay={true} showDimOverlay={true}
showBlur={true} showBlur={true}
buttons={[{ text: "Explore Now", onClick: handleAction }]}
avatars={[ avatars={[
{ { src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 1" },
src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 1"}, { src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 2" },
{ { src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 3" },
src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 2"}, { src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 4" },
{ { src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 5" },
src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 3"},
{
src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 4"},
{
src: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg", alt: "Driver 5"},
]} ]}
avatarText="Join 50,000+ elite fans" avatarText="Join 50,000+ elite fans"
/> />
@@ -72,21 +68,11 @@ export default function LandingPage() {
textboxLayout="split" textboxLayout="split"
useInvertedBackground={true} useInvertedBackground={true}
features={[ features={[
{ { icon: Zap, title: "Live Lap Times", description: "Precision timing for every driver on the grid." },
icon: Zap, { icon: Shield, title: "Tire Telemetry", description: "Track compound wear and grip status in real-time." },
title: "Live Lap Times", description: "Precision timing for every driver on the grid."}, { icon: Target, title: "DRS Zones", description: "Monitor overtaking opportunities across the circuit." },
{ { icon: Gauge, title: "Engine Mapping", description: "Advanced power unit analytics for every lap." },
icon: Shield, { icon: Activity, title: "Downforce Metrics", description: "Aerodynamic efficiency tracking for high-speed corners." },
title: "Tire Telemetry", description: "Track compound wear and grip status in real-time."},
{
icon: Target,
title: "DRS Zones", description: "Monitor overtaking opportunities across the circuit."},
{
icon: Gauge,
title: "Engine Mapping", description: "Advanced power unit analytics for every lap."},
{
icon: Activity,
title: "Downforce Metrics", description: "Aerodynamic efficiency tracking for high-speed corners."},
]} ]}
title="Real-Time Telemetry" title="Real-Time Telemetry"
description="Access live race data, driver performance tracking, and mechanical insights powered by high-speed APIs." description="Access live race data, driver performance tracking, and mechanical insights powered by high-speed APIs."
@@ -99,16 +85,11 @@ export default function LandingPage() {
textboxLayout="default" textboxLayout="default"
useInvertedBackground={false} useInvertedBackground={false}
team={[ team={[
{ { id: "d1", name: "Lewis Hamilton", role: "7x World Champion", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=1" },
id: "d1", name: "Lewis Hamilton", role: "7x World Champion", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=1"}, { id: "d2", name: "Max Verstappen", role: "Defending Champion", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=2" },
{ { id: "d3", name: "Charles Leclerc", role: "Ferrari Specialist", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=3" },
id: "d2", name: "Max Verstappen", role: "Defending Champion", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=2"}, { id: "d4", name: "Lando Norris", role: "Rising Star", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=4" },
{ { id: "d5", name: "George Russell", role: "Technical Lead", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=5" },
id: "d3", name: "Charles Leclerc", role: "Ferrari Specialist", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=3"},
{
id: "d4", name: "Lando Norris", role: "Rising Star", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=4"},
{
id: "d5", name: "George Russell", role: "Technical Lead", imageSrc: "http://img.b2bpic.net/free-photo/close-image-motorcyclist-studio-shot_613910-10818.jpg?_wi=5"},
]} ]}
title="Grid Leaders" title="Grid Leaders"
description="Profiles of the world's fastest drivers and their championship trajectory." description="Profiles of the world's fastest drivers and their championship trajectory."
@@ -120,32 +101,26 @@ export default function LandingPage() {
textboxLayout="split" textboxLayout="split"
useInvertedBackground={true} useInvertedBackground={true}
faqs={[ faqs={[
{ { id: "r1", title: "Next Race: Bahrain", content: "The season opener begins in 3 days." },
id: "r1", title: "Next Race: Bahrain", content: "The season opener begins in 3 days."}, { id: "r2", title: "Upcoming: Jeddah", content: "Follow the street circuit challenge next week." },
{ { id: "r3", title: "Australia Grand Prix", content: "Mark your calendars for the iconic Albert Park." },
id: "r2", title: "Upcoming: Jeddah", content: "Follow the street circuit challenge next week."}, { id: "r4", title: "Suzuka Circuit", content: "The legendary Japanese GP awaits in April." },
{ { id: "r5", title: "Monaco Grand Prix", content: "The crown jewel of Formula 1 racing happens in May." },
id: "r3", title: "Australia Grand Prix", content: "Mark your calendars for the iconic Albert Park."},
{
id: "r4", title: "Suzuka Circuit", content: "The legendary Japanese GP awaits in April."},
{
id: "r5", title: "Monaco Grand Prix", content: "The crown jewel of Formula 1 racing happens in May."},
]} ]}
title="Race Calendar" title="Race Calendar"
description="Stay ahead of every Grand Prix with our live-updating race schedule." description="Stay ahead of every Grand Prix with our live-updating race schedule."
faqsAnimation="slide-up" faqsAnimation="slide-up"
buttons={[{ text: "View Full Calendar", onClick: handleAction }]}
/> />
</div> </div>
<div id="contact" data-section="contact"> <div id="contact" data-section="contact">
<ContactText <ContactText
useInvertedBackground={false} useInvertedBackground={false}
background={{ background={{ variant: "gradient-bars" }}
variant: "gradient-bars"}}
text="Join the community. Subscribe for real-time race alerts." text="Join the community. Subscribe for real-time race alerts."
buttons={[ buttons={[
{ { text: "Subscribe Now", onClick: handleAction },
text: "Subscribe Now", href: "#"},
]} ]}
/> />
</div> </div>
@@ -155,20 +130,15 @@ export default function LandingPage() {
columns={[ columns={[
{ {
title: "Resources", items: [ title: "Resources", items: [
{ { label: "Telemetry", href: "#features" },
label: "Telemetry", href: "#features"}, { label: "Calendar", href: "#faq" },
{ { label: "Drivers", href: "#team" },
label: "Calendar", href: "#faq"},
{
label: "Drivers", href: "#team"},
], ],
}, },
{ {
title: "Legal", items: [ title: "Legal", items: [
{ { label: "Terms of Service", href: "#", onClick: handleAction },
label: "Terms of Service", href: "#"}, { label: "Privacy Policy", href: "#", onClick: handleAction },
{
label: "Privacy Policy", href: "#"},
], ],
}, },
]} ]}

20
src/app/races/page.tsx Normal file
View File

@@ -0,0 +1,20 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterBase from '@/components/sections/footer/FooterBase';
export default function RacesPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<div id="nav" data-section="nav">
<NavbarStyleCentered navItems={[{ name: "Home", id: "/" }, { name: "Races", id: "/races" }, { name: "Drivers", id: "/drivers" }, { name: "Standings", id: "/standings" }, { name: "News", id: "/news" }]} brandName="F1 Universe" />
</div>
<main className="pt-32 pb-20 px-6 max-w-7xl mx-auto min-h-screen">
<h1 className="text-4xl font-bold mb-8">Race Schedule & Results</h1>
<p>Interactive calendar and race results grid content goes here.</p>
</main>
<FooterBase logoText="F1 Universe" columns={[]} />
</ThemeProvider>
);
}

View File

@@ -0,0 +1,20 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterBase from '@/components/sections/footer/FooterBase';
export default function StandingsPage() {
return (
<ThemeProvider defaultButtonVariant="text-stagger" defaultTextAnimation="entrance-slide" borderRadius="rounded" contentWidth="medium" sizing="medium" background="circleGradient" cardStyle="glass-elevated" primaryButtonStyle="gradient" secondaryButtonStyle="glass" headingFontWeight="normal">
<div id="nav" data-section="nav">
<NavbarStyleCentered navItems={[{ name: "Home", id: "/" }, { name: "Races", id: "/races" }, { name: "Drivers", id: "/drivers" }, { name: "Standings", id: "/standings" }, { name: "News", id: "/news" }]} brandName="F1 Universe" />
</div>
<main className="pt-32 pb-20 px-6 max-w-7xl mx-auto min-h-screen">
<h1 className="text-4xl font-bold mb-8">Championship Standings</h1>
<p>Live standings tables for constructors and drivers go here.</p>
</main>
<FooterBase logoText="F1 Universe" columns={[]} />
</ThemeProvider>
);
}