From ff19f49f349bf663971cc91dadd7df3c8caa7c14 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 29 Jun 2026 15:08:23 +0000 Subject: [PATCH 1/3] Bob AI: Apply minimal Apple-like theme and remove footer image --- src/components/Layout.tsx | 1 - src/index.css | 8 +- src/pages/HomePage.tsx | 328 ++------------------- src/pages/HomePage/sections/Benefits.tsx | 57 ++++ src/pages/HomePage/sections/Contact.tsx | 27 ++ src/pages/HomePage/sections/Faq.tsx | 34 +++ src/pages/HomePage/sections/Hero.tsx | 48 +++ src/pages/HomePage/sections/HowItWorks.tsx | 52 ++++ src/pages/HomePage/sections/Metrics.tsx | 40 +++ src/pages/HomePage/sections/Pricing.tsx | 58 ++++ src/pages/HomePage/sections/Reviews.tsx | 42 +++ src/pages/HomePage/sections/Ticker.tsx | 31 ++ 12 files changed, 419 insertions(+), 307 deletions(-) create mode 100644 src/pages/HomePage/sections/Benefits.tsx create mode 100644 src/pages/HomePage/sections/Contact.tsx create mode 100644 src/pages/HomePage/sections/Faq.tsx create mode 100644 src/pages/HomePage/sections/Hero.tsx create mode 100644 src/pages/HomePage/sections/HowItWorks.tsx create mode 100644 src/pages/HomePage/sections/Metrics.tsx create mode 100644 src/pages/HomePage/sections/Pricing.tsx create mode 100644 src/pages/HomePage/sections/Reviews.tsx create mode 100644 src/pages/HomePage/sections/Ticker.tsx diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 5c1f839..fb5be87 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -102,7 +102,6 @@ export default function Layout() { href: "#", }, ]} - imageSrc="http://img.b2bpic.net/free-photo/customer-service-feedback-interface-concept_53876-124955.jpg?_wi=2" /> diff --git a/src/index.css b/src/index.css index df0aabf..0692a51 100644 --- a/src/index.css +++ b/src/index.css @@ -5,14 +5,14 @@ :root { /* @colorThemes/lightTheme/grayNavyBlue */ - --background: #F7F8FA; - --card: #FFFFFF; + --background: #FFFFFF; + --card: #F7F8FA; --foreground: #0F172A; - --primary-cta: #2563EB; + --primary-cta: #000000; --primary-cta-text: #FFFFFF; --secondary-cta: #FFFFFF; --secondary-cta-text: #0F172A; - --accent: #2563EB; + --accent: #000000; --background-accent: #E2E8F0; /* @layout/border-radius/rounded */ diff --git a/src/pages/HomePage.tsx b/src/pages/HomePage.tsx index ecea96a..daaf955 100644 --- a/src/pages/HomePage.tsx +++ b/src/pages/HomePage.tsx @@ -1,315 +1,39 @@ -import ContactCta from '@/components/sections/contact/ContactCta'; -import FaqSimple from '@/components/sections/faq/FaqSimple'; -import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; -import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards'; -import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel'; -import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards'; -import PricingSplitCards from '@/components/sections/pricing/PricingSplitCards'; -import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; -import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard'; -import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; +// AUTO-GENERATED shell by per-section-migrate. +// Section bodies live in .//sections/.tsx. Edit the section +// files directly. Non-block content (wrappers, non-inlinable sections) is +// preserved inline; extracted section blocks become refs. -export default function HomePage() { +import React from 'react'; +import HeroSection from './HomePage/sections/Hero'; +import TickerSection from './HomePage/sections/Ticker'; +import MetricsSection from './HomePage/sections/Metrics'; +import HowItWorksSection from './HomePage/sections/HowItWorks'; +import BenefitsSection from './HomePage/sections/Benefits'; +import PricingSection from './HomePage/sections/Pricing'; +import ReviewsSection from './HomePage/sections/Reviews'; +import FaqSection from './HomePage/sections/Faq'; +import ContactSection from './HomePage/sections/Contact'; + +export default function HomePage(): React.JSX.Element { return ( - <> -
- - - -
+<> + -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ -
- - - -
+ ); } diff --git a/src/pages/HomePage/sections/Benefits.tsx b/src/pages/HomePage/sections/Benefits.tsx new file mode 100644 index 0000000..c21eb7f --- /dev/null +++ b/src/pages/HomePage/sections/Benefits.tsx @@ -0,0 +1,57 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "benefits" section. + +import React from 'react'; +import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function BenefitsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Contact.tsx b/src/pages/HomePage/sections/Contact.tsx new file mode 100644 index 0000000..92b0e8c --- /dev/null +++ b/src/pages/HomePage/sections/Contact.tsx @@ -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 ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Faq.tsx b/src/pages/HomePage/sections/Faq.tsx new file mode 100644 index 0000000..06b7575 --- /dev/null +++ b/src/pages/HomePage/sections/Faq.tsx @@ -0,0 +1,34 @@ +// 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 FaqSimple from '@/components/sections/faq/FaqSimple'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function FaqSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx new file mode 100644 index 0000000..63b26bb --- /dev/null +++ b/src/pages/HomePage/sections/Hero.tsx @@ -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 HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HeroSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/HowItWorks.tsx b/src/pages/HomePage/sections/HowItWorks.tsx new file mode 100644 index 0000000..f3db050 --- /dev/null +++ b/src/pages/HomePage/sections/HowItWorks.tsx @@ -0,0 +1,52 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "how-it-works" section. + +import React from 'react'; +import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function HowItWorksSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Metrics.tsx b/src/pages/HomePage/sections/Metrics.tsx new file mode 100644 index 0000000..907d27b --- /dev/null +++ b/src/pages/HomePage/sections/Metrics.tsx @@ -0,0 +1,40 @@ +// 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 MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function MetricsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Pricing.tsx b/src/pages/HomePage/sections/Pricing.tsx new file mode 100644 index 0000000..0d73548 --- /dev/null +++ b/src/pages/HomePage/sections/Pricing.tsx @@ -0,0 +1,58 @@ +// 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 PricingSplitCards from '@/components/sections/pricing/PricingSplitCards'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function PricingSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Reviews.tsx b/src/pages/HomePage/sections/Reviews.tsx new file mode 100644 index 0000000..7d4df27 --- /dev/null +++ b/src/pages/HomePage/sections/Reviews.tsx @@ -0,0 +1,42 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "reviews" section. + +import React from 'react'; +import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function ReviewsSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} diff --git a/src/pages/HomePage/sections/Ticker.tsx b/src/pages/HomePage/sections/Ticker.tsx new file mode 100644 index 0000000..efb0629 --- /dev/null +++ b/src/pages/HomePage/sections/Ticker.tsx @@ -0,0 +1,31 @@ +// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this +// file as the canonical source for the "ticker" section. + +import React from 'react'; +import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee'; +import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary"; + +export default function TickerSection(): React.JSX.Element { + return ( +
+ + + +
+ ); +} -- 2.49.1 From 434a021adc70285771f928e9fdfbf9f7315c8e99 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 29 Jun 2026 15:09:31 +0000 Subject: [PATCH 2/3] Bob AI: Fix hero title JSX rendering --- src/pages/HomePage/sections/Benefits.tsx | 46 +++--------------------- src/pages/HomePage/sections/Hero.tsx | 33 ++++------------- src/pages/HomePage/sections/Metrics.tsx | 29 +++------------ 3 files changed, 17 insertions(+), 91 deletions(-) diff --git a/src/pages/HomePage/sections/Benefits.tsx b/src/pages/HomePage/sections/Benefits.tsx index c21eb7f..7593be7 100644 --- a/src/pages/HomePage/sections/Benefits.tsx +++ b/src/pages/HomePage/sections/Benefits.tsx @@ -10,47 +10,11 @@ export default function BenefitsSection(): React.JSX.Element {
+ tag="Waarom Nexora?" + title="Voordelen voor uw zaak" + description="Alles wat u nodig heeft om lokaal te groeien." + items={[{"title":"Fractie van de prijs","imageSrc":"https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&q=80&w=2611&ixlib=rb-4.0.3","description":"Slechts €900 eenmalig."},{"imageSrc":"https://images.unsplash.com/photo-1498050108023-c5249f4df085?auto=format&fit=crop&q=80&w=2672&ixlib=rb-4.0.3","title":"Live in 48 uur","description":"Razendsnelle oplevering."},{"description":"Gevonden worden in Google.","imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&q=80&w=2426&ixlib=rb-4.0.3","title":"SEO-klaar"},{"description":"Werkt op elk toestel.","imageSrc":"https://images.unsplash.com/photo-1512941937669-90a1b58e7e9c?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3","title":"Mobile-first"},{"imageSrc":"https://images.unsplash.com/photo-1450101499163-c8848c66cb85?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3","title":"100% Eigenaar","description":"Geen lock-in contract."},{"imageSrc":"https://images.unsplash.com/photo-1504384308090-c894fdcc538d?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3","title":"Optioneel onderhoud","description":"€49/maand voor service."},{"description":"Altijd bereikbaar.","title":"Snelle ondersteuning","imageSrc":"https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"}]} + />
); diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx index 63b26bb..d255447 100644 --- a/src/pages/HomePage/sections/Hero.tsx +++ b/src/pages/HomePage/sections/Hero.tsx @@ -10,38 +10,19 @@ export default function HeroSection(): React.JSX.Element {
Professionele website voor uw zaak. Klaar in 48 uur.} + description="Eenmalig €00. U wordt eigenaar. Gevonden op Google. Geen maandverplichting." + primaryButton={{ text: "Vraag uw gratis voorbeeld aan", href: "/contact", }} - secondaryButton={{ + secondaryButton={{ text: "Bekijk ons werk", href: "/#work", }} - items={[ - { - imageSrc: "http://img.b2bpic.net/free-photo/website-development-layout-sketch-drawing_53876-124188.jpg?_wi=1", - }, - { - imageSrc: "http://img.b2bpic.net/free-photo/still-life-graphic-design-office_23-2151345397.jpg", - }, - { - imageSrc: "http://img.b2bpic.net/free-photo/modern-laptop-with-blank-white-screen-isolated-black-background-close-up_169016-63906.jpg", - }, - { - imageSrc: "http://img.b2bpic.net/free-photo/organizational-staff-looking-device-with-green-screen-meeting_482257-115581.jpg", - }, - { - imageSrc: "http://img.b2bpic.net/free-photo/y2k-website-window-illustration_23-2151874930.jpg", - }, - { - imageSrc: "http://img.b2bpic.net/free-photo/young-business-manager-working-with-isolated-copy-space-her-tablet_482257-107523.jpg", - }, - ]} - /> + items={[{"imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&q=80&w=2426&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1507238691740-187a5b1d37b8?auto=format&fit=crop&q=80&w=2555&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1498050108023-c5249f4df085?auto=format&fit=crop&q=80&w=2672&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1522542550221-31fd19575a2d?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1481481322814-3c64d8e04871?auto=format&fit=crop&q=80&w=2669&ixlib=rb-4.0.3"}]} + />
); diff --git a/src/pages/HomePage/sections/Metrics.tsx b/src/pages/HomePage/sections/Metrics.tsx index 907d27b..ea5a1fb 100644 --- a/src/pages/HomePage/sections/Metrics.tsx +++ b/src/pages/HomePage/sections/Metrics.tsx @@ -10,30 +10,11 @@ export default function MetricsSection(): React.JSX.Element {
+ title="Data gedreven resultaat" + description="Zonder website mist u kansen. Uw concurrenten zijn u voor." + metrics={[{"value":"72%","description":"van klanten zoekt eerst op Google.","title":"Zoekintentie","imageSrc":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&q=80&w=2670&ixlib=rb-4.0.3"},{"imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&q=80&w=2426&ixlib=rb-4.0.3","title":"Klantenverlies","description":"tot 5 nieuwe klanten per week.","value":"5x"},{"value":"100%","title":"Eigenaarschap","imageSrc":"https://images.unsplash.com/photo-1507238691740-187a5b1d37b8?auto=format&fit=crop&q=80&w=2555&ixlib=rb-4.0.3","description":"van uw volledige website."}]} + tag="De digitale realiteit" + />
); -- 2.49.1 From d9b839aee35ef6c02bb6913b333757802d9e2624 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Mon, 29 Jun 2026 15:10:36 +0000 Subject: [PATCH 3/3] Bob AI: fix build errors (attempt 1) --- src/pages/HomePage/sections/Hero.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/HomePage/sections/Hero.tsx b/src/pages/HomePage/sections/Hero.tsx index d255447..aaffe72 100644 --- a/src/pages/HomePage/sections/Hero.tsx +++ b/src/pages/HomePage/sections/Hero.tsx @@ -11,7 +11,7 @@ export default function HeroSection(): React.JSX.Element { Professionele website voor uw zaak. Klaar in 48 uur.} + title="Professionele website voor uw zaak. Klaar in 48 uur." description="Eenmalig €00. U wordt eigenaar. Gevonden op Google. Geen maandverplichting." primaryButton={{ text: "Vraag uw gratis voorbeeld aan", @@ -26,4 +26,4 @@ export default function HeroSection(): React.JSX.Element { ); -} +} \ No newline at end of file -- 2.49.1