Merge version_2_1781534189120 into main #2
@@ -43,7 +43,7 @@ export default function Layout() {
|
||||
<SiteBackgroundSlot />
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarFloating
|
||||
logo="Bakehouse"
|
||||
logo="Cupcakery"
|
||||
ctaButton={{
|
||||
text: "Order Now",
|
||||
href: "#contact",
|
||||
@@ -55,8 +55,8 @@ export default function Layout() {
|
||||
</main>
|
||||
<SectionErrorBoundary name="footer">
|
||||
<FooterMinimal
|
||||
brand="Bakehouse"
|
||||
copyright="© 2024 Bakehouse. All rights reserved."
|
||||
brand="Cupcakery"
|
||||
copyright="© 2024 Cupcakery. All rights reserved."
|
||||
socialLinks={[
|
||||
{
|
||||
icon: Instagram,
|
||||
|
||||
@@ -1,163 +1,35 @@
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||
import PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards';
|
||||
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
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 MenuSection from './HomePage/sections/Menu';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import TrustLogosSection from './HomePage/sections/TrustLogos';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboard
|
||||
tag="Since 2015"
|
||||
title="Handcrafted cakes for every celebration"
|
||||
description="Browse our curated selection of premium cupcakes and custom cakes, trusted by hundreds of happy customers."
|
||||
primaryButton={{
|
||||
text: "Order Now", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "View Menu", href: "#menu"}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/front-view-delicious-cupcake-with-copy-space_23-2148769222.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
<TrustLogosSection />
|
||||
|
||||
<div id="menu" data-section="menu">
|
||||
<SectionErrorBoundary name="menu">
|
||||
<FeaturesImageBento
|
||||
tag="Our Menu"
|
||||
title="A delight for every occasion"
|
||||
description="From custom wedding cakes to artisan cupcakes, explore our full range of handcrafted treats."
|
||||
items={[
|
||||
{
|
||||
title: "Custom Wedding Cakes", description: "Tailored designs for your special day.", imageSrc: "http://img.b2bpic.net/free-photo/gourmet-dessert-table-with-homemade-cakes-cupcakes-generated-by-ai_188544-44693.jpg"},
|
||||
{
|
||||
title: "Signature Cupcakes", description: "Premium flavors, baked fresh daily.", imageSrc: "http://img.b2bpic.net/free-photo/recipe-bun-portion-freshness-cake-snack_1339-3253.jpg"},
|
||||
{
|
||||
title: "Artisan Pastries", description: "Handcrafted sweets in small batches.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-sweet-pancakes-with-cup-tea-light-desk_140725-91396.jpg"},
|
||||
{
|
||||
title: "Celebration Boxes", description: "Curated boxes perfect for gifting.", imageSrc: "http://img.b2bpic.net/free-photo/black-wooden-board-azerbaijani-gohal-clay-bowl-flour_114579-51707.jpg"},
|
||||
{
|
||||
title: "Specialty Cookies", description: "Chewy, flavorful, and freshly made.", imageSrc: "http://img.b2bpic.net/free-photo/delicious-cake-indoors-still-life_23-2151172727.jpg"},
|
||||
{
|
||||
title: "Signature Donuts", description: "Gourmet flavors you'll fall for.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cupcakes-assortment_23-2149021980.jpg"},
|
||||
{
|
||||
title: "Seasonal Desserts", description: "Limited time flavors to enjoy now.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-meat-with-greek-yogurt-sauce-plate_140725-11511.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MenuSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesDetailedCards
|
||||
tag="Why Us"
|
||||
title="Crafted with passion, served with love"
|
||||
description="Quality ingredients, local sourcing, and a dedication to the art of baking."
|
||||
items={[
|
||||
{
|
||||
title: "Organic Ingredients", description: "We use locally sourced, organic flour, butter, and sugar for the best quality.", tags: [
|
||||
"Quality", "Local"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-creamy-cake-inside-plate-with-fresh-raspberries-brown-background_140725-125117.jpg"},
|
||||
{
|
||||
title: "Customized to Perfection", description: "Our team works with you to design your perfect cake for any event.", tags: [
|
||||
"Personalized", "Creative"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/delicious-cupcakes-with-roses_23-2151939177.jpg"},
|
||||
{
|
||||
title: "Reliable Delivery", description: "Your orders arrive fresh, safely, and right on time, guaranteed.", tags: [
|
||||
"Fast", "Reliable"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/sweet-cake-with-powder-sugar_23-2148395147.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Testimonials"
|
||||
title="Loved by our local community"
|
||||
description="Read what our happy customers are saying about our bakeshop."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah J.", role: "Wedding Planner", quote: "The most beautiful wedding cake I've seen in years! Absolutely delicious.", imageSrc: "http://img.b2bpic.net/free-photo/holidays-celebration-dreamy-birthday-girl-making-wish-looking-up-hopeful-holding-bday-cake_1258-117410.jpg"},
|
||||
{
|
||||
name: "Mark D.", role: "CEO", quote: "Reliable and incredibly tasty. Our team loves the weekly cupcake boxes.", imageSrc: "http://img.b2bpic.net/free-photo/father-son-drinking-coffee-together_23-2148351721.jpg"},
|
||||
{
|
||||
name: "Elena R.", role: "Artist", quote: "The artistry is unmatched. My birthday cake was exactly what I imagined.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-girls-buys-buns-bakery_1157-24671.jpg"},
|
||||
{
|
||||
name: "James T.", role: "Accountant", quote: "Consistent quality every single time. Definitely my go-to for events.", imageSrc: "http://img.b2bpic.net/free-photo/happy-amusing-young-woman-smiling-eating-cakes_171337-14496.jpg"},
|
||||
{
|
||||
name: "Lucy H.", role: "Teacher", quote: "Kids loved the custom cupcake design. Will order again next year!", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-with-dalgona-cookie_23-2149234603.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingCenteredCards
|
||||
tag="Pricing"
|
||||
title="Transparent pricing for custom treats"
|
||||
description="Simple packages to help you get started."
|
||||
plans={[
|
||||
{
|
||||
tag: "Essentials", price: "$45", description: "Perfect for small family birthdays.", features: [
|
||||
"12 Cupcakes", "3 Cake Flavors", "Basic Design"],
|
||||
primaryButton: {
|
||||
text: "Book Now", href: "#contact"},
|
||||
},
|
||||
{
|
||||
tag: "Celebration", price: "$85", description: "Best for moderate parties and events.", features: [
|
||||
"24 Cupcakes", "6 Cake Flavors", "Detailed Design"],
|
||||
primaryButton: {
|
||||
text: "Book Now", href: "#contact"},
|
||||
},
|
||||
{
|
||||
tag: "Grand Event", price: "$150+", description: "Tailored packages for big occasions.", features: [
|
||||
"Custom Cake", "50+ Cupcakes", "Personalized Decor"],
|
||||
primaryButton: {
|
||||
text: "Book Now", href: "#contact"},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="FAQ"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about placing your order."
|
||||
items={[
|
||||
{
|
||||
question: "How far in advance should I order?", answer: "We recommend ordering at least 48 hours for small orders, and 2 weeks for custom event cakes."},
|
||||
{
|
||||
question: "Do you deliver?", answer: "Yes, we offer local delivery service within 15 miles of our bakeshop."},
|
||||
{
|
||||
question: "Are ingredients gluten-free?", answer: "We offer a specific selection of gluten-friendly products, but our facility is not 100% GF."},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/chef-cooking-kitchen-while-wearing-professional-attire_23-2151208278.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Order Now"
|
||||
text="Ready to bring sweetness to your next event? Let's get started today."
|
||||
primaryButton={{
|
||||
text: "Contact Us", href: "mailto:hello@bakehouse.com"}}
|
||||
secondaryButton={{
|
||||
text: "Call Us", href: "tel:555-0123"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
23
src/pages/HomePage/sections/Contact.tsx
Normal file
23
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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="Order Now"
|
||||
text="Ready to bring sweetness to your next event? Let's get started today."
|
||||
primaryButton={{
|
||||
text: "Contact Us", href: "mailto:hello@bakehouse.com"}}
|
||||
secondaryButton={{
|
||||
text: "Call Us", href: "tel:555-0123"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Faq.tsx
Normal file
29
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="FAQ"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about placing your order."
|
||||
items={[
|
||||
{
|
||||
question: "How far in advance should I order?", answer: "We recommend ordering at least 48 hours for small orders, and 2 weeks for custom event cakes."},
|
||||
{
|
||||
question: "Do you deliver?", answer: "Yes, we offer local delivery service within 15 miles of our bakeshop."},
|
||||
{
|
||||
question: "Are ingredients gluten-free?", answer: "We offer a specific selection of gluten-friendly products, but our facility is not 100% GF."},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/chef-cooking-kitchen-while-wearing-professional-attire_23-2151208278.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Features.tsx
Normal file
34
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// 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 FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesDetailedCards
|
||||
tag="Why Us"
|
||||
title="Crafted with passion, served with love"
|
||||
description="Quality ingredients, local sourcing, and a dedication to the art of baking."
|
||||
items={[
|
||||
{
|
||||
title: "Organic Ingredients", description: "We use locally sourced, organic flour, butter, and sugar for the best quality.", tags: [
|
||||
"Quality", "Local"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-creamy-cake-inside-plate-with-fresh-raspberries-brown-background_140725-125117.jpg"},
|
||||
{
|
||||
title: "Customized to Perfection", description: "Our team works with you to design your perfect cake for any event.", tags: [
|
||||
"Personalized", "Creative"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/delicious-cupcakes-with-roses_23-2151939177.jpg"},
|
||||
{
|
||||
title: "Reliable Delivery", description: "Your orders arrive fresh, safely, and right on time, guaranteed.", tags: [
|
||||
"Fast", "Reliable"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/sweet-cake-with-powder-sugar_23-2148395147.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
25
src/pages/HomePage/sections/Hero.tsx
Normal file
25
src/pages/HomePage/sections/Hero.tsx
Normal 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 HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboard
|
||||
tag="Since 2015"
|
||||
title="Handcrafted cakes for every celebration"
|
||||
description="Browse our curated selection of premium cupcakes and custom cakes, trusted by hundreds of happy customers."
|
||||
primaryButton={{
|
||||
text: "Order Now", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "View Menu", href: "#menu"}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/front-view-delicious-cupcake-with-copy-space_23-2148769222.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Menu.tsx
Normal file
36
src/pages/HomePage/sections/Menu.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
// 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="Our Menu"
|
||||
title="A delight for every occasion"
|
||||
description="From custom wedding cakes to artisan cupcakes, explore our full range of handcrafted treats."
|
||||
items={[
|
||||
{
|
||||
title: "Custom Wedding Cakes", description: "Tailored designs for your special day.", imageSrc: "http://img.b2bpic.net/free-photo/gourmet-dessert-table-with-homemade-cakes-cupcakes-generated-by-ai_188544-44693.jpg"},
|
||||
{
|
||||
title: "Signature Cupcakes", description: "Premium flavors, baked fresh daily.", imageSrc: "http://img.b2bpic.net/free-photo/recipe-bun-portion-freshness-cake-snack_1339-3253.jpg"},
|
||||
{
|
||||
title: "Artisan Pastries", description: "Handcrafted sweets in small batches.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-yummy-sweet-pancakes-with-cup-tea-light-desk_140725-91396.jpg"},
|
||||
{
|
||||
title: "Celebration Boxes", description: "Curated boxes perfect for gifting.", imageSrc: "http://img.b2bpic.net/free-photo/black-wooden-board-azerbaijani-gohal-clay-bowl-flour_114579-51707.jpg"},
|
||||
{
|
||||
title: "Specialty Cookies", description: "Chewy, flavorful, and freshly made.", imageSrc: "http://img.b2bpic.net/free-photo/delicious-cake-indoors-still-life_23-2151172727.jpg"},
|
||||
{
|
||||
title: "Signature Donuts", description: "Gourmet flavors you'll fall for.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-delicious-cupcakes-assortment_23-2149021980.jpg"},
|
||||
{
|
||||
title: "Seasonal Desserts", description: "Limited time flavors to enjoy now.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-meat-with-greek-yogurt-sauce-plate_140725-11511.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Pricing.tsx
Normal file
21
src/pages/HomePage/sections/Pricing.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 "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="Pricing"
|
||||
title="Transparent pricing for custom treats"
|
||||
description="Simple packages to help you get started."
|
||||
plans={[{"primaryButton":{"href":"#contact","text":"Book Now"},"description":"Perfect for small family birthdays.","price":"₹450","features":["12 Cupcakes","3 Cake Flavors","Basic Design"],"tag":"Essentials"},{"tag":"Celebration","features":["24 Cupcakes","6 Cake Flavors","Detailed Design"],"price":"₹800","description":"Best for moderate parties and events.","primaryButton":{"href":"#contact","text":"Book Now"}},{"price":"₹800+","features":["Custom Cake","50+ Cupcakes","Personalized Decor"],"description":"Tailored packages for big occasions.","primaryButton":{"text":"Book Now","href":"#contact"},"tag":"Grand Event"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Testimonials.tsx
Normal file
21
src/pages/HomePage/sections/Testimonials.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 "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="Testimonials"
|
||||
title="Loved by our local community"
|
||||
description="Read what our happy customers are saying about our bakeshop."
|
||||
testimonials={[{"imageSrc":"http://img.b2bpic.net/free-photo/holidays-celebration-dreamy-birthday-girl-making-wish-looking-up-hopeful-holding-bday-cake_1258-117410.jpg","quote":"The most beautiful wedding cake I've seen in years! Absolutely delicious.","name":"Priya S.","role":"Wedding Planner"},{"quote":"Reliable and incredibly tasty. Our team loves the weekly cupcake boxes.","imageSrc":"http://img.b2bpic.net/free-photo/father-son-drinking-coffee-together_23-2148351721.jpg","role":"CEO","name":"Rahul D."},{"name":"Anjali R.","role":"Artist","imageSrc":"http://img.b2bpic.net/free-photo/beautiful-girls-buys-buns-bakery_1157-24671.jpg","quote":"The artistry is unmatched. My birthday cake was exactly what I imagined."},{"quote":"Consistent quality every single time. Definitely my go-to for events.","imageSrc":"http://img.b2bpic.net/free-photo/happy-amusing-young-woman-smiling-eating-cakes_171337-14496.jpg","role":"Accountant","name":"Vikram T."},{"role":"Teacher","name":"Neha H.","quote":"Kids loved the custom cupcake design. Will order again next year!","imageSrc":"http://img.b2bpic.net/free-photo/young-woman-with-dalgona-cookie_23-2149234603.jpg"}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
39
src/pages/HomePage/sections/TrustLogos.tsx
Normal file
39
src/pages/HomePage/sections/TrustLogos.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
import { motion } from "motion/react"
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal"
|
||||
import TextAnimation from "@/components/ui/TextAnimation"
|
||||
|
||||
export default function TrustLogosSection() {
|
||||
const logos = [
|
||||
"FSSAI Certified",
|
||||
"Times Food Award",
|
||||
"Zomato Top Rated",
|
||||
"Swiggy Super",
|
||||
"Local Choice"
|
||||
];
|
||||
|
||||
return (
|
||||
<section id="trust-logos" data-webild-section="trust-logos" className="py-12 bg-card border-y border-border/50">
|
||||
<div className="w-content-width mx-auto px-4 md:px-6">
|
||||
<ScrollReveal variant="fade">
|
||||
<div className="flex flex-col items-center justify-center space-y-6">
|
||||
<TextAnimation
|
||||
text="Recognized for Quality & Safety"
|
||||
variant="fade"
|
||||
className="text-sm font-medium text-muted-foreground uppercase tracking-wider"
|
||||
gradientText={false}
|
||||
/>
|
||||
<div className="flex flex-wrap justify-center items-center gap-8 md:gap-16 opacity-70">
|
||||
{logos.map((logo, index) => (
|
||||
<div key={index} className="flex items-center justify-center">
|
||||
<span className="text-lg md:text-xl font-bold text-foreground whitespace-nowrap">
|
||||
{logo}
|
||||
</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user