Merge version_1 into main

Merge version_1 into main
This commit was merged in pull request #1.
This commit is contained in:
2026-03-21 12:29:40 +00:00
5 changed files with 70 additions and 35 deletions

View File

@@ -129,7 +129,7 @@ export default function ContactPage() {
icon: Phone, icon: Phone,
}, },
]} ]}
imageSrc="http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg" imageSrc="http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg?_wi=3"
imageAlt="Interior moderno del gimnasio GymShark" imageAlt="Interior moderno del gimnasio GymShark"
mediaAnimation="slide-up" mediaAnimation="slide-up"
imagePosition="right" imagePosition="right"

View File

@@ -1,27 +1,60 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Halant } from "next/font/google"; import { Halant } from "next/font/google";
import { Inter } from "next/font/google"; import { Inter } from "next/font/google";
import { Montserrat } from "next/font/google";
import "./globals.css"; import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper"; import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag"; import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script"; import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Montserrat } from "next/font/google";
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
export const metadata: Metadata = { variable: "--font-inter",
title: "Webild components 2", subsets: ["latin"],
description: "Generated by create next app", });
};
const montserrat = Montserrat({ const montserrat = Montserrat({
variable: "--font-montserrat", variable: "--font-montserrat",
subsets: ["latin"], subsets: ["latin"],
}); });
const inter = Inter({
variable: "--font-inter", export const metadata: Metadata = {
subsets: ["latin"], title: "GymShark Terrassa | Entrenamiento Personal | Gimnasio Local",
}); description: "Gimnasio moderno en Terrassa con entrenamiento personal, 4.6★ de 95 clientes. Comunidad inclusiva, instalaciones premium, acompañamiento real. Primera visita gratuita.",
keywords: "gimnasio Terrassa, entrenamiento personal Terrassa, fitness local, Marc entrenador, centro de entrenamiento Barcelona",
metadataBase: new URL("https://gymshark-terrassa.local"),
alternates: {
canonical: "https://gymshark-terrassa.local",
},
openGraph: {
title: "GymShark Terrassa - Tu Gimnasio Local de Confianza",
description: "Entrenamiento personalizado, instalaciones modernas y comunidad acogedora en Terrassa. 4.6★ de 95 clientes satisfechos.",
url: "https://gymshark-terrassa.local",
siteName: "GymShark Terrassa",
type: "website",
images: [
{
url: "http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg",
alt: "Interior moderno del gimnasio GymShark",
},
],
},
twitter: {
card: "summary_large_image",
title: "GymShark Terrassa - Gimnasio Moderno",
description: "Entrenamiento personal con Marc. Comunidad inclusiva y resultados reales.",
images: ["http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg"],
},
robots: {
index: true,
follow: true,
},
};
export default function RootLayout({ export default function RootLayout({
children, children,
@@ -31,7 +64,9 @@ export default function RootLayout({
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${montserrat.variable} ${inter.variable} antialiased`}> <body
className={`${halant.variable} ${inter.variable} ${montserrat.variable} antialiased`}
>
<Tag /> <Tag />
{children} {children}
<script <script
@@ -43,4 +78,4 @@ export default function RootLayout({
</ServiceWrapper> </ServiceWrapper>
</html> </html>
); );
} }

View File

@@ -180,7 +180,7 @@ export default function HomePage() {
icon: Heart icon: Heart
} }
]} ]}
imageSrc="http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg" imageSrc="http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg?_wi=1"
imageAlt="Interior moderno del gimnasio GymShark en Terrassa" imageAlt="Interior moderno del gimnasio GymShark en Terrassa"
mediaAnimation="slide-up" mediaAnimation="slide-up"
imagePosition="right" imagePosition="right"
@@ -201,42 +201,42 @@ export default function HomePage() {
id: 1, id: 1,
title: "Entrenamiento Personal con Marc", title: "Entrenamiento Personal con Marc",
description: "Sesiones 1-a-1 con nuestro entrenador más valorado. Plans ajustados a tus objetivos, experiencia y ritmo de vida.", description: "Sesiones 1-a-1 con nuestro entrenador más valorado. Plans ajustados a tus objetivos, experiencia y ritmo de vida.",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-people-doing-burpees-together_23-2149517287.jpg", imageSrc: "http://img.b2bpic.net/free-photo/front-view-people-doing-burpees-together_23-2149517287.jpg?_wi=1",
imageAlt: "Entrenamiento personal" imageAlt: "Entrenamiento personal"
}, },
{ {
id: 2, id: 2,
title: "Acceso Ilimitado al Gimnasio", title: "Acceso Ilimitado al Gimnasio",
description: "Acceso 24/7 con todas las máquinas, áreas de cardio, zona de pesas libres y espacios funcionales.", description: "Acceso 24/7 con todas las máquinas, áreas de cardio, zona de pesas libres y espacios funcionales.",
imageSrc: "http://img.b2bpic.net/free-photo/athletic-man-with-tattoo-his-hand-standing-exercise-bike-modern-fitness-club_613910-21487.jpg", imageSrc: "http://img.b2bpic.net/free-photo/athletic-man-with-tattoo-his-hand-standing-exercise-bike-modern-fitness-club_613910-21487.jpg?_wi=1",
imageAlt: "Gimnasio con equipamiento moderno" imageAlt: "Gimnasio con equipamiento moderno"
}, },
{ {
id: 3, id: 3,
title: "Planes de Nutrición", title: "Planes de Nutrición",
description: "Asesoramiento nutricional básico incluido. Recursos para alinear dieta y entrenamiento.", description: "Asesoramiento nutricional básico incluido. Recursos para alinear dieta y entrenamiento.",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-kitchen-with-notebook-vegetables_169016-24384.jpg", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-kitchen-with-notebook-vegetables_169016-24384.jpg?_wi=1",
imageAlt: "Planes de nutrición" imageAlt: "Planes de nutrición"
}, },
{ {
id: 4, id: 4,
title: "Evaluación Inicial Gratuita", title: "Evaluación Inicial Gratuita",
description: "Descubre tu estado físico actual, objetivos realistas y un plan de acción personalizado sin costo.", description: "Descubre tu estado físico actual, objetivos realistas y un plan de acción personalizado sin costo.",
imageSrc: "http://img.b2bpic.net/free-photo/young-sports-people-training-morning-gym_1157-32135.jpg", imageSrc: "http://img.b2bpic.net/free-photo/young-sports-people-training-morning-gym_1157-32135.jpg?_wi=1",
imageAlt: "Evaluación de fitness" imageAlt: "Evaluación de fitness"
}, },
{ {
id: 5, id: 5,
title: "Seguimiento y Progreso", title: "Seguimiento y Progreso",
description: "Revisiones periódicas, ajustes de plan y feedback constante. Nunca entrenas solo.", description: "Revisiones periódicas, ajustes de plan y feedback constante. Nunca entrenas solo.",
imageSrc: "http://img.b2bpic.net/free-photo/data-stats-around-person-doing-physical-activity_23-2150165163.jpg", imageSrc: "http://img.b2bpic.net/free-photo/data-stats-around-person-doing-physical-activity_23-2150165163.jpg?_wi=1",
imageAlt: "Seguimiento de progreso" imageAlt: "Seguimiento de progreso"
}, },
{ {
id: 6, id: 6,
title: "Comunidad de Apoyo", title: "Comunidad de Apoyo",
description: "Conecta con otros miembros, participa en desafíos y celebra logros juntos. Aquí perteneces.", description: "Conecta con otros miembros, participa en desafíos y celebra logros juntos. Aquí perteneces.",
imageSrc: "http://img.b2bpic.net/free-photo/group-young-sporty-people-standing-warrior-one-exercise_1163-4954.jpg", imageSrc: "http://img.b2bpic.net/free-photo/group-young-sporty-people-standing-warrior-one-exercise_1163-4954.jpg?_wi=1",
imageAlt: "Comunidad de fitness" imageAlt: "Comunidad de fitness"
} }
]} ]}
@@ -264,28 +264,28 @@ export default function HomePage() {
id: "marc", id: "marc",
name: "Marc", name: "Marc",
role: "Entrenador Personal Principal", role: "Entrenador Personal Principal",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-sportive-girl-posing-with-crossed-arms-dark-wall_176420-622.jpg", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-sportive-girl-posing-with-crossed-arms-dark-wall_176420-622.jpg?_wi=1",
imageAlt: "Marc, entrenador principal" imageAlt: "Marc, entrenador principal"
}, },
{ {
id: "sofia", id: "sofia",
name: "Sofía", name: "Sofía",
role: "Especialista en Funcional", role: "Especialista en Funcional",
imageSrc: "http://img.b2bpic.net/free-photo/joyful-young-pretty-sporty-girl-wearing-headband-wristband-holding-baseball-bat-looking-pointing-side-isolated-blue-space_141793-44649.jpg", imageSrc: "http://img.b2bpic.net/free-photo/joyful-young-pretty-sporty-girl-wearing-headband-wristband-holding-baseball-bat-looking-pointing-side-isolated-blue-space_141793-44649.jpg?_wi=1",
imageAlt: "Sofía, especialista funcional" imageAlt: "Sofía, especialista funcional"
}, },
{ {
id: "carlos", id: "carlos",
name: "Carlos", name: "Carlos",
role: "Entrenador de Fuerza", role: "Entrenador de Fuerza",
imageSrc: "http://img.b2bpic.net/free-photo/people-sports-fitness-active-healthy-lifestyle-concept-attractive-fit-young-mixed-race-male-with-muscular-shoulders-posing-studio-keeping-arms-folded-his-look-expressing-confidence_343059-339.jpg", imageSrc: "http://img.b2bpic.net/free-photo/people-sports-fitness-active-healthy-lifestyle-concept-attractive-fit-young-mixed-race-male-with-muscular-shoulders-posing-studio-keeping-arms-folded-his-look-expressing-confidence_343059-339.jpg?_wi=1",
imageAlt: "Carlos, entrenador de fuerza" imageAlt: "Carlos, entrenador de fuerza"
}, },
{ {
id: "laura", id: "laura",
name: "Laura", name: "Laura",
role: "Coordinadora de Membresías", role: "Coordinadora de Membresías",
imageSrc: "http://img.b2bpic.net/free-photo/coach-consulting-women_1098-21388.jpg", imageSrc: "http://img.b2bpic.net/free-photo/coach-consulting-women_1098-21388.jpg?_wi=1",
imageAlt: "Laura, coordinadora" imageAlt: "Laura, coordinadora"
} }
]} ]}

View File

@@ -85,42 +85,42 @@ export default function ServicesPage() {
id: 1, id: 1,
title: "Entrenamiento Personal con Marc", title: "Entrenamiento Personal con Marc",
description: "Sesiones 1-a-1 con nuestro entrenador más valorado. Plans ajustados a tus objetivos, experiencia y ritmo de vida.", description: "Sesiones 1-a-1 con nuestro entrenador más valorado. Plans ajustados a tus objetivos, experiencia y ritmo de vida.",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-people-doing-burpees-together_23-2149517287.jpg", imageSrc: "http://img.b2bpic.net/free-photo/front-view-people-doing-burpees-together_23-2149517287.jpg?_wi=2",
imageAlt: "personal trainer working with client one on one", imageAlt: "personal trainer working with client one on one",
}, },
{ {
id: 2, id: 2,
title: "Acceso Ilimitado al Gimnasio", title: "Acceso Ilimitado al Gimnasio",
description: "Acceso 24/7 con todas las máquinas, áreas de cardio, zona de pesas libres y espacios funcionales.", description: "Acceso 24/7 con todas las máquinas, áreas de cardio, zona de pesas libres y espacios funcionales.",
imageSrc: "http://img.b2bpic.net/free-photo/athletic-man-with-tattoo-his-hand-standing-exercise-bike-modern-fitness-club_613910-21487.jpg", imageSrc: "http://img.b2bpic.net/free-photo/athletic-man-with-tattoo-his-hand-standing-exercise-bike-modern-fitness-club_613910-21487.jpg?_wi=2",
imageAlt: "gym full of modern equipment machines", imageAlt: "gym full of modern equipment machines",
}, },
{ {
id: 3, id: 3,
title: "Planes de Nutrición", title: "Planes de Nutrición",
description: "Asesoramiento nutricional básico incluido. Recursos para alinear dieta y entrenamiento.", description: "Asesoramiento nutricional básico incluido. Recursos para alinear dieta y entrenamiento.",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-kitchen-with-notebook-vegetables_169016-24384.jpg", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-kitchen-with-notebook-vegetables_169016-24384.jpg?_wi=2",
imageAlt: "meal prep healthy food fitness diet", imageAlt: "meal prep healthy food fitness diet",
}, },
{ {
id: 4, id: 4,
title: "Evaluación Inicial Gratuita", title: "Evaluación Inicial Gratuita",
description: "Descubre tu estado físico actual, objetivos realistas y un plan de acción personalizado sin costo.", description: "Descubre tu estado físico actual, objetivos realistas y un plan de acción personalizado sin costo.",
imageSrc: "http://img.b2bpic.net/free-photo/young-sports-people-training-morning-gym_1157-32135.jpg", imageSrc: "http://img.b2bpic.net/free-photo/young-sports-people-training-morning-gym_1157-32135.jpg?_wi=2",
imageAlt: "fitness assessment evaluation measurement", imageAlt: "fitness assessment evaluation measurement",
}, },
{ {
id: 5, id: 5,
title: "Seguimiento y Progreso", title: "Seguimiento y Progreso",
description: "Revisiones periódicas, ajustes de plan y feedback constante. Nunca entrenas solo.", description: "Revisiones periódicas, ajustes de plan y feedback constante. Nunca entrenas solo.",
imageSrc: "http://img.b2bpic.net/free-photo/data-stats-around-person-doing-physical-activity_23-2150165163.jpg", imageSrc: "http://img.b2bpic.net/free-photo/data-stats-around-person-doing-physical-activity_23-2150165163.jpg?_wi=2",
imageAlt: "fitness progress tracking graph chart", imageAlt: "fitness progress tracking graph chart",
}, },
{ {
id: 6, id: 6,
title: "Comunidad de Apoyo", title: "Comunidad de Apoyo",
description: "Conecta con otros miembros, participa en desafíos y celebra logros juntos. Aquí perteneces.", description: "Conecta con otros miembros, participa en desafíos y celebra logros juntos. Aquí perteneces.",
imageSrc: "http://img.b2bpic.net/free-photo/group-young-sporty-people-standing-warrior-one-exercise_1163-4954.jpg", imageSrc: "http://img.b2bpic.net/free-photo/group-young-sporty-people-standing-warrior-one-exercise_1163-4954.jpg?_wi=2",
imageAlt: "gym community group training together", imageAlt: "gym community group training together",
}, },
]} ]}

View File

@@ -109,7 +109,7 @@ export default function AboutPage() {
icon: UserCheck icon: UserCheck
} }
]} ]}
imageSrc="http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg" imageSrc="http://img.b2bpic.net/free-vector/gradient-fitness-youtube-channel-art_23-2149238040.jpg?_wi=2"
imageAlt="Instalaciones de GymShark en Terrassa" imageAlt="Instalaciones de GymShark en Terrassa"
mediaAnimation="slide-up" mediaAnimation="slide-up"
imagePosition="right" imagePosition="right"
@@ -130,28 +130,28 @@ export default function AboutPage() {
id: "marc", id: "marc",
name: "Marc", name: "Marc",
role: "Entrenador Personal Principal & Fundador", role: "Entrenador Personal Principal & Fundador",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-sportive-girl-posing-with-crossed-arms-dark-wall_176420-622.jpg", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-sportive-girl-posing-with-crossed-arms-dark-wall_176420-622.jpg?_wi=2",
imageAlt: "Marc" imageAlt: "Marc"
}, },
{ {
id: "sofia", id: "sofia",
name: "Sofía", name: "Sofía",
role: "Especialista en Entrenamiento Funcional", role: "Especialista en Entrenamiento Funcional",
imageSrc: "http://img.b2bpic.net/free-photo/joyful-young-pretty-sporty-girl-wearing-headband-wristband-holding-baseball-bat-looking-pointing-side-isolated-blue-space_141793-44649.jpg", imageSrc: "http://img.b2bpic.net/free-photo/joyful-young-pretty-sporty-girl-wearing-headband-wristband-holding-baseball-bat-looking-pointing-side-isolated-blue-space_141793-44649.jpg?_wi=2",
imageAlt: "Sofía" imageAlt: "Sofía"
}, },
{ {
id: "carlos", id: "carlos",
name: "Carlos", name: "Carlos",
role: "Entrenador de Fuerza e Hipertrofia", role: "Entrenador de Fuerza e Hipertrofia",
imageSrc: "http://img.b2bpic.net/free-photo/people-sports-fitness-active-healthy-lifestyle-concept-attractive-fit-young-mixed-race-male-with-muscular-shoulders-posing-studio-keeping-arms-folded-his-look-expressing-confidence_343059-339.jpg", imageSrc: "http://img.b2bpic.net/free-photo/people-sports-fitness-active-healthy-lifestyle-concept-attractive-fit-young-mixed-race-male-with-muscular-shoulders-posing-studio-keeping-arms-folded-his-look-expressing-confidence_343059-339.jpg?_wi=2",
imageAlt: "Carlos" imageAlt: "Carlos"
}, },
{ {
id: "laura", id: "laura",
name: "Laura", name: "Laura",
role: "Coordinadora de Membresías & Atención", role: "Coordinadora de Membresías & Atención",
imageSrc: "http://img.b2bpic.net/free-photo/coach-consulting-women_1098-21388.jpg", imageSrc: "http://img.b2bpic.net/free-photo/coach-consulting-women_1098-21388.jpg?_wi=2",
imageAlt: "Laura" imageAlt: "Laura"
} }
]} ]}