Compare commits
2 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 848cf213da | |||
|
|
5bb39fb643 |
@@ -16,7 +16,7 @@ export default function Layout() {
|
||||
"href": "#historia"
|
||||
},
|
||||
{
|
||||
"name": "Carta",
|
||||
"name": "Servicios",
|
||||
"href": "#carta"
|
||||
},
|
||||
{
|
||||
@@ -32,7 +32,7 @@ export default function Layout() {
|
||||
"href": "#testimonios"
|
||||
},
|
||||
{
|
||||
"name": "Ambiente",
|
||||
"name": "Compromiso",
|
||||
"href": "#ambiente"
|
||||
}
|
||||
];
|
||||
@@ -42,7 +42,7 @@ export default function Layout() {
|
||||
<SiteBackgroundSlot />
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarCentered
|
||||
logo="Alierta 19"
|
||||
logo="Talleres Constancia Motor"
|
||||
ctaButton={{
|
||||
text: "Reservar",
|
||||
href: "#contacto",
|
||||
@@ -54,13 +54,13 @@ export default function Layout() {
|
||||
</main>
|
||||
<SectionErrorBoundary name="footer">
|
||||
<FooterSimple
|
||||
brand="Alierta 19"
|
||||
brand="Talleres Constancia Motor"
|
||||
columns={[
|
||||
{
|
||||
title: "Menú",
|
||||
items: [
|
||||
{
|
||||
label: "Carta",
|
||||
label: "Servicios",
|
||||
href: "#carta",
|
||||
},
|
||||
{
|
||||
@@ -83,7 +83,7 @@ export default function Layout() {
|
||||
],
|
||||
},
|
||||
]}
|
||||
copyright="© 2026 Alierta 19. El sabor de quedarse un rato más."
|
||||
copyright="© 2026 Talleres Constancia Motor S.L. Todos los derechos reservados."
|
||||
links={[
|
||||
{
|
||||
label: "Contacto",
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;500;600;700&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap');
|
||||
@import "tailwindcss";
|
||||
@import "./styles/masks.css";
|
||||
@import "./styles/animations.css";
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f5faff;
|
||||
--background: #f0f0f0;
|
||||
--card: #ffffff;
|
||||
--foreground: #001122;
|
||||
--primary-cta: #15479c;
|
||||
--primary-cta-text: #f5faff;
|
||||
--secondary-cta: #ffffff;
|
||||
--secondary-cta-text: #001122;
|
||||
--accent: #a8cce8;
|
||||
--background-accent: #7ba3cf;
|
||||
--foreground: #212121;
|
||||
--primary-cta: #D9531E;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #4a4a4a;
|
||||
--secondary-cta-text: #ffffff;
|
||||
--accent: #D9531E;
|
||||
--background-accent: #e0e0e0;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1rem;
|
||||
@@ -88,7 +88,7 @@
|
||||
--color-background-accent: var(--background-accent);
|
||||
|
||||
/* Fonts */
|
||||
--font-sans: 'Nunito Sans', sans-serif;
|
||||
--font-sans: 'Montserrat', sans-serif;
|
||||
--font-tight: "Inter Tight", sans-serif;
|
||||
--font-mono: monospace;
|
||||
|
||||
|
||||
@@ -1,241 +1,33 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import HistoriaSection from './HomePage/sections/Historia';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import CartaSection from './HomePage/sections/Carta';
|
||||
import TestimoniosSection from './HomePage/sections/Testimonios';
|
||||
import AmbienteSection from './HomePage/sections/Ambiente';
|
||||
import ContactoSection from './HomePage/sections/Contacto';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Alierta 19"
|
||||
title="Donde Zaragoza desayuna, almuerza y se queda a vivir un rato más."
|
||||
description="Café de verdad, tostadas que saben a casa y un trato que no se aprende, se siente. Bienvenido a Alierta 19."
|
||||
primaryButton={{
|
||||
text: "Ver la carta",
|
||||
href: "#carta",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Reservar tu mesa",
|
||||
href: "#contacto",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/girl-power-neon-sign-authentic-cafe_53876-111107.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892901.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-small-business-owner-standing-outdoors_23-2149434499.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-girl-pajama-moving-balcony-city-sunny-morning-her-long-hair-flying-wind-she-smiling_197531-2307.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-smiley-man-door_23-2149434485.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-cute-japanese-girl-drinking-lemonade_23-2148665351.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-couple-date_23-2148422373.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-business-owner-standing-outdoors_23-2149434497.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-restaurant-is-decorated-with-greens_8353-9675.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vintage-light-lamp_1203-3090.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-wearing-total-denim-outfit_23-2150105186.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/pineapples-ready-sale_23-2151526658.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="historia" data-section="historia">
|
||||
<SectionErrorBoundary name="historia">
|
||||
<AboutMediaOverlay
|
||||
tag="Nuestra esencia"
|
||||
title="No somos un restaurante más. Somos tu bar de confianza."
|
||||
description="Alierta 19 nació para ser ese sitio al que vuelves sin pensarlo. Desayuno, comida, cena o simplemente una caña con un pincho — siempre con el mismo cariño."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/side-view-business-owner-making-coffee_23-2149434545.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<HistoriaSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCards
|
||||
tag="Por qué el barrio nos elige"
|
||||
title="Lo que dice el barrio de nosotros"
|
||||
description="Cada detalle, desde el café hasta la bienvenida, está pensado para ti."
|
||||
items={[
|
||||
{
|
||||
title: "Desayunos que enamoran",
|
||||
description: "Croissants de jamón y queso, tostadas variadas y un cortado como debe ser.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tasty-arrangement-with-pastries_23-2148289387.jpg",
|
||||
},
|
||||
{
|
||||
title: "Trato de familia",
|
||||
description: "Cercanía real, sin guion ni distancia. Como nos gusta que nos traten a nosotros.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-friends-taking-selfie_23-2149366431.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pet-friendly",
|
||||
description: "Uno de los pocos sitios donde tu mascota entra contigo. ¡Bienvenidos!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/elegant-women-with-little-dog-city_1157-26767.jpg",
|
||||
},
|
||||
{
|
||||
title: "Calidad accesible",
|
||||
description: "Lujo de comer bien sin pagar de más. Entre 10 y 20€ por persona.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-creamy-cake-with-cup-tea-light-dark-background_140725-80168.jpg",
|
||||
},
|
||||
{
|
||||
title: "Espacio abierto",
|
||||
description: "Ambiente inclusivo y amigable donde todos encuentran su sitio.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/friends-spending-time-outdoors-medium-shot_23-2149009397.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="carta" data-section="carta">
|
||||
<SectionErrorBoundary name="carta">
|
||||
<FeaturesImageBento
|
||||
tag="Nuestros imprescindibles"
|
||||
title="Lo que pide el barrio"
|
||||
description="Nuestros platos más icónicos, hechos siempre con cariño."
|
||||
items={[
|
||||
{
|
||||
title: "Croissant a la plancha",
|
||||
description: "Mantequilla dorada, crujiente por fuera.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/freshly-baked-croissant-wooden-table-french-breakfast-idea-sunny-bright-day-top-view-flat-lay-with-copy-space-text_166373-3514.jpg",
|
||||
},
|
||||
{
|
||||
title: "Huevos rotos",
|
||||
description: "Con jamón, el clásico hecho como debe ser.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fried-egg-with-sausages-pan-bread-bun-aside_114579-71158.jpg",
|
||||
},
|
||||
{
|
||||
title: "Patatas bravas",
|
||||
description: "Las de toda la vida, con su punto picante.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/finely-roasted-potato-sticks-served-with-lemon-slices_114579-1750.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bocadillo de carrillera",
|
||||
description: "Carne que se deshace, pan artesano.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/meat-sandwich-with-potato-balls-side-view_141793-2395.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tarta de queso casera",
|
||||
description: "La que ha hecho fama propia.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/slice-cheesecake_1232-2725.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tiramisú",
|
||||
description: "Delicado, cremoso, el cierre perfecto.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/tiramisu-decoration-concept_23-2148531567.jpg",
|
||||
},
|
||||
{
|
||||
title: "Nachos",
|
||||
description: "Generosos, para compartir o no.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-pancakes-with-sliced-fruits-chocolate-dark-grey-background-sweet-color-breakfast-sugar-fruit-cake-dessert_140725-109038.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<CartaSection />
|
||||
|
||||
<div id="testimonios" data-section="testimonios">
|
||||
<SectionErrorBoundary name="testimonios">
|
||||
<TestimonialRatingCards
|
||||
tag="Reseñas reales"
|
||||
title="775 razones para venir"
|
||||
description="Valoración de 4.5★ en Google por nuestra comunidad."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Ana García",
|
||||
role: "Cliente habitual",
|
||||
quote: "Bocadillos muy ricos, ensalada césar y nachos deliciosos.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-business-owner_23-2149434511.jpg",
|
||||
},
|
||||
{
|
||||
name: "Carlos Ruiz",
|
||||
role: "Vecino del barrio",
|
||||
quote: "Las patatas con mojo buenísimas, camareros atentos.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-cafe-dines-traditional-shakshuka-ayran_169016-16512.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marta López",
|
||||
role: "Amante del café",
|
||||
quote: "Un buen lugar para echar una jarra de cerveza y un pincho.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-pretty-woman-eating-pizza-pizza-bar_1303-20328.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sofía Pérez",
|
||||
role: "Desayunadora",
|
||||
quote: "El mejor bar para desayunar en Zaragoza. Espectacular.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-girl-eating-vegetarian-lunch_1398-4123.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jorge Gómez",
|
||||
role: "Cliente diario",
|
||||
quote: "Muy buena comida, lo mejor es la familiaridad del equipo.",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/handsome-young-man-wearing-trendy-hat-sitting-wooden-table-coffee-shop_273609-1622.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimoniosSection />
|
||||
|
||||
<div id="ambiente" data-section="ambiente">
|
||||
<SectionErrorBoundary name="ambiente">
|
||||
<AboutMediaOverlay
|
||||
tag="Tu rincón"
|
||||
title="Tu rincón en Cesáreo Alierta"
|
||||
description="Terraza para los días de sol, mesas cálidas para los de cuchara, y una barra donde siempre hay sitio para una caña rápida."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/group-four-south-asian-men-s-posed-business-meeting-cafe-indians-work-together-using-various-gadgets-having-conversation_627829-5231.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AmbienteSection />
|
||||
|
||||
<div id="contacto" data-section="contacto">
|
||||
<SectionErrorBoundary name="contacto">
|
||||
<ContactCta
|
||||
tag="Te esperamos"
|
||||
text="Av. de Cesáreo Alierta, 23 · 876 43 12 26 · Martes a domingo"
|
||||
primaryButton={{
|
||||
text: "Reservar mesa",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Ver ubicación",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactoSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
21
src/pages/HomePage/sections/Ambiente.tsx
Normal file
21
src/pages/HomePage/sections/Ambiente.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "ambiente" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AmbienteSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="ambiente" data-section="ambiente">
|
||||
<SectionErrorBoundary name="ambiente">
|
||||
<AboutMediaOverlay
|
||||
tag="Por qué confiar en nosotros"
|
||||
title="Más que un taller, un compromiso"
|
||||
description="Sabemos que dejar tu coche en manos de alguien es un acto de confianza. Por eso en Constancia Motor cuidamos cada detalle: te explicamos el problema en un lenguaje claro, te damos un presupuesto cerrado antes de empezar, y trabajamos con la misma exigencia que pondríamos en nuestro propio coche. Casi 30 años después, seguimos siendo el taller donde el barrio —y quienes ya no viven en él— traen lo que más les importa."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/mechanic-hands-checking-up-car-engine-with-tools_1150-7231.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Carta.tsx
Normal file
21
src/pages/HomePage/sections/Carta.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "carta" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CartaSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="carta" data-section="carta">
|
||||
<SectionErrorBoundary name="carta">
|
||||
<FeaturesImageBento
|
||||
tag="Servicios"
|
||||
title="Todo lo que tu coche necesita, en un solo sitio"
|
||||
description="Mecánica multimarca para que no tengas que buscar en otro lado."
|
||||
items={[{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-hands-checking-up-car-engine-with-tools_1150-7231.jpg","title":"Diagnóstico de averías","description":"Detectamos el problema real, no el que parece"},{"description":"Cambios de aceite, filtros y puesta a punto general","title":"Mantenimiento y revisiones","imageSrc":"http://img.b2bpic.net/free-photo/mechanic-repairing-car-engine_1303-26532.jpg"},{"description":"Seguridad antes que nada, revisada a fondo","imageSrc":"http://img.b2bpic.net/free-photo/car-mechanic-changing-wheels-auto-repair-shop_146671-19717.jpg","title":"Frenos y suspensión"},{"description":"Las piezas críticas, tratadas con la precisión que merecen","title":"Distribución y embrague","imageSrc":"http://img.b2bpic.net/free-photo/auto-mechanic-working-garage_1150-5828.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-examining-car-engine_1150-7232.jpg","title":"Sistema de refrigeración","description":"Evitamos que tu motor sufra de más"},{"title":"Electricidad del automóvil","imageSrc":"http://img.b2bpic.net/free-photo/mechanic-holding-clipboard-auto-repair-shop_1150-7233.jpg","description":"Desde luces de avería hasta fallos eléctricos complejos"},{"description":"Cambio, equilibrado y alineación","imageSrc":"http://img.b2bpic.net/free-photo/car-mechanic-changing-wheels-auto-repair-shop_146671-19717.jpg","title":"Neumáticos"},{"title":"Pre-ITV","imageSrc":"http://img.b2bpic.net/free-photo/car-repair-maintenance-theme-mechanic-uniform-working-auto-service_627829-3918.jpg","description":"Revisamos antes de que lo haga la inspección"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Contacto.tsx
Normal file
21
src/pages/HomePage/sections/Contacto.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contacto" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ContactoSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contacto" data-section="contacto">
|
||||
<SectionErrorBoundary name="contacto">
|
||||
<ContactCta
|
||||
tag="Te esperamos en el taller"
|
||||
text="C. de la Constancia, 40, Chamartín, 28002 Madrid · 914 15 96 56 · Abierto de lunes a viernes"
|
||||
primaryButton={{"text":"Pedir cita","href":"#"}}
|
||||
secondaryButton={{"href":"tel:914159656","text":"Llamar ahora"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Features.tsx
Normal file
21
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCards
|
||||
tag="Por qué nos eligen"
|
||||
title="Lo que dicen quienes ya confían en nosotros"
|
||||
description="Basado en reseñas reales de nuestros clientes."
|
||||
items={[{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-holding-clipboard-auto-repair-shop_1150-7233.jpg","title":"Diagnóstico honesto, sin sorpresas","description":"Te explicamos qué tiene tu coche y cuánto cuesta arreglarlo antes de tocar nada. Sin letra pequeña ni añadidos de última hora."},{"title":"Rápidos cuando lo necesitas de verdad","imageSrc":"http://img.b2bpic.net/free-photo/car-mechanic-changing-wheels-auto-repair-shop_146671-19717.jpg","description":"Sabemos que sin coche la vida se complica. Por eso resolvemos con la rapidez que el problema permite, sin atajos en la calidad."},{"description":"Mario, Antonio y el resto del equipo no son números. Son los mecánicos que recordarán tu coche la próxima vez que vuelvas.","imageSrc":"http://img.b2bpic.net/free-photo/handsome-mechanic-working-auto-repair-shop_1303-26534.jpg","title":"Un equipo con nombre y cara"},{"description":"Profesionales, limpios y económicos. Un taller donde el presupuesto que te dan es el que pagas.","imageSrc":"http://img.b2bpic.net/free-photo/mechanic-examining-car-engine_1150-7232.jpg","title":"Precios justos, sin tonterías"},{"imageSrc":"http://img.b2bpic.net/free-photo/car-repair-maintenance-theme-mechanic-uniform-working-auto-service_627829-3918.jpg","title":"Casi 30 años de experiencia real","description":"Desde 1997 reparando coches en Chamartín. La experiencia se nota en cada diagnóstico."}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
26
src/pages/HomePage/sections/Hero.tsx
Normal file
26
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Talleres Constancia Motor"
|
||||
title="Casi 30 años cuidando coches en Chamartín. Y diciéndote siempre la verdad."
|
||||
description="Diagnóstico honesto, reparación bien hecha y un equipo que conoce tu coche por su nombre. Así trabajamos en Talleres Constancia Motor.
|
||||
|
||||
C. de la Constancia, 40, Chamartín, 28002 Madrid · Abierto de lunes a viernes"
|
||||
primaryButton={{"href":"#contacto","text":"Pedir cita"}}
|
||||
secondaryButton={{"text":"Llamar ahora","href":"tel:914159656"}}
|
||||
leftItems={[{"imageSrc":"http://img.b2bpic.net/free-photo/car-mechanic-changing-wheels-auto-repair-shop_146671-19717.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-repairing-car-engine_1303-26532.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/auto-mechanic-working-garage_1150-5828.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/handsome-mechanic-working-auto-repair-shop_1303-26534.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/car-repair-maintenance-theme-mechanic-uniform-working-auto-service_627829-3918.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-hands-checking-up-car-engine-with-tools_1150-7231.jpg"}]}
|
||||
rightItems={[{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-examining-car-engine_1150-7232.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-holding-clipboard-auto-repair-shop_1150-7233.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-repairing-car-engine_1303-26532.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/car-mechanic-changing-wheels-auto-repair-shop_146671-19717.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/auto-mechanic-working-garage_1150-5828.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/handsome-mechanic-working-auto-repair-shop_1303-26534.jpg"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
75
src/pages/HomePage/sections/Historia.tsx
Normal file
75
src/pages/HomePage/sections/Historia.tsx
Normal file
@@ -0,0 +1,75 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
|
||||
import { motion } from "motion/react";
|
||||
import Button from "@/components/ui/Button";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
|
||||
type AboutMediaOverlayProps = {
|
||||
tag: string;
|
||||
title: string;
|
||||
description: string;
|
||||
primaryButton?: { text: string; href: string };
|
||||
secondaryButton?: { text: string; href: string };
|
||||
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
|
||||
|
||||
const HistoriaInline = () => {
|
||||
return (
|
||||
<section aria-label="About section" className="py-20 bg-background">
|
||||
<div className="mx-auto w-content-width">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
|
||||
<div>
|
||||
<motion.span
|
||||
initial={{ opacity: 0, y: 10 }}
|
||||
whileInView={{ opacity: 1, y: 0 }}
|
||||
viewport={{ once: true, margin: "-15%" }}
|
||||
transition={{ duration: 0.4, ease: "easeOut" }}
|
||||
className="mb-6 inline-block px-3 py-1 text-sm bg-primary-cta text-primary-cta-text rounded"
|
||||
>
|
||||
{"Desde 1997"}
|
||||
</motion.span>
|
||||
|
||||
<TextAnimation
|
||||
text={"Desde 1997, el taller al que la gente vuelve aunque viva lejos."}
|
||||
variant="fade"
|
||||
gradientText={false}
|
||||
tag="h2"
|
||||
className="text-4xl md:text-5xl leading-[1.15] font-bold text-balance text-foreground mb-6"
|
||||
/>
|
||||
|
||||
<TextAnimation
|
||||
text={"Constancia Motor nació en el barrio de Prosperidad y lleva casi tres décadas reparando coches con la misma filosofía: hacerlo bien a la primera y tratar a cada cliente como si fuera el único. No somos una cadena ni un taller de paso. Somos el sitio donde Mario, Antonio y todo el equipo conocen tu coche, te explican qué le pasa sin enredarte, y te cobran lo justo. Por eso hay clientes que, aunque ya no vivan cerca, siguen trayendo su coche aquí."}
|
||||
variant="fade"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="text-lg leading-snug text-balance text-secondary-cta-text mb-6"
|
||||
/>
|
||||
|
||||
<blockquote className="border-l-4 border-primary-cta pl-4 italic text-foreground text-lg">
|
||||
"A pesar de residir lejos, acudo a ellos para cualquier reparación. Constancia Motor es sin duda un lugar de confianza al cien por cien."
|
||||
</blockquote>
|
||||
|
||||
{(undefined || undefined) && (
|
||||
<div className="flex flex-wrap gap-3 mt-6">
|
||||
{undefined && <Button text={undefined.text} href={undefined.href} variant="primary"/>}
|
||||
{undefined && <Button text={undefined.text} href={undefined.href} variant="secondary"animationDelay={0.1} />}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="relative rounded overflow-hidden">
|
||||
<ImageOrVideo imageSrc={"http://img.b2bpic.net/free-photo/auto-mechanic-working-garage_1150-5828.jpg"} className="w-full h-auto object-cover aspect-[4/3]" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function HistoriaSection() {
|
||||
return (
|
||||
<div data-webild-section="historia" id="historia">
|
||||
<HistoriaInline />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Testimonios.tsx
Normal file
21
src/pages/HomePage/sections/Testimonios.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonios" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimoniosSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonios" data-section="testimonios">
|
||||
<SectionErrorBoundary name="testimonios">
|
||||
<TestimonialRatingCards
|
||||
tag="Testimonios reales"
|
||||
title="57 reseñas, una misma palabra: confianza"
|
||||
description="4,5★ en Google · +57 reseñas"
|
||||
testimonials={[{"quote":"Rápidos y eficaces, además de simpatía y amabilidad.","role":"Reseña de Google","name":"Cliente Satisfecho","imageSrc":"http://img.b2bpic.net/free-photo/handsome-mechanic-working-auto-repair-shop_1303-26534.jpg","rating":5},{"rating":5,"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-holding-clipboard-auto-repair-shop_1150-7233.jpg","quote":"Profesionales, limpios y económicos, un sitio donde fiarse.","role":"Reseña de Google","name":"Cliente Satisfecho"},{"imageSrc":"http://img.b2bpic.net/free-photo/mechanic-examining-car-engine_1150-7232.jpg","name":"Cliente Satisfecho","quote":"Buena atención, buen servicio.","role":"Reseña de Google","rating":5},{"name":"Cliente Satisfecho","quote":"Gran taller y grandes profesionales. Nos atendió Mario y todo fue fenomenal, la luz de avería de mi coche no se ha vuelto a encender. Sin duda volveré.","role":"Reseña de Google","imageSrc":"http://img.b2bpic.net/free-photo/auto-mechanic-working-garage_1150-5828.jpg","rating":5},{"name":"Cliente Satisfecho","quote":"Adolfo es un mecánico de los que quedan pocos. Serio, profesional y mirando siempre lo mejor para el cliente.","role":"Reseña de Google","imageSrc":"http://img.b2bpic.net/free-photo/car-repair-maintenance-theme-mechanic-uniform-working-auto-service_627829-3918.jpg","rating":5}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user