Bob AI: Update accent color to #F5F0E8

This commit is contained in:
kudinDmitriyUp
2026-06-14 04:32:34 +00:00
parent 182babb9ff
commit 17839b350f
9 changed files with 317 additions and 228 deletions

View File

@@ -12,7 +12,7 @@
--primary-cta-text: #1A1208;
--secondary-cta: #8B1A1A;
--secondary-cta-text: #F5F0E8;
--accent: #C8933A;
--accent: #F5F0E8;
--background-accent: #2D2010;
/* @layout/border-radius/rounded */

View File

@@ -1,238 +1,33 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
import { Award, Book, Star } from "lucide-react";
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 ExperienceSection from './HomePage/sections/Experience';
import AboutSection from './HomePage/sections/About';
import MenuSection from './HomePage/sections/Menu';
import TestimonialsSection from './HomePage/sections/Testimonials';
import PrivateDiningSection from './HomePage/sections/PrivateDining';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardCarousel
tag="Westminster's Finest"
title="A Legacy of Culinary Distinction"
description="Located in the heart of Westminster, The Cinnamon Club offers an unparalleled fine dining experience in a historic Victorian library setting."
primaryButton={{
text: "Book a Table",
href: "#contact",
}}
secondaryButton={{
text: "Private Dining",
href: "#private-dining",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/wine-glass-table-setting_74190-4678.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/front-view-book-line_23-2147978259.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/vegetable-salad-plate_140725-2460.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/vertical-image-luxurious-dining-room-with-ornate-chairs-as-seen-through-open-door_181624-24717.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-cooked-squashes-designed-meal-inside-plate-grey-surface_140725-89990.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-round-square-tables-some-chairs-plants_140725-8031.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="experience" data-section="experience">
<SectionErrorBoundary name="experience">
<MetricsMediaCards
tag="Our Heritage"
title="Experience Unrivalled Excellence"
description="Over two decades of defining modern Indian cuisine within the sanctuary of a former Victorian library."
metrics={[
{
value: "20+",
title: "Years of Heritage",
description: "Defining excellence in Westminster since 2001.",
imageSrc: "http://img.b2bpic.net/free-photo/interior-design-beautiful-castle_23-2151010426.jpg",
},
{
value: "Michelin",
title: "Standard",
description: "Unwavering commitment to culinary perfection.",
imageSrc: "http://img.b2bpic.net/free-photo/tomato-soup-with-spicy-ingredient-top_114579-2430.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ExperienceSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="The Sanctuary"
title="Where History Meets Spices"
description="Our restaurant is housed in the Grade II-listed Old Westminster Library, where rows of books and rich wood interiors create an atmosphere of scholarly grace."
items={[
{
icon: Book,
title: "Victorian Library Setting",
description: "Dine surrounded by thousands of original books.",
},
{
icon: Award,
title: "Modern Indian Cuisine",
description: "Authentic recipes with a modern, sophisticated twist.",
},
{
icon: Star,
title: "Award-Winning Service",
description: "Impeccable standards that define fine dining.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/royal-dining-room-with-wooden-furniture-chandeliers_114579-2222.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesImageBento
tag="Culinary Art"
title="Signature Flavours"
description="Explore our seasonal menu highlighting the richness of Indian spices crafted for the discerning palate."
items={[
{
title: "Tandoori Lamb",
description: "Hand-selected tender lamb cuts.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-rice-dish_23-2147680629.jpg",
},
{
title: "Saffron Risotto",
description: "A fusion of East and West.",
imageSrc: "http://img.b2bpic.net/free-photo/creative-assortment-delicious-food_23-2148949025.jpg",
},
{
title: "Seared Scallops",
description: "Delicate, fresh, and perfectly spiced.",
imageSrc: "http://img.b2bpic.net/free-photo/white-plate-with-originally-served-salad-stands-dark-wooden-t_1304-4651.jpg",
},
{
title: "Wild Mushroom Curry",
description: "Earthy, rich forest flavours.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-hands-preparing-delicious-meal_23-2149661346.jpg",
},
{
title: "Spiced Duck",
description: "Succulent roast served with seasonal accompaniments.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-cooked-mushrooms-with-dough-pasta-dark-grey-table-fry-food-dinner-meal_140725-79166.jpg",
},
{
title: "Artisanal Breads",
description: "Freshly baked in our traditional tandoor.",
imageSrc: "http://img.b2bpic.net/free-photo/seared-scallops-with-pea-puree_23-2151942414.jpg",
},
{
title: "Chefs Selection",
description: "Experience our curated tasting menu.",
imageSrc: "http://img.b2bpic.net/free-photo/closeup-side-dish-with-vegetables-caviar-top-with-blurred-background_181624-2204.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<MenuSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialColumnMarqueeCards
tag="Guest Reviews"
title="A Taste of Perfection"
description="Don't just take our word for it."
testimonials={[
{
name: "James L.",
role: "Food Critic",
quote: "The most atmospheric dining room in London.",
imageSrc: "http://img.b2bpic.net/free-photo/man-holding-hand-blond-woman-table_23-2148024532.jpg",
},
{
name: "Elena M.",
role: "Diner",
quote: "A truly magical evening. The library setting is stunning.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517403.jpg",
},
{
name: "Thomas H.",
role: "Regular",
quote: "Impeccable service, world-class flavours.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517424.jpg",
},
{
name: "Sarah P.",
role: "Private Guest",
quote: "Perfect for our celebration, the private rooms are exceptional.",
imageSrc: "http://img.b2bpic.net/free-photo/celebration-party-holidays-concept-portrait-lovely-charismatic-hispaic-guy-bday-glasses-ce_1258-109378.jpg",
},
{
name: "David K.",
role: "Foodie",
quote: "The lamb is unmatched in the city. A Westminster landmark.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598413.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="private-dining" data-section="private-dining">
<SectionErrorBoundary name="private-dining">
<FeaturesMediaCards
tag="Exclusive Events"
title="Private Dining in Elegance"
description="Our beautifully appointed library rooms are available for exclusive private events, intimate dinners, and corporate gatherings."
items={[
{
title: "Intimate Library Rooms",
description: "Seating for 8-20 guests in complete privacy.",
imageSrc: "http://img.b2bpic.net/free-photo/autumn-warm-aesthetic-editorial_23-2151853268.jpg",
},
{
title: "Custom Event Menus",
description: "Personalized menus curated by our Executive Chef.",
imageSrc: "http://img.b2bpic.net/free-photo/white-plate-with-baked-vegetables-stands-barrel_1304-4658.jpg",
},
{
title: "Corporate Hosting",
description: "Professional setup for your prestigious gatherings.",
imageSrc: "http://img.b2bpic.net/free-photo/cinematic-film-location-decor_23-2151918999.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<PrivateDiningSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Reservations"
text="Call us at +44 20 7222 5555 or use our reservation system to secure your table in Westminster."
primaryButton={{
text: "Book Now (OpenTable)",
href: "#",
}}
secondaryButton={{
text: "Enquire Private Dining",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,39 @@
// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import { Award, Book, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="The Sanctuary"
title="Where History Meets Spices"
description="Our restaurant is housed in the Grade II-listed Old Westminster Library, where rows of books and rich wood interiors create an atmosphere of scholarly grace."
items={[
{
icon: Book,
title: "Victorian Library Setting",
description: "Dine surrounded by thousands of original books.",
},
{
icon: Award,
title: "Modern Indian Cuisine",
description: "Authentic recipes with a modern, sophisticated twist.",
},
{
icon: Star,
title: "Award-Winning Service",
description: "Impeccable standards that define fine dining.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/royal-dining-room-with-wooden-furniture-chandeliers_114579-2222.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Reservations"
text="Call us at +44 20 7222 5555 or use our reservation system to secure your table in Westminster."
primaryButton={{
text: "Book Now (OpenTable)",
href: "#",
}}
secondaryButton={{
text: "Enquire Private Dining",
href: "#",
}}
/>
</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 "experience" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ExperienceSection(): React.JSX.Element {
return (
<div id="experience" data-section="experience">
<SectionErrorBoundary name="experience">
<MetricsMediaCards
tag="Our Heritage"
title="Experience Unrivalled Excellence"
description="Over two decades of defining modern Indian cuisine within the sanctuary of a former Victorian library."
metrics={[
{
value: "20+",
title: "Years of Heritage",
description: "Defining excellence in Westminster since 2001.",
imageSrc: "http://img.b2bpic.net/free-photo/interior-design-beautiful-castle_23-2151010426.jpg",
},
{
value: "Michelin",
title: "Standard",
description: "Unwavering commitment to culinary perfection.",
imageSrc: "http://img.b2bpic.net/free-photo/tomato-soup-with-spicy-ingredient-top_114579-2430.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,48 @@
// 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 HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardCarousel
tag="Westminster's Finest"
title="A Legacy of Culinary Distinction"
description="Located in the heart of Westminster, The Cinnamon Club offers an unparalleled fine dining experience in a historic Victorian library setting."
primaryButton={{
text: "Book a Table",
href: "#contact",
}}
secondaryButton={{
text: "Private Dining",
href: "#private-dining",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/wine-glass-table-setting_74190-4678.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/front-view-book-line_23-2147978259.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/vegetable-salad-plate_140725-2460.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/vertical-image-luxurious-dining-room-with-ornate-chairs-as-seen-through-open-door_181624-24717.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-cooked-squashes-designed-meal-inside-plate-grey-surface_140725-89990.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-round-square-tables-some-chairs-plants_140725-8031.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "menu" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MenuSection(): React.JSX.Element {
return (
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesImageBento
tag="Culinary Art"
title="Signature Flavours"
description="Explore our seasonal menu highlighting the richness of Indian spices crafted for the discerning palate."
items={[
{
title: "Tandoori Lamb",
description: "Hand-selected tender lamb cuts.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-rice-dish_23-2147680629.jpg",
},
{
title: "Saffron Risotto",
description: "A fusion of East and West.",
imageSrc: "http://img.b2bpic.net/free-photo/creative-assortment-delicious-food_23-2148949025.jpg",
},
{
title: "Seared Scallops",
description: "Delicate, fresh, and perfectly spiced.",
imageSrc: "http://img.b2bpic.net/free-photo/white-plate-with-originally-served-salad-stands-dark-wooden-t_1304-4651.jpg",
},
{
title: "Wild Mushroom Curry",
description: "Earthy, rich forest flavours.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-hands-preparing-delicious-meal_23-2149661346.jpg",
},
{
title: "Spiced Duck",
description: "Succulent roast served with seasonal accompaniments.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-cooked-mushrooms-with-dough-pasta-dark-grey-table-fry-food-dinner-meal_140725-79166.jpg",
},
{
title: "Artisanal Breads",
description: "Freshly baked in our traditional tandoor.",
imageSrc: "http://img.b2bpic.net/free-photo/seared-scallops-with-pea-puree_23-2151942414.jpg",
},
{
title: "Chefs Selection",
description: "Experience our curated tasting menu.",
imageSrc: "http://img.b2bpic.net/free-photo/closeup-side-dish-with-vegetables-caviar-top-with-blurred-background_181624-2204.jpg",
},
]}
/>
</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 "private-dining" section.
import React from 'react';
import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PrivateDiningSection(): React.JSX.Element {
return (
<div id="private-dining" data-section="private-dining">
<SectionErrorBoundary name="private-dining">
<FeaturesMediaCards
tag="Exclusive Events"
title="Private Dining in Elegance"
description="Our beautifully appointed library rooms are available for exclusive private events, intimate dinners, and corporate gatherings."
items={[
{
title: "Intimate Library Rooms",
description: "Seating for 8-20 guests in complete privacy.",
imageSrc: "http://img.b2bpic.net/free-photo/autumn-warm-aesthetic-editorial_23-2151853268.jpg",
},
{
title: "Custom Event Menus",
description: "Personalized menus curated by our Executive Chef.",
imageSrc: "http://img.b2bpic.net/free-photo/white-plate-with-baked-vegetables-stands-barrel_1304-4658.jpg",
},
{
title: "Corporate Hosting",
description: "Professional setup for your prestigious gatherings.",
imageSrc: "http://img.b2bpic.net/free-photo/cinematic-film-location-decor_23-2151918999.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// 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 TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialColumnMarqueeCards
tag="Guest Reviews"
title="A Taste of Perfection"
description="Don't just take our word for it."
testimonials={[
{
name: "James L.",
role: "Food Critic",
quote: "The most atmospheric dining room in London.",
imageSrc: "http://img.b2bpic.net/free-photo/man-holding-hand-blond-woman-table_23-2148024532.jpg",
},
{
name: "Elena M.",
role: "Diner",
quote: "A truly magical evening. The library setting is stunning.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517403.jpg",
},
{
name: "Thomas H.",
role: "Regular",
quote: "Impeccable service, world-class flavours.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-having-date-together-luxurious-restaurant_23-2150517424.jpg",
},
{
name: "Sarah P.",
role: "Private Guest",
quote: "Perfect for our celebration, the private rooms are exceptional.",
imageSrc: "http://img.b2bpic.net/free-photo/celebration-party-holidays-concept-portrait-lovely-charismatic-hispaic-guy-bday-glasses-ce_1258-109378.jpg",
},
{
name: "David K.",
role: "Foodie",
quote: "The lamb is unmatched in the city. A Westminster landmark.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598413.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}