50 Commits

Author SHA1 Message Date
0e15ac6743 Switch to version 7: modified src/pages/HomePage/sections/Hero.tsx 2026-06-07 21:00:39 +00:00
6d9e9dd1de Switch to version 6: modified src/pages/HomePage/sections/Hero.tsx 2026-06-07 21:00:02 +00:00
5ad5b70abd Switch to version 7: modified src/pages/HomePage/sections/Products.tsx 2026-06-07 20:59:56 +00:00
bbd1d940f5 Switch to version 7: modified src/pages/HomePage/sections/Hero.tsx 2026-06-07 20:59:56 +00:00
c4d6150f97 Switch to version 2: added src/pages/HomePage/sections/Testimonials.tsx 2026-06-07 20:59:46 +00:00
8669205162 Switch to version 2: added src/pages/HomePage/sections/Products.tsx 2026-06-07 20:59:46 +00:00
4b80d12b1a Switch to version 2: added src/pages/HomePage/sections/Metrics.tsx 2026-06-07 20:59:45 +00:00
6f12638b6c Switch to version 2: added src/pages/HomePage/sections/Hero.tsx 2026-06-07 20:59:45 +00:00
53fb5395ee Switch to version 2: added src/pages/HomePage/sections/Features.tsx 2026-06-07 20:59:44 +00:00
b835d782b5 Switch to version 2: added src/pages/HomePage/sections/Faq.tsx 2026-06-07 20:59:44 +00:00
2261f26964 Switch to version 2: added src/pages/HomePage/sections/Contact.tsx 2026-06-07 20:59:43 +00:00
23ffe58c4c Switch to version 2: added src/pages/HomePage/sections/About.tsx 2026-06-07 20:59:43 +00:00
7e04d96a45 Switch to version 2: modified src/pages/HomePage.tsx 2026-06-07 20:59:43 +00:00
e573943c1e Switch to version 1: remove src/pages/HomePage/sections/Testimonials.tsx 2026-06-07 20:59:01 +00:00
159b470218 Switch to version 1: remove src/pages/HomePage/sections/Products.tsx 2026-06-07 20:59:00 +00:00
8ff368d3d3 Switch to version 1: remove src/pages/HomePage/sections/Metrics.tsx 2026-06-07 20:59:00 +00:00
e7acd3741f Switch to version 1: remove src/pages/HomePage/sections/Hero.tsx 2026-06-07 20:58:59 +00:00
4853a321d0 Switch to version 1: remove src/pages/HomePage/sections/Features.tsx 2026-06-07 20:58:59 +00:00
7326f957e8 Switch to version 1: remove src/pages/HomePage/sections/Faq.tsx 2026-06-07 20:58:58 +00:00
4aff06cf99 Switch to version 1: remove src/pages/HomePage/sections/Contact.tsx 2026-06-07 20:58:58 +00:00
230bf054b7 Switch to version 1: remove src/pages/HomePage/sections/About.tsx 2026-06-07 20:58:58 +00:00
3610bf240e Switch to version 1: modified src/pages/HomePage.tsx 2026-06-07 20:58:57 +00:00
c4ca5dab37 Merge version_7_1780865727775 into main
Merge version_7_1780865727775 into main
2026-06-07 20:58:10 +00:00
kudinDmitriyUp
4de0487e6c Bob AI: Added 3D buttons and logo carousel to existing hero section 2026-06-07 20:57:42 +00:00
b6adf8ab20 Switch to version 4: modified src/pages/HomePage/sections/Hero.tsx 2026-06-07 20:54:41 +00:00
ac1e2fd51c Switch to version 6: added src/pages/HomePage/sections/Testimonials.tsx 2026-06-07 20:52:58 +00:00
2c5f386918 Switch to version 6: added src/pages/HomePage/sections/Products.tsx 2026-06-07 20:52:57 +00:00
87c07e5050 Switch to version 6: added src/pages/HomePage/sections/Metrics.tsx 2026-06-07 20:52:57 +00:00
b5332b9636 Switch to version 6: added src/pages/HomePage/sections/Hero.tsx 2026-06-07 20:52:56 +00:00
a0d6e7e4c7 Switch to version 6: added src/pages/HomePage/sections/Features.tsx 2026-06-07 20:52:56 +00:00
d0f76043dc Switch to version 6: added src/pages/HomePage/sections/Faq.tsx 2026-06-07 20:52:56 +00:00
fba5e53632 Switch to version 6: added src/pages/HomePage/sections/Contact.tsx 2026-06-07 20:52:55 +00:00
5aa88dabc7 Switch to version 6: added src/pages/HomePage/sections/About.tsx 2026-06-07 20:52:55 +00:00
b756664b32 Switch to version 6: modified src/pages/HomePage.tsx 2026-06-07 20:52:54 +00:00
3f55b4a35e Switch to version 1: remove src/pages/HomePage/sections/Testimonials.tsx 2026-06-07 20:52:49 +00:00
47c3e1b0f0 Switch to version 1: remove src/pages/HomePage/sections/Products.tsx 2026-06-07 20:52:49 +00:00
b6f9a2ddaf Switch to version 1: remove src/pages/HomePage/sections/Metrics.tsx 2026-06-07 20:52:48 +00:00
ae1363e964 Switch to version 1: remove src/pages/HomePage/sections/Hero.tsx 2026-06-07 20:52:48 +00:00
6e407a553c Switch to version 1: remove src/pages/HomePage/sections/Features.tsx 2026-06-07 20:52:48 +00:00
4d1236ab14 Switch to version 1: remove src/pages/HomePage/sections/Faq.tsx 2026-06-07 20:52:47 +00:00
92eef808f6 Switch to version 1: remove src/pages/HomePage/sections/Contact.tsx 2026-06-07 20:52:47 +00:00
5dff9f9582 Switch to version 1: remove src/pages/HomePage/sections/About.tsx 2026-06-07 20:52:46 +00:00
9fc21d6dbd Switch to version 1: modified src/pages/HomePage.tsx 2026-06-07 20:52:46 +00:00
1d0b0edca0 Switch to version 4: modified src/pages/HomePage/sections/Products.tsx 2026-06-07 20:52:38 +00:00
c0811a63b8 Switch to version 5: modified src/pages/HomePage/sections/Products.tsx 2026-06-07 20:52:30 +00:00
06ff7b8c2e Switch to version 5: modified src/pages/HomePage/sections/Hero.tsx 2026-06-07 20:52:29 +00:00
dfbef698d0 Merge version_6_1780865363086 into main
Merge version_6_1780865363086 into main
2026-06-07 20:52:05 +00:00
kudinDmitriyUp
5ede6d8f1a Bob AI: Added 3D flip buttons and a logo carousel to the hero sectio 2026-06-07 20:50:44 +00:00
6cb6d24ca0 Switch to version 4: modified src/pages/HomePage/sections/Products.tsx 2026-06-07 20:49:01 +00:00
315809ed14 Merge version_5_1780865172191 into main
Merge version_5_1780865172191 into main
2026-06-07 20:47:44 +00:00
2 changed files with 115 additions and 115 deletions

View File

@@ -1,28 +1,83 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import Button from "@/components/ui/Button";
import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot";
import TextAnimation from "@/components/ui/TextAnimation";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import AutoFillText from "@/components/ui/AutoFillText";
import ScrollReveal from "@/components/ui/ScrollReveal";
import LoopCarousel from "@/components/ui/LoopCarousel";
import React from 'react';
import HeroBillboardBrand from '@/components/sections/hero/HeroBillboardBrand';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
type HeroBillboardBrandProps = {
brand: string;
description: string;
primaryButton: { text: string; href: string };
secondaryButton: { text: string; href: string };
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
export default function HeroSection(): React.JSX.Element {
const HeroInline = () => {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardBrand
brand="Taste the Freshness: Your Daily Slice of Joy Awaits"
description="Freshly Baked Goodness, Made Daily. Artisan breads, pastries, and custom cakes crafted with premium ingredients. Order online or visit us today."
primaryButton={{
text: "Order Now",
href: "#contact",
}}
secondaryButton={{
text: "Our Menu",
href: "#products",
}}
imageSrc="http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273148.jpg"
/>
</SectionErrorBoundary>
<section aria-label="Hero section" className="relative pt-25 pb-20 md:pt-30">
<HeroBackgroundSlot />
<div className="flex flex-col gap-10 md:gap-12 w-content-width mx-auto">
<div className="flex flex-col items-end gap-5">
<AutoFillText className="w-full font-semibold" paddingY="">{"Taste the Freshness: Your Daily Slice of Joy Awaits"}</AutoFillText>
<TextAnimation
text={"Freshly Baked Goodness, Made Daily. Artisan breads, pastries, and custom cakes crafted with premium ingredients. Order online or visit us today."}
variant="fade-blur"
gradientText={false}
tag="p"
className="w-full md:w-1/2 text-lg md:text-2xl leading-snug text-balance text-right"
/>
<div className="flex flex-wrap justify-end gap-3 mt-1 md:mt-2">
<a
href="#contact"
className="relative inline-flex items-center justify-center px-8 py-4 font-bold text-primary-cta-text bg-primary-cta rounded-xl shadow-[0_8px_0_0_rgba(0,0,0,0.8)] hover:translate-y-1 hover:shadow-[0_4px_0_0_rgba(0,0,0,0.8)] active:translate-y-2 active:shadow-none transition-all"
>
Order Now
</a>
<a
href="#products"
className="relative inline-flex items-center justify-center px-8 py-4 font-bold text-secondary-cta-text bg-secondary-cta rounded-xl shadow-[0_8px_0_0_rgba(0,0,0,0.2)] hover:translate-y-1 hover:shadow-[0_4px_0_0_rgba(0,0,0,0.2)] active:translate-y-2 active:shadow-none transition-all border border-border"
>
Our Menu
</a>
</div>
</div>
<ScrollReveal variant="fade" delay={0.2} className="w-full p-2 xl:p-3 2xl:p-4 card rounded overflow-hidden">
<ImageOrVideo imageSrc={"http://img.b2bpic.net/free-photo/medium-shot-woman-working-bakery_23-2150273148.jpg"} className="aspect-4/5 md:aspect-video" />
</ScrollReveal>
<div className="w-full max-w-4xl mx-auto mt-12">
<p className="text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-8 text-center">
Trusted by companies we work with
</p>
<div className="w-full overflow-hidden">
<LoopCarousel>
{[
"https://upload.wikimedia.org/wikipedia/commons/a/a9/Amazon_logo.svg",
"https://upload.wikimedia.org/wikipedia/commons/2/2f/Google_2015_logo.svg",
"https://upload.wikimedia.org/wikipedia/commons/5/51/IBM_logo.svg",
"https://upload.wikimedia.org/wikipedia/commons/4/44/Microsoft_logo.svg",
"https://upload.wikimedia.org/wikipedia/commons/f/fa/Apple_logo_black.svg"
].map((logo, i) => (
<div key={i} className="flex items-center justify-center w-40 mx-8">
<img src={logo} alt="Company Logo" className="h-8 md:h-12 w-auto object-contain opacity-50 grayscale hover:opacity-100 hover:grayscale-0 transition-all" />
</div>
))}
</LoopCarousel>
</div>
</div>
</div>
</section>
);
};
export default function HeroSection() {
return (
<div data-webild-section="hero" id="hero">
<HeroInline />
</div>
);
}

View File

@@ -63,108 +63,53 @@ const ProductsInline = () => {
tag="p"
className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance"
/>
{(undefined || undefined) && (
<div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3">
{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="w-content-width mx-auto grid grid-cols-1 md:grid-cols-6 gap-3">
{[
{
description: "Buttery, golden, and perfect with your morning coffee.",
href: "#",
buttonText: "Buy Now",
title: "Flaky Croissants ⭐⭐⭐⭐⭐",
imageSrc: "http://img.b2bpic.net/free-photo/freshly-baked-croissant-white-plate-with-black-coffee_181624-60129.jpg"
},
{
description: "Slow-fermented for a rich flavor and perfect crust.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/loaf-bread-tied-with-rope-wooden-board_114579-72178.jpg",
buttonText: "Buy Now",
title: "Artisan Sourdough ⭐⭐⭐⭐⭐"
},
{
description: "Beautifully decorated and bursting with flavor.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/delicious-rainbow-cupcake-still-life_23-2150423807.jpg",
buttonText: "Buy Now",
title: "Gourmet Cupcakes ⭐⭐⭐⭐⭐"
},
{
description: "Classic recipes with a homemade taste you'll love.",
href: "#",
buttonText: "Buy Now",
title: "Signature Cookies ⭐⭐⭐⭐⭐",
imageSrc: "http://img.b2bpic.net/free-photo/bunch-cookies-bundled-together-marble-background_114579-25950.jpg"
},
{
buttonText: "Buy Now",
title: "Seasonal Fruit Pies ⭐⭐⭐⭐⭐",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-fruit-pie-arrangement_23-2148531646.jpg",
href: "#",
description: "Made with the freshest fruit and a flaky, buttery crust."
},
{
buttonText: "Buy Now",
title: "Decadent Brownies ⭐⭐⭐⭐⭐",
imageSrc: "http://img.b2bpic.net/free-photo/chocolate-brownie-cake-piece-with-walnuts-wooden-table_114579-33519.jpg",
href: "#",
description: "Fudgy, rich, and packed with premium chocolate chunks."
},
{
buttonText: "Buy Now",
title: "Red Velvet Cake ⭐⭐⭐⭐⭐",
imageSrc: "http://img.b2bpic.net/free-photo/slice-red-velvet-cake-with-cream-cheese-frosting_114579-33520.jpg",
href: "#",
description: "Moist layers of vibrant red cake with decadent cream cheese frosting."
}
].map((item, index) => {
const gridClasses = [
"md:col-span-2",
"md:col-span-4",
"md:col-span-3",
"md:col-span-3",
"md:col-span-2",
"md:col-span-2",
"md:col-span-2",
];
const staggerDelays = [0, 0.1, 0, 0.1, 0, 0.1, 0.2];
return (
<ScrollReveal
key={index}
variant="slide-up"
delay={staggerDelays[index]}
className={cls(
"relative group overflow-hidden rounded-xl card flex flex-col min-h-[300px] md:min-h-[400px]",
gridClasses[index]
)}
>
<div className="absolute inset-0 w-full h-full">
{[{"description":"Buttery, golden, and perfect with your morning coffee.","href":"#","buttonText":"Buy Now","title":"Flaky Croissants ⭐⭐⭐⭐⭐","imageSrc":"http://img.b2bpic.net/free-photo/freshly-baked-croissant-white-plate-with-black-coffee_181624-60129.jpg"},{"description":"Slow-fermented for a rich flavor and perfect crust.","href":"#","imageSrc":"http://img.b2bpic.net/free-photo/loaf-bread-tied-with-rope-wooden-board_114579-72178.jpg","buttonText":"Buy Now","title":"Artisan Sourdough ⭐⭐⭐⭐⭐"},{"description":"Beautifully decorated and bursting with flavor.","href":"#","imageSrc":"http://img.b2bpic.net/free-photo/delicious-rainbow-cupcake-still-life_23-2150423807.jpg","buttonText":"Buy Now","title":"Gourmet Cupcakes ⭐⭐⭐⭐⭐"},{"description":"Classic recipes with a homemade taste you'll love.","href":"#","buttonText":"Buy Now","title":"Signature Cookies ⭐⭐⭐⭐⭐","imageSrc":"http://img.b2bpic.net/free-photo/bunch-cookies-bundled-together-marble-background_114579-25950.jpg"},{"buttonText":"Buy Now","title":"Seasonal Fruit Pies ⭐⭐⭐⭐⭐","imageSrc":"http://img.b2bpic.net/free-photo/top-view-fruit-pie-arrangement_23-2148531646.jpg","href":"#","description":"Made with the freshest fruits of the season."},{"imageSrc":"http://img.b2bpic.net/free-photo/from-cake-table_23-2147783757.jpg","title":"Custom Celebration Cakes ⭐⭐⭐⭐⭐","buttonText":"Buy Now","description":"Designed to make your special moments unforgettable.","href":"#"},{"title":"Sweet Cinnamon Rolls ⭐⭐⭐⭐⭐","buttonText":"Buy Now","imageSrc":"http://img.b2bpic.net/free-photo/cinnamon-rolls-buns-wooden-table-kanelbulle-swedish-dessert_123827-22535.jpg","description":"Warm, gooey, and topped with decadent cream cheese frosting.","href":"#"}].map((item, index) => (
<ScrollReveal key={item.title} variant="slide-up" delay={staggerDelays[index]} className={cls("col-span-1 group", gridClasses[index])}>
<a href={item.href} className="block relative overflow-hidden rounded">
<div className="h-80 xl:h-100 2xl:h-120 overflow-hidden">
<ImageOrVideo
imageSrc={item.imageSrc}
className="w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"
/>
<div className="absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent" />
</div>
<div className="relative z-10 flex flex-col justify-end h-full p-6 md:p-8">
<h3 className="text-2xl md:text-3xl font-semibold text-white mb-2">
{item.title}
</h3>
<p className="text-white/80 text-base md:text-lg mb-4 max-w-md">
{item.description}
</p>
<Button
text={item.buttonText}
href={item.href}
variant="primary"
className="w-fit"
videoSrc={item.videoSrc}
className="rounded group-hover:scale-105 transition-transform duration-500"
/>
</div>
</ScrollReveal>
);
})}
<div className="absolute -inset-x-px -bottom-px h-2/5 backdrop-blur-xl mask-fade-top-overlay" aria-hidden="true" />
<div className="absolute inset-x-3 bottom-3 2xl:inset-x-4 2xl:bottom-4 z-10">
<div className="relative flex flex-col gap-1 md:gap-0 md:group-hover:gap-1 p-3 2xl:p-4 transition-all duration-400">
<div className="absolute inset-0 -z-10 card rounded translate-y-0 opacity-100 md:translate-y-full md:opacity-0 transition-all duration-400 ease-out md:group-hover:translate-y-0 md:group-hover:opacity-100" />
<h3 className="text-2xl font-semibold leading-snug text-foreground md:text-white transition-colors duration-400 md:group-hover:text-foreground">
{item.title}
</h3>
<div className="grid grid-rows-[1fr] md:grid-rows-[0fr] transition-all duration-400 ease-out md:group-hover:grid-rows-[1fr]">
<p className="overflow-hidden text-base leading-snug text-foreground opacity-100 md:opacity-0 transition-opacity duration-400 md:group-hover:opacity-100">
{item.description}
</p>
</div>
</div>
</div>
</a>
</ScrollReveal>
))}
</div>
</div>
</section>
);
};
export default function ProductsSection() {
return (
<div data-webild-section="products" id="products">
<ProductsInline />
</div>
);
}