Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e76180abf1 | |||
| 6836b89106 | |||
| 3fdbdf10d4 | |||
| e7c96a3e96 | |||
| 4231c20f2f | |||
| 0e87305454 | |||
| 1792a79499 | |||
| d96f84006e | |||
| 31a92f6e8c | |||
| 9b268ca51e |
1439
src/app/layout.tsx
1439
src/app/layout.tsx
File diff suppressed because it is too large
Load Diff
@@ -18,7 +18,7 @@ export default function HomePage() {
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Teams", id: "/teams" },
|
||||
{ name: "Join", id: "/join" },
|
||||
{ name: "Shop", id: "/shop" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
@@ -135,8 +135,7 @@ export default function HomePage() {
|
||||
"Sessions techniques", "Préparation physique", "Équipe coaching"],
|
||||
},
|
||||
{
|
||||
id: "3", value: "8+", title: "Événements Sociaux", items: [
|
||||
"Repas d'équipe", "Sorties groupe", "Célébrations"],
|
||||
id: "3", value: "8+", title: "Événements Sociaux", items: ["Repas d'équipe", "Sorties groupe", "Célébrations"],
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
@@ -201,4 +200,4 @@ export default function HomePage() {
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
174
src/app/shop/page.tsx
Normal file
174
src/app/shop/page.tsx
Normal file
@@ -0,0 +1,174 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
||||
import HeroLogoBillboardSplit from "@/components/sections/hero/HeroLogoBillboardSplit";
|
||||
import ProductCardThree from "@/components/sections/product/ProductCardThree";
|
||||
import ContactCTA from "@/components/sections/contact/ContactCTA";
|
||||
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
|
||||
import { ShoppingCart, Zap } from "lucide-react";
|
||||
import { useState } from "react";
|
||||
|
||||
export default function ShopPage() {
|
||||
const navItems = [
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "About", id: "/about" },
|
||||
{ name: "Teams", id: "/teams" },
|
||||
{ name: "Shop", id: "/shop" },
|
||||
{ name: "Contact", id: "/contact" },
|
||||
];
|
||||
|
||||
const [cart, setCart] = useState<{ [key: string]: number }>({});
|
||||
|
||||
const shopProducts = [
|
||||
{
|
||||
id: "jersey-home", name: "Maillot de Rugby - Domicile", price: "€45.00", imageSrc: "http://img.b2bpic.net/free-photo/male-rugby-player-standing-ground_23-2150034490.jpg", imageAlt: "Rugby jersey home", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
"jersey-home": quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
{
|
||||
id: "jersey-away", name: "Maillot de Rugby - Extérieur", price: "€45.00", imageSrc: "http://img.b2bpic.net/free-photo/american-football-player-uniform-training-field_23-2150034543.jpg", imageAlt: "Rugby jersey away", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
"jersey-away": quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
{
|
||||
id: "shorts", name: "Short de Rugby", price: "€35.00", imageSrc: "http://img.b2bpic.net/free-photo/fit-athletic-young-man-training_23-2147955631.jpg", imageAlt: "Rugby shorts", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
shorts: quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
{
|
||||
id: "socks", name: "Chaussettes de Rugby (Paire)", price: "€12.00", imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-athlete-feet-footwear_23-2150067338.jpg", imageAlt: "Rugby socks", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
socks: quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
{
|
||||
id: "scarf", name: "Écharpe Club Cadaujacais", price: "€18.00", imageSrc: "http://img.b2bpic.net/free-photo/winter-accessories-isolated-white-background_23-2150067418.jpg", imageAlt: "Club scarf", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
scarf: quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
{
|
||||
id: "cap", name: "Casquette Club Cadaujacais", price: "€22.00", imageSrc: "http://img.b2bpic.net/free-photo/baseball-cap-isolated-white_23-2150067428.jpg", imageAlt: "Club cap", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
cap: quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
{
|
||||
id: "backpack", name: "Sac à Dos Club Cadaujacais", price: "€65.00", imageSrc: "http://img.b2bpic.net/free-photo/red-stylish-backpack-isolated-white-background_23-2150067435.jpg", imageAlt: "Club backpack", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
backpack: quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
{
|
||||
id: "bottle", name: "Gourde de Rugby - 750ml", price: "€28.00", imageSrc: "http://img.b2bpic.net/free-photo/water-bottle-isolated-white_23-2150067442.jpg", imageAlt: "Rugby water bottle", onQuantityChange: (quantity: number) => {
|
||||
setCart((prev) => ({
|
||||
...prev,
|
||||
bottle: quantity,
|
||||
}));
|
||||
},
|
||||
initialQuantity: 1,
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="elastic-effect"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="pill"
|
||||
contentWidth="small"
|
||||
sizing="largeSmallSizeMediumTitles"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-depth"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="extrabold"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={navItems}
|
||||
brandName="Rugby Club Cadaujacais"
|
||||
bottomLeftText="Cadaujac, France"
|
||||
bottomRightText="contact@rugbycadaujac.fr"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero" className="mx-auto px-4 md:px-6">
|
||||
<HeroLogoBillboardSplit
|
||||
logoText="Boutique Officielle"
|
||||
description="Découvrez notre collection exclusive de vêtements et accessoires aux couleurs du Rugby Club Cadaujacais. Équipements de qualité pour les joueurs et les supporters."
|
||||
background={{ variant: "plain" }}
|
||||
buttons={[
|
||||
{ text: "Parcourir la Boutique", href: "#products" },
|
||||
{ text: "Retour à l'Accueil", href: "/" },
|
||||
]}
|
||||
layoutOrder="default"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/close-up-people-holding-shopping-bags_23-2148901695.jpg"
|
||||
imageAlt="Shopping experience"
|
||||
frameStyle="card"
|
||||
mediaAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="products" data-section="products" className="mx-auto px-4 md:px-6 py-20">
|
||||
<ProductCardThree
|
||||
title="Notre Catalogue de Produits"
|
||||
description="Sélectionnez vos articles préférés et ajoutez-les au panier. Livraison rapide et sécurisée pour toutes les commandes."
|
||||
tag="Nouveautés"
|
||||
products={shopProducts}
|
||||
gridVariant="four-items-2x2-equal-grid"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="cta-section" data-section="cta-section" className="mx-auto px-4 md:px-6 py-20">
|
||||
<ContactCTA
|
||||
tag="Panier Plein?"
|
||||
tagIcon={ShoppingCart}
|
||||
title="Procédez au Paiement"
|
||||
description="Finalisez votre commande en toute sécurité. Nous acceptons tous les modes de paiement principaux. Livraison gratuite à partir de €50."
|
||||
buttons={[
|
||||
{ text: "Voir le Panier", href: "#cart" },
|
||||
{ text: "Continuer les Achats", href: "#products" },
|
||||
]}
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoReveal
|
||||
logoText="Rugby Club Cadaujacais"
|
||||
leftLink={{ text: "Politique de Confidentialité", href: "#privacy" }}
|
||||
rightLink={{ text: "Conditions d'Utilisation", href: "#terms" }}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -10,15 +10,15 @@
|
||||
--accent: #ffffff;
|
||||
--background-accent: #ffffff; */
|
||||
|
||||
--background: #f5f5f5;
|
||||
--card: #ffffff;
|
||||
--foreground: #1c1c1c;
|
||||
--primary-cta: #341f51;
|
||||
--background: #1a0d0d;
|
||||
--card: #2e1515;
|
||||
--foreground: #ffe6e6;
|
||||
--primary-cta: #d63031;
|
||||
--primary-cta-text: #f5f5f5;
|
||||
--secondary-cta: #ffffff;
|
||||
--secondary-cta: #1a0d0d;
|
||||
--secondary-cta-text: #1c1c1c;
|
||||
--accent: #6139e6;
|
||||
--background-accent: #b3a8e8;
|
||||
--accent: #8b2d2d;
|
||||
--background-accent: #ff3d4a;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
|
||||
Reference in New Issue
Block a user