13 Commits

Author SHA1 Message Date
6f83f105ce Merge version_12_1783097984147 into main
Merge version_12_1783097984147 into main
2026-07-03 17:02:30 +00:00
kudinDmitriyUp
ec07521e6f Bob AI: fix build errors (attempt 1) 2026-07-03 17:01:46 +00:00
kudinDmitriyUp
dd2fb07049 Bob AI: Added a structured pricing comparison table section. 2026-07-03 17:00:59 +00:00
2c34a642b7 Merge version_11_1783097853295 into main
Merge version_11_1783097853295 into main
2026-07-03 16:59:20 +00:00
40cc266c9c Merge version_10_1783097659433 into main
Merge version_10_1783097659433 into main
2026-07-03 16:57:01 +00:00
40cd0dd55b Merge version_9_1783097441907 into main
Merge version_9_1783097441907 into main
2026-07-03 16:52:22 +00:00
ca77bbff42 Merge version_8_1783089540816 into main
Merge version_8_1783089540816 into main
2026-07-03 14:41:05 +00:00
f18a94ea3f Merge version_7_1783089120744 into main
Merge version_7_1783089120744 into main
2026-07-03 14:33:54 +00:00
bf880a6f34 Merge version_6_1783088950296 into main
Merge version_6_1783088950296 into main
2026-07-03 14:31:11 +00:00
89ffb05621 Merge version_5_1783088809140 into main
Merge version_5_1783088809140 into main
2026-07-03 14:28:51 +00:00
f65a66bb7a Merge version_4_1783088538597 into main
Merge version_4_1783088538597 into main
2026-07-03 14:23:59 +00:00
7282580819 Merge version_3_1783087895510 into main
Merge version_3_1783087895510 into main
2026-07-03 14:13:32 +00:00
c6d88dd4b7 Merge version_2_1783085755118 into main
Merge version_2_1783085755118 into main
2026-07-03 13:36:09 +00:00
2 changed files with 123 additions and 1 deletions

View File

@@ -21,7 +21,8 @@ import ClientLogosSection from './HomePage/sections/ClientLogos';
import FloatingCtaSection from './HomePage/sections/FloatingCta';
import GuaranteeSection from './HomePage/sections/Guarantee';
import BackgroundMusicSection from './HomePage/sections/BackgroundMusic';
import NewsletterSection from './HomePage/sections/Newsletter';export default function HomePage(): React.JSX.Element {
import NewsletterSection from './HomePage/sections/Newsletter';
import PricingSection from './HomePage/sections/Pricing';export default function HomePage(): React.JSX.Element {
return (
<>
<HeroSection />
@@ -39,6 +40,7 @@ import NewsletterSection from './HomePage/sections/Newsletter';export default fu
<ClientLogosSection />
<SocialProofSection />
<PricingSection />
<FaqSection />
<GuaranteeSection />

View File

@@ -0,0 +1,120 @@
import { Check } from "lucide-react";
import Button from "@/components/ui/Button";
import Card from "@/components/ui/Card";
import Tag from "@/components/ui/Tag";
import TextAnimation from "@/components/ui/TextAnimation";
import ScrollReveal from "@/components/ui/ScrollReveal";
export default function PricingSection() {
const plans = [
{
name: "Single Loaf",
price: "$12",
period: "/loaf",
description: "Perfect for trying our signature 48-hour sourdough.",
features: [
"1 Classic Sourdough Loaf",
"Freshly baked same-day",
"In-store pickup",
],
buttonText: "Order Now",
highlighted: false,
},
{
name: "Weekly Subscription",
price: "$40",
period: "/month",
description: "Never run out of fresh, artisan bread for your family.",
features: [
"1 Loaf per week (4 total)",
"Priority baking schedule",
"Free local delivery",
"Early access to seasonal flavors",
],
buttonText: "Subscribe",
highlighted: true,
highlightText: "Most Popular",
},
{
name: "Wholesale",
price: "Custom",
period: "",
description: "For cafes and restaurants serving quality to their guests.",
features: [
"Bulk pricing available",
"Custom loaf sizes & shapes",
"Daily morning delivery",
"Dedicated account manager",
],
buttonText: "Request Quote",
highlighted: false,
},
];
return (
<section id="pricing" data-webild-section="pricing" className="relative w-full bg-background">
<div className="w-content-width mx-auto">
<div className="flex flex-col items-center text-center">
<ScrollReveal variant="fade">
<Tag text="Pricing & Tiers" className="mb-4" />
</ScrollReveal>
<TextAnimation
text="Choose Your Bread Journey"
variant="fade-blur"
tag="h2"
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
gradientText={false}
/>
<ScrollReveal variant="fade" delay={0.1}>
<p className="text-lg text-accent max-w-content-width mx-auto">
Simple, transparent pricing for individuals, families, and local businesses. Evaluate the best fit for your needs.
</p>
</ScrollReveal>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-8 items-center">
{plans.map((plan, index) => (
<ScrollReveal variant="fade" key={index} delay={index * 0.1} className="h-full">
<Card className={`relative h-full flex flex-col p-8 ${plan.highlighted ?'border-2 border-[var(--primary-cta)] shadow-xl md:scale-105 z-10' : ''}`}>
{plan.highlighted && (
<div className="absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2">
<span className="bg-foreground text-background text-xs font-bold px-4 py-1.5 rounded-full uppercase tracking-wider whitespace-nowrap">
{plan.highlightText}
</span>
</div>
)}
<div className="mb-8">
<h3 className="text-xl font-semibold text-foreground mb-2">{plan.name}</h3>
<div className="flex items-baseline gap-1 mb-4">
<span className="text-4xl font-bold text-foreground">{plan.price}</span>
{plan.period && <span className="text-accent">{plan.period}</span>}
</div>
<p className="text-accent text-sm">{plan.description}</p>
</div>
<div className="flex-grow mb-8">
<ul className="space-y-4">
{plan.features.map((feature, fIndex) => (
<li key={fIndex} className="flex items-start gap-3">
<Check className="w-5 h-5 text-foreground shrink-0" />
<span className="text-foreground text-sm">{feature}</span>
</li>
))}
</ul>
</div>
<Button
text={plan.buttonText}
variant={plan.highlighted ? 'primary' : 'secondary'}
className="w-full justify-center"
href="#contact"
/>
</Card>
</ScrollReveal>
))}
</div>
</div>
</section>
);
}