Bob AI: Changed color scheme to Peruvian theme with intense red

This commit is contained in:
kudinDmitriyUp
2026-06-15 20:46:56 +00:00
parent ca6923cb81
commit 2a4e50f8f1
9 changed files with 238 additions and 149 deletions

View File

@@ -5,15 +5,15 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #f5faff;
--background: #fffdfa;
--card: #ffffff;
--foreground: #001122;
--primary-cta: #15479c;
--primary-cta-text: #f5faff;
--foreground: #2b0b0b;
--primary-cta: #D91023;
--primary-cta-text: #ffffff;
--secondary-cta: #ffffff;
--secondary-cta-text: #001122;
--accent: #a8cce8;
--background-accent: #7ba3cf;
--secondary-cta-text: #D91023;
--accent: #f5b041;
--background-accent: #f2d7d5;
/* @layout/border-radius/rounded */
--radius: 0.5rem;

View File

@@ -1,153 +1,33 @@
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesBento from '@/components/sections/features/FeaturesBento';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroSplit from '@/components/sections/hero/HeroSplit';
import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards';
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
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 AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import CartaSection from './HomePage/sections/Carta';
import PricingSection from './HomePage/sections/Pricing';
import TestimonialsSection from './HomePage/sections/Testimonials';
import ContactoSection from './HomePage/sections/Contacto';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplit
tag="Sabor Peruano en Viladecans"
title="Casa Perú Restaurant"
description="Ven a descubrir la auténtica gastronomía peruana. Delicias tradicionales como nuestro ceviche estrella y lomo saltado te esperan en un ambiente inigualable."
primaryButton={{
text: "Reserva Ahora", href: "#contacto"}}
secondaryButton={{
text: "Consulta la Carta", href: "#carta"}}
imageSrc="http://img.b2bpic.net/free-photo/herring-salad-with-onion_2829-17558.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Nuestra Filosofía"
quote="En Casa Perú, fusionamos la tradición andina con la pasión criolla, llevando los mejores sabores del Perú directamente a tu mesa en Viladecans."
author="Chef de Casa Perú"
role="Fundador y Chef"
imageSrc="http://img.b2bpic.net/free-photo/decorative-mexican-symbol-board-near-dried-chili-sombrero_23-2148132076.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBento
tag="Lo mejor de nuestra cocina"
title="Experiencia Gastronómica"
description="Descubre por qué somos referencia en cocina peruana."
features={[
{
title: "Ceviches Frescos", description: "Láminas de pescado fresco marinado en leche de tigre de la casa.", bentoComponent: "media-stack", mediaItems: [
{
imageSrc: "http://img.b2bpic.net/free-photo/grilled-beef-vegetable-plate-ready-eat-generated-by-ai_188544-39175.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fruit-vegetable-salad-glass-cup-wooden-floor_1150-20742.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/still-life-recipe-with-plantain_23-2151062796.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="carta" data-section="carta">
<SectionErrorBoundary name="carta">
<FeaturesRevealCardsBento
tag="Nuestra Carta"
title="Platos Estrella"
description="Explora nuestra selección de platos tradicionales."
items={[
{
title: "Ceviche Mixto", description: "Combinación fresca de pescado y mariscos tradicionales.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/healthy-drink-organic-blue-pea-flower-tea-with-lemon-lime_1150-25447.jpg"},
{
title: "Lomo Saltado", description: "Ternera salteada al wok con aromas peruanos.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-high-protein-meal-assortment_23-2149089678.jpg"},
{
title: "Arroz con Pato", description: "Presas de pato maceradas y aderezadas al cilantro.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/food-chinese-new-year_23-2148066069.jpg"},
{
title: "Causa Limeña", description: "Pastel frío de patatas relleno de pollo o atún.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-plate-with-raw-meat-skewers_23-2148632652.jpg"},
{
title: "Pisco Sour", description: "Bebida clásica peruana para acompañar tu experiencia.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-view-half-pineapple-with-seafood-copy-space_23-2148494703.jpg"},
{
title: "Cheesecake de Maracuyá", description: "Postre estrella con fruta tropical.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/arrangement-with-delicious-local-food-dish_23-2148833842.jpg"},
{
title: "Anticuchos", description: "Corazón de ternera marinada en ajíes andinos.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-kebab-chopping-board-with-lemon_23-2148685521.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<CartaSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingSplitCards
tag="Menús Especiales"
title="Opciones de Menú"
description="Calidad al mejor precio para tus comidas en familia o amigos."
plans={[
{
tag: "Popular", price: "22,00 €", period: "por persona", description: "Disfruta de nuestros criollos.", primaryButton: {
text: "Reservar", href: "#contacto"},
featuresTitle: "Lo que incluye:", features: [
"Entrante", "Plato principal", "Postre artesanal"],
},
{
tag: "Premium", price: "28,00 €", period: "por persona", description: "Selección premium de ceviches.", primaryButton: {
text: "Reservar", href: "#contacto"},
featuresTitle: "Lo que incluye:", features: [
"Ceviche de autor", "Plato principal", "Bebida tradicional"],
},
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Opiniones"
title="Lo que dicen nuestros clientes"
description="La satisfacción de quienes nos visitan es nuestra mayor recompensa."
testimonials={[
{
name: "Ana García", role: "Cliente habitual", company: "Viladecans", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-green-eyed-brunette-woman-hair-band-white-t-shirt-against-wall-windows-cacti_197531-17042.jpg"},
{
name: "Carlos Ruiz", role: "Foodie", company: "Barcelona", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/happy-extended-family-enjoying-lunch-toasting-with-wine-dining-table_637285-3215.jpg"},
{
name: "Elena Torres", role: "Fan de lo peruano", company: "Viladecans", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-people-celebrating-engagement_23-2149212184.jpg"},
{
name: "Jordi Mir", role: "Cliente", company: "Viladecans", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/adults-enjoying-mexican-food_23-2149663874.jpg"},
{
name: "Lucía P.", role: "Cliente", company: "Barcelona", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-beautiful-asian-girl-barista-working-cafe-holding-cup-tea-giving-client-their-order_1258-199284.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="contacto" data-section="contacto">
<SectionErrorBoundary name="contacto">
<ContactCta
tag="Reserva tu Mesa"
text="Ven a vivir una experiencia gastronómica inolvidable. Llámanos para reservar o consultar dudas: +34 935 99 29 34"
primaryButton={{
text: "Llamar ahora", href: "tel:+34935992934"}}
secondaryButton={{
text: "WhatsApp", href: "https://wa.me/34935992934"}}
/>
</SectionErrorBoundary>
</div>
<ContactoSection />
</>
);
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Nuestra Filosofía"
quote="En Casa Perú, fusionamos la tradición andina con la pasión criolla, llevando los mejores sabores del Perú directamente a tu mesa en Viladecans."
author="Chef de Casa Perú"
role="Fundador y Chef"
imageSrc="http://img.b2bpic.net/free-photo/decorative-mexican-symbol-board-near-dried-chili-sombrero_23-2148132076.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,36 @@
// 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 FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function CartaSection(): React.JSX.Element {
return (
<div id="carta" data-section="carta">
<SectionErrorBoundary name="carta">
<FeaturesRevealCardsBento
tag="Nuestra Carta"
title="Platos Estrella"
description="Explora nuestra selección de platos tradicionales."
items={[
{
title: "Ceviche Mixto", description: "Combinación fresca de pescado y mariscos tradicionales.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/healthy-drink-organic-blue-pea-flower-tea-with-lemon-lime_1150-25447.jpg"},
{
title: "Lomo Saltado", description: "Ternera salteada al wok con aromas peruanos.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/delicious-high-protein-meal-assortment_23-2149089678.jpg"},
{
title: "Arroz con Pato", description: "Presas de pato maceradas y aderezadas al cilantro.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/food-chinese-new-year_23-2148066069.jpg"},
{
title: "Causa Limeña", description: "Pastel frío de patatas relleno de pollo o atún.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-plate-with-raw-meat-skewers_23-2148632652.jpg"},
{
title: "Pisco Sour", description: "Bebida clásica peruana para acompañar tu experiencia.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/high-view-half-pineapple-with-seafood-copy-space_23-2148494703.jpg"},
{
title: "Cheesecake de Maracuyá", description: "Postre estrella con fruta tropical.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/arrangement-with-delicious-local-food-dish_23-2148833842.jpg"},
{
title: "Anticuchos", description: "Corazón de ternera marinada en ajíes andinos.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-kebab-chopping-board-with-lemon_23-2148685521.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,23 @@
// 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="Reserva tu Mesa"
text="Ven a vivir una experiencia gastronómica inolvidable. Llámanos para reservar o consultar dudas: +34 935 99 29 34"
primaryButton={{
text: "Llamar ahora", href: "tel:+34935992934"}}
secondaryButton={{
text: "WhatsApp", href: "https://wa.me/34935992934"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,32 @@
// 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 FeaturesBento from '@/components/sections/features/FeaturesBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBento
tag="Lo mejor de nuestra cocina"
title="Experiencia Gastronómica"
description="Descubre por qué somos referencia en cocina peruana."
features={[
{
title: "Ceviches Frescos", description: "Láminas de pescado fresco marinado en leche de tigre de la casa.", bentoComponent: "media-stack", mediaItems: [
{
imageSrc: "http://img.b2bpic.net/free-photo/grilled-beef-vegetable-plate-ready-eat-generated-by-ai_188544-39175.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fruit-vegetable-salad-glass-cup-wooden-floor_1150-20742.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/still-life-recipe-with-plantain_23-2151062796.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// 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 HeroSplit from '@/components/sections/hero/HeroSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplit
tag="Sabor Peruano en Viladecans"
title="Casa Perú Restaurant"
description="Ven a descubrir la auténtica gastronomía peruana. Delicias tradicionales como nuestro ceviche estrella y lomo saltado te esperan en un ambiente inigualable."
primaryButton={{
text: "Reserva Ahora", href: "#contacto"}}
secondaryButton={{
text: "Consulta la Carta", href: "#carta"}}
imageSrc="http://img.b2bpic.net/free-photo/herring-salad-with-onion_2829-17558.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "pricing" section.
import React from 'react';
import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingSplitCards
tag="Menús Especiales"
title="Opciones de Menú"
description="Calidad al mejor precio para tus comidas en familia o amigos."
plans={[
{
tag: "Popular", price: "22,00 €", period: "por persona", description: "Disfruta de nuestros criollos.", primaryButton: {
text: "Reservar", href: "#contacto"},
featuresTitle: "Lo que incluye:", features: [
"Entrante", "Plato principal", "Postre artesanal"],
},
{
tag: "Premium", price: "28,00 €", period: "por persona", description: "Selección premium de ceviches.", primaryButton: {
text: "Reservar", href: "#contacto"},
featuresTitle: "Lo que incluye:", features: [
"Ceviche de autor", "Plato principal", "Bebida tradicional"],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Opiniones"
title="Lo que dicen nuestros clientes"
description="La satisfacción de quienes nos visitan es nuestra mayor recompensa."
testimonials={[
{
name: "Ana García", role: "Cliente habitual", company: "Viladecans", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-green-eyed-brunette-woman-hair-band-white-t-shirt-against-wall-windows-cacti_197531-17042.jpg"},
{
name: "Carlos Ruiz", role: "Foodie", company: "Barcelona", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/happy-extended-family-enjoying-lunch-toasting-with-wine-dining-table_637285-3215.jpg"},
{
name: "Elena Torres", role: "Fan de lo peruano", company: "Viladecans", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-people-celebrating-engagement_23-2149212184.jpg"},
{
name: "Jordi Mir", role: "Cliente", company: "Viladecans", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/adults-enjoying-mexican-food_23-2149663874.jpg"},
{
name: "Lucía P.", role: "Cliente", company: "Barcelona", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-beautiful-asian-girl-barista-working-cafe-holding-cup-tea-giving-client-their-order_1258-199284.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}