From 2f149c8cef865d9f98a74f2972d5bdbaaaf8008c Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 11 Jun 2026 10:20:53 +0000 Subject: [PATCH 1/3] Update src/app/page.tsx --- src/app/page.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 8facbaa..8bd124b 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -19,8 +19,8 @@ export default function LandingPage() { defaultButtonVariant="text-shift" defaultTextAnimation="reveal-blur" borderRadius="pill" - contentWidth="mediumSmall" - sizing="mediumSizeLargeTitles" + contentWidth="small" + sizing="medium" background="noiseDiagonalGradient" cardStyle="gradient-mesh" primaryButtonStyle="double-inset" @@ -310,4 +310,4 @@ export default function LandingPage() { ); -} +} \ No newline at end of file From cd4462fb346d83974daf43ca9f5d9f2581ba5786 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 11 Jun 2026 10:20:53 +0000 Subject: [PATCH 2/3] Add src/app/product/[id]/page.tsx --- src/app/product/[id]/page.tsx | 223 ++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) create mode 100644 src/app/product/[id]/page.tsx diff --git a/src/app/product/[id]/page.tsx b/src/app/product/[id]/page.tsx new file mode 100644 index 0000000..6b690b6 --- /dev/null +++ b/src/app/product/[id]/page.tsx @@ -0,0 +1,223 @@ +"use client"; + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import ReactLenis from "lenis/react"; +import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen'; +import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal'; +import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia'; +import TextAbout from '@/components/sections/about/TextAbout'; +import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen'; +import ProductCardFour from '@/components/sections/product/ProductCardFour'; +import ButtonDirectionalHover from '@/components/button/ButtonDirectionalHover/ButtonDirectionalHover'; +import { useEffect, useState } from 'react'; +import clsx from 'clsx'; +import { CheckCircle } from 'lucide-react'; + +// Placeholder product data (in a real app, this would be fetched based on id) +const productData = { + id: "1", name: "Hoodie Elite Performance", price: "€69.99", description: "Eleva tu estilo y rendimiento con nuestra Hoodie Elite Performance. Confeccionada con tecnología de punta, esta sudadera ofrece una comodidad inigualable y durabilidad para tus entrenamientos y el día a día. Su diseño moderno y ajuste perfecto te mantendrán listo para cualquier desafío.", fullDetails: "Nuestra Hoodie Elite Performance está diseñada para los atletas que exigen lo mejor. Fabricada con una mezcla de algodón premium y poliéster técnico, proporciona una transpirabilidad superior y una resistencia excepcional. Las costuras reforzadas aseguran una larga vida útil, mientras que el interior suave al tacto garantiza el máximo confort. Ideal para capas o para usar sola, esta sudadera es un elemento esencial en cualquier guardarropa de alto rendimiento.", videoSrc: "http://img.b2bpic.net/free-photo/weight-training-workout-exercise-fitness-concept_53876-144313.jpg", imageSrc: "http://img.b2bpic.net/free-photo/portrait-adult-male-getting-ready-exercise_23-2148531045.jpg", gallery: [ + { imageSrc: "http://img.b2bpic.net/free-photo/side-view-female-boxer-practicing-ring-with-trainer_23-2148426215.jpg", imageAlt: "Detalle de costura"}, + { imageSrc: "http://img.b2bpic.net/free-photo/man-corner-box-ring_23-2148024339.jpg", imageAlt: "Modelo vistiendo hoodie"}, + { imageSrc: "http://img.b2bpic.net/free-photo/young-sporty-woman-orange-sport-suit_1303-31740.jpg", imageAlt: "Material en detalle"} + ], + sizeGuide: "Consulta nuestra guía de tallas detallada para asegurar el ajuste perfecto. Disponible en S, M, L, XL, XXL. Te recomendamos medir tu pecho y longitud de brazo para una elección óptima. Las tallas son europeas estándar.", guarantee: "Tu satisfacción es nuestra prioridad. Ofrecemos una garantía de satisfacción de 30 días. Si no estás completamente feliz con tu compra, te devolvemos el dinero sin preguntas.", reviews: [ + { id: "rev-1", name: "Alex G.", role: "Cliente Verificado", company: "SAINTS DEN", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/man-training-gym-doing-push-ups_23-2147755601.jpg", imageAlt: "Alex G."}, + { id: "rev-2", name: "María P.", role: "Cliente Verificado", company: "SAINTS DEN", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/pretty-woman-doing-warmup-exercise-before-training-gym_23-2147913380.jpg", imageAlt: "María P."}, + { id: "rev-3", name: "Juan L.", role: "Cliente Verificado", company: "SAINTS DEN", rating: 4, imageSrc: "http://img.b2bpic.net/free-photo/trans-man-working-out-gym_23-2149712788.jpg", imageAlt: "Juan L."} + ], + relatedProducts: [ + { id: "rp-1", name: "Rashguard Apex Pro", price: "€49.99", variant: "Negro | Tallas S-XXL", imageSrc: "http://img.b2bpic.net/free-photo/woman-comfortable-sports-resting-leaned-against-wall-finished-workout-girl-gather-energy-concept_1153-4173.jpg", imageAlt: "Rashguard Apex Pro"}, + { id: "rp-2", name: "Camiseta Oversize Dominus", price: "€34.99", variant: "Blanco | Tallas S-XXL", imageSrc: "http://img.b2bpic.net/free-vector/damn-good-black-blue-retro-calligraphy_53876-99595.jpg", imageAlt: "Camiseta Oversize Dominus"}, + { id: "rp-3", name: "Fight Shorts Warrior", price: "€59.99", variant: "Gris Oscuro | Tallas S-XL", imageSrc: "http://img.b2bpic.net/free-photo/front-view-shirtless-male-boxer_23-2148615119.jpg", imageAlt: "Fight Shorts Warrior"} + ] +}; + +const globalNavItems = [ + { name: "Inicio", target: "/" }, + { name: "Streetwear", target: "/#collections" }, + { name: "Fightwear", target: "/#collections" }, + { name: "Productos", target: "/product/1" }, + { name: "Comunidad", target: "/#community" }, + { name: "Contacto", target: "/#contact" } +]; + +export default function ProductDetailPage() { + const [showStickyButton, setShowStickyButton] = useState(false); + + useEffect(() => { + const handleScroll = () => { + const scrollThreshold = 300; + if (window.scrollY > scrollThreshold) { + setShowStickyButton(true); + } else { + setShowStickyButton(false); + } + }; + + window.addEventListener('scroll', handleScroll); + return () => window.removeEventListener('scroll', handleScroll); + }, []); + + return ( + + + + +
+ alert(`Añadido ${productData.name} al carrito!`), href: "#" }, + { text: "Ver Guía de Tallas", href: "#size-guide" } + ]} + buttonAnimation="slide-up" + mediaItems={[ + { videoSrc: productData.videoSrc, imageSrc: productData.imageSrc, imageAlt: productData.name }, + ...productData.gallery + ]} + mediaAnimation="opacity" + rating={5} + ratingText="Más de 100 reseñas" + /> +
+ +
+ +

{productData.fullDetails}

+
+
+ +
+ +

{productData.sizeGuide}

+
+
+ +
+ +
+ + + +
+ +
+ +

{productData.guarantee}

+
+
+
+ + + + {/* Sticky Add to Cart for Mobile */} +
+ alert(`Añadido ${productData.name} al carrito!`)} + className="w-full" + /> +
+
+
+ ); +} \ No newline at end of file From f586cd970f3b5c9d3de9ce791bbb8d60bc3a25c2 Mon Sep 17 00:00:00 2001 From: bender Date: Thu, 11 Jun 2026 10:20:53 +0000 Subject: [PATCH 3/3] Update src/app/styles/variables.css --- src/app/styles/variables.css | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/styles/variables.css b/src/app/styles/variables.css index 8407020..d200e7c 100644 --- a/src/app/styles/variables.css +++ b/src/app/styles/variables.css @@ -10,15 +10,15 @@ --accent: #ffffff; --background-accent: #ffffff; */ - --background: #000000; - --card: #1a1a1a; - --foreground: #ffffff; - --primary-cta: #c0c0c0; + --background: #0A0A0A; + --card: #1A1A1A; + --foreground: #F0F0F0; + --primary-cta: #B8860B; --primary-cta-text: #000000; - --secondary-cta: #8a8a8a; - --secondary-cta-text: #000000; - --accent: #333333; - --background-accent: #000000; + --secondary-cta: #4A4A4A; + --secondary-cta-text: #ffffff; + --accent: #D4AF37; + --background-accent: #222222; /* text sizing - set by ThemeProvider */ /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);