10 Commits

Author SHA1 Message Date
e76180abf1 Merge version_2 into main
Merge version_2 into main
2026-03-08 22:53:33 +00:00
6836b89106 Update src/app/layout.tsx 2026-03-08 22:53:29 +00:00
3fdbdf10d4 Merge version_2 into main
Merge version_2 into main
2026-03-08 22:52:40 +00:00
e7c96a3e96 Update src/app/styles/variables.css 2026-03-08 22:52:36 +00:00
4231c20f2f Add src/app/shop/page.tsx 2026-03-08 22:52:35 +00:00
0e87305454 Update src/app/page.tsx 2026-03-08 22:52:35 +00:00
1792a79499 Update src/app/layout.tsx 2026-03-08 22:52:34 +00:00
d96f84006e Merge version_1 into main
Merge version_1 into main
2026-03-08 22:48:38 +00:00
31a92f6e8c Merge version_1 into main
Merge version_1 into main
2026-03-08 22:47:43 +00:00
9b268ca51e Merge version_1 into main
Merge version_1 into main
2026-03-08 22:46:32 +00:00
4 changed files with 198 additions and 1436 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -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
View 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>
);
}

View File

@@ -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);