Bob AI: Update background color to #1a1a1a

This commit is contained in:
kudinDmitriyUp
2026-06-14 11:40:34 +00:00
parent 61530c3592
commit 26324d9f20
10 changed files with 395 additions and 294 deletions

View File

@@ -5,7 +5,7 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #0a0a0a;
--background: #1a1a1a;
--card: #1a1a1a;
--foreground: #f5f5f5;
--primary-cta: #ffdf7d;

View File

@@ -1,305 +1,36 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
import PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import { Award, Globe, Leaf } 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 AboutSection from './HomePage/sections/About';
import ServicesSection from './HomePage/sections/Services';
import GallerySection from './HomePage/sections/Gallery';
import TestimonialsSection from './HomePage/sections/Testimonials';
import PricingSection from './HomePage/sections/Pricing';
import MetricsSection from './HomePage/sections/Metrics';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlayMarquee
tag="Executive Private Chef"
title="Crafting Extraordinary Culinary Experiences"
description="Elevate your private event with bespoke menus tailored to your exact palate. Sophisticated dining in the comfort of your home."
primaryButton={{
text: "Book a Consultation",
href: "#contact",
}}
secondaryButton={{
text: "View Menus",
href: "#services",
}}
items={[
{
text: "Michelin Rated",
icon: Award,
},
{
text: "Farm-to-Table",
icon: Leaf,
},
{
text: "Worldwide Catering",
icon: Globe,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/female-chef-kitchen-beating-eggs-with-whisk_23-2149720744.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="A Philosophy of Perfection"
descriptions={[
"With over 15 years in world-class kitchens, my culinary journey centers on respecting seasonal ingredients while pushing the boundaries of traditional techniques.",
"Every plate I craft is a narrative—a fusion of heritage recipes and avant-garde presentation tailored to delight the senses of discerning guests.",
]}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesBentoGrid
tag="Services"
title="Culinary Solutions"
description="Comprehensive private chef services tailored to your occasion."
features={[
{
title: "Private Fine Dining",
description: "Multi-course degustation experiences.",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-food-concept_23-2148510918.jpg",
},
{
title: "Corporate Events",
description: "Impress clients with culinary excellence.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-table-setting-gey-surface-with-empty-black-plates-silver-spoon-fork-knife_140725-12953.jpg",
},
{
title: "Cooking Classes",
description: "Hands-on intimate workshop sessions.",
imageSrc: "http://img.b2bpic.net/free-photo/man-filming-with-professional-camera-new-movie_23-2149066395.jpg",
},
{
title: "Bespoke Consulting",
description: "Custom menu design and kitchen logistics.",
imageSrc: "http://img.b2bpic.net/free-photo/man-looking-through-menu-restaurant_23-2150520061.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesRevealCardsBento
tag="Portolio"
title="Signature Creations"
description="A glimpse into our curated culinary masterpieces."
items={[
{
title: "Truffle Risotto",
description: "Velvety carnaroli with black winter truffle.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-egg-with-truffles-pita-high-angle_23-2149548075.jpg",
},
{
title: "Seared Scallop",
description: "U10 scallops, pea purée, pancetta soil.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/calamari-with-mango-sauce-with-nice-decoration-white-plate_1258-84821.jpg",
},
{
title: "Wagyu A5",
description: "Flash seared with mountain salt.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-meat-dish-with-glass-wine-table-meat-meal-food_140725-28163.jpg",
},
{
title: "Golden Beet Carpaccio",
description: "Herb-infused oil, pine nuts.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-tasty-vinaigrette-salad-with-beans-beets-grey-surface_140725-91259.jpg",
},
{
title: "Dark Choco Sphere",
description: "Gold leaf, raspberry reduction.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/gingerbreads-isolated-black-background-top-view_114579-19278.jpg",
},
{
title: "Ocean Crudo",
description: "Fresh catch with citrus essence.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-fresh-fish-slices-dark-blue-background_179666-22534.jpg",
},
{
title: "Smoked Duck",
description: "Slow cooked with plum glaze.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/duck-breast-steak-white-plate_74190-5934.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<GallerySection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Reviews"
title="Clients Say"
description="Testimonials from prestigious events."
testimonials={[
{
name: "Julia Roberts",
role: "Host",
quote: "The best dining experience we have ever had at home.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/table-with-white-servant_140725-6421.jpg",
},
{
name: "Mark Spencer",
role: "CEO",
quote: "Absolutely seamless service and impeccable flavor profiles.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/content-senior-businessman-with-arms-crossed_1262-1790.jpg",
},
{
name: "Elena Rossi",
role: "Food Critic",
quote: "A masterclass in modern European techniques.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/female-model-fall-winter-collection-outfits-holding-green-apple-front-view_114579-15717.jpg",
},
{
name: "David Tan",
role: "Private Client",
quote: "Professional, clean, and truly delicious.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598413.jpg",
},
{
name: "Sarah Jenkins",
role: "Organizer",
quote: "Highly recommended for corporate events.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/woman-window-reading_23-2148415947.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingCenteredCards
tag="Rates"
title="Investment"
description="Packages based on headcount and menu complexity."
plans={[
{
tag: "Intimate",
price: "$500",
description: "Small gatherings up to 4 guests.",
features: [
"Consultation",
"Three-course menu",
"Clean-up",
],
primaryButton: {
text: "Book",
href: "#contact",
},
},
{
tag: "Standard",
price: "$1,200",
description: "Events up to 10 guests.",
features: [
"Menu Design",
"Five-course menu",
"Staffing",
],
primaryButton: {
text: "Book",
href: "#contact",
},
},
{
tag: "Gala",
price: "$3,500+",
description: "Full-service catering events.",
features: [
"Custom Design",
"Full Service Staff",
"Premium Ingredients",
],
primaryButton: {
text: "Book",
href: "#contact",
},
},
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsFeatureCards
tag="Our Impact"
title="By The Numbers"
description="Experience that speaks for itself."
metrics={[
{
value: "1500+",
title: "Meals Served",
features: [
"Weddings",
"Private Parties",
"Galas",
],
},
{
value: "500+",
title: "Custom Menus",
features: [
"Plant-based",
"Fusion",
"Global",
],
},
{
value: "20+",
title: "Countries Served",
features: [
"Italy",
"France",
"Japan",
"USA",
],
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get in touch"
text="Ready to book your next exclusive dining event?"
primaryButton={{
text: "Email Me",
href: "mailto:chef@example.com",
}}
secondaryButton={{
text: "Call Now",
href: "tel:+1234567890",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

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 AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="A Philosophy of Perfection"
descriptions={[
"With over 15 years in world-class kitchens, my culinary journey centers on respecting seasonal ingredients while pushing the boundaries of traditional techniques.",
"Every plate I craft is a narrative—a fusion of heritage recipes and avant-garde presentation tailored to delight the senses of discerning guests.",
]}
/>
</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="Get in touch"
text="Ready to book your next exclusive dining event?"
primaryButton={{
text: "Email Me",
href: "mailto:chef@example.com",
}}
secondaryButton={{
text: "Call Now",
href: "tel:+1234567890",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "gallery" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function GallerySection(): React.JSX.Element {
return (
<div id="gallery" data-section="gallery">
<SectionErrorBoundary name="gallery">
<FeaturesRevealCardsBento
tag="Portolio"
title="Signature Creations"
description="A glimpse into our curated culinary masterpieces."
items={[
{
title: "Truffle Risotto",
description: "Velvety carnaroli with black winter truffle.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-egg-with-truffles-pita-high-angle_23-2149548075.jpg",
},
{
title: "Seared Scallop",
description: "U10 scallops, pea purée, pancetta soil.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/calamari-with-mango-sauce-with-nice-decoration-white-plate_1258-84821.jpg",
},
{
title: "Wagyu A5",
description: "Flash seared with mountain salt.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-meat-dish-with-glass-wine-table-meat-meal-food_140725-28163.jpg",
},
{
title: "Golden Beet Carpaccio",
description: "Herb-infused oil, pine nuts.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-tasty-vinaigrette-salad-with-beans-beets-grey-surface_140725-91259.jpg",
},
{
title: "Dark Choco Sphere",
description: "Gold leaf, raspberry reduction.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/gingerbreads-isolated-black-background-top-view_114579-19278.jpg",
},
{
title: "Ocean Crudo",
description: "Fresh catch with citrus essence.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-fresh-fish-slices-dark-blue-background_179666-22534.jpg",
},
{
title: "Smoked Duck",
description: "Slow cooked with plum glaze.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/duck-breast-steak-white-plate_74190-5934.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,44 @@
// 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 HeroOverlayMarquee from '@/components/sections/hero/HeroOverlayMarquee';
import { Award, Globe, Leaf } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroOverlayMarquee
tag="Executive Private Chef"
title="Crafting Extraordinary Culinary Experiences"
description="Elevate your private event with bespoke menus tailored to your exact palate. Sophisticated dining in the comfort of your home."
primaryButton={{
text: "Book a Consultation",
href: "#contact",
}}
secondaryButton={{
text: "View Menus",
href: "#services",
}}
items={[
{
text: "Michelin Rated",
icon: Award,
},
{
text: "Farm-to-Table",
icon: Leaf,
},
{
text: "Worldwide Catering",
icon: Globe,
},
]}
imageSrc="http://img.b2bpic.net/free-photo/female-chef-kitchen-beating-eggs-with-whisk_23-2149720744.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,50 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsFeatureCards
tag="Our Impact"
title="By The Numbers"
description="Experience that speaks for itself."
metrics={[
{
value: "1500+",
title: "Meals Served",
features: [
"Weddings",
"Private Parties",
"Galas",
],
},
{
value: "500+",
title: "Custom Menus",
features: [
"Plant-based",
"Fusion",
"Global",
],
},
{
value: "20+",
title: "Countries Served",
features: [
"Italy",
"France",
"Japan",
"USA",
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// 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 PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function PricingSection(): React.JSX.Element {
return (
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingCenteredCards
tag="Rates"
title="Investment"
description="Packages based on headcount and menu complexity."
plans={[
{
tag: "Intimate",
price: "$500",
description: "Small gatherings up to 4 guests.",
features: [
"Consultation",
"Three-course menu",
"Clean-up",
],
primaryButton: {
text: "Book",
href: "#contact",
},
},
{
tag: "Standard",
price: "$1,200",
description: "Events up to 10 guests.",
features: [
"Menu Design",
"Five-course menu",
"Staffing",
],
primaryButton: {
text: "Book",
href: "#contact",
},
},
{
tag: "Gala",
price: "$3,500+",
description: "Full-service catering events.",
features: [
"Custom Design",
"Full Service Staff",
"Premium Ingredients",
],
primaryButton: {
text: "Book",
href: "#contact",
},
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,42 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesBentoGrid
tag="Services"
title="Culinary Solutions"
description="Comprehensive private chef services tailored to your occasion."
features={[
{
title: "Private Fine Dining",
description: "Multi-course degustation experiences.",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-delicious-food-concept_23-2148510918.jpg",
},
{
title: "Corporate Events",
description: "Impress clients with culinary excellence.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-table-setting-gey-surface-with-empty-black-plates-silver-spoon-fork-knife_140725-12953.jpg",
},
{
title: "Cooking Classes",
description: "Hands-on intimate workshop sessions.",
imageSrc: "http://img.b2bpic.net/free-photo/man-filming-with-professional-camera-new-movie_23-2149066395.jpg",
},
{
title: "Bespoke Consulting",
description: "Custom menu design and kitchen logistics.",
imageSrc: "http://img.b2bpic.net/free-photo/man-looking-through-menu-restaurant_23-2150520061.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 "testimonials" section.
import React from 'react';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Reviews"
title="Clients Say"
description="Testimonials from prestigious events."
testimonials={[
{
name: "Julia Roberts",
role: "Host",
quote: "The best dining experience we have ever had at home.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/table-with-white-servant_140725-6421.jpg",
},
{
name: "Mark Spencer",
role: "CEO",
quote: "Absolutely seamless service and impeccable flavor profiles.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/content-senior-businessman-with-arms-crossed_1262-1790.jpg",
},
{
name: "Elena Rossi",
role: "Food Critic",
quote: "A masterclass in modern European techniques.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/female-model-fall-winter-collection-outfits-holding-green-apple-front-view_114579-15717.jpg",
},
{
name: "David Tan",
role: "Private Client",
quote: "Professional, clean, and truly delicious.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598413.jpg",
},
{
name: "Sarah Jenkins",
role: "Organizer",
quote: "Highly recommended for corporate events.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/woman-window-reading_23-2148415947.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}