Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4aecee55cb | |||
| 25777d0e8d | |||
| 6c49400276 | |||
| 5f7dfdbb6a | |||
| 306c2b4e44 | |||
| 056617defb | |||
| aad5269a7b | |||
| e7b5d0d730 | |||
| 586c8f27b3 | |||
| 7cb9f28c0d | |||
| 0559ce02bb | |||
| 943392dbd0 | |||
| a06c234ffb | |||
| 286b7521d0 |
20
src/app/drivers/page.tsx
Normal file
20
src/app/drivers/page.tsx
Normal 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
20
src/app/news/page.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
104
src/app/page.tsx
104
src/app/page.tsx
@@ -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
20
src/app/races/page.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
20
src/app/standings/page.tsx
Normal file
20
src/app/standings/page.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user