Merge version_2_1781730354396 into main #2

Merged
bender merged 1 commits from version_2_1781730354396 into main 2026-06-17 21:07:39 +00:00
10 changed files with 329 additions and 228 deletions

View File

@@ -5,15 +5,15 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #f5faff;
--background: #fcfaf8;
--card: #ffffff;
--foreground: #001122;
--primary-cta: #15479c;
--primary-cta-text: #f5faff;
--secondary-cta: #ffffff;
--secondary-cta-text: #15479c;
--accent: #ff9f1c;
--background-accent: #e6eaf0;
--foreground: #2c241b;
--primary-cta: #d97706;
--primary-cta-text: #ffffff;
--secondary-cta: #f3f4f6;
--secondary-cta-text: #2c241b;
--accent: #f59e0b;
--background-accent: #f3e8d9;
/* @layout/border-radius/rounded */
--radius: 1rem;

View File

@@ -1,232 +1,36 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroBrand from '@/components/sections/hero/HeroBrand';
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
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 FeaturesSection from './HomePage/sections/Features';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import SocialProofSection from './HomePage/sections/SocialProof';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBrand
brand="Meisterleistungen, denen Sie vertrauen können."
description="Ihr regionaler Fachbetrieb in Kirchheim u. Teck: Elektro kann mehr als nur Stecker in die Dose. Wir bringen Strom, Licht und Vernetzung zu Ihnen schnell, kompetent und zuverlässig."
primaryButton={{
text: "Kontakt aufnehmen",
href: "#contact",
}}
secondaryButton={{
text: "Über uns",
href: "#about",
}}
imageSrc="http://img.b2bpic.net/free-photo/male-electrician-working-switchboard-with-fuses_169016-53034.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Tradition trifft auf Innovation"
descriptions={[
"Als familiengeführter Meisterbetrieb in Kirchheim unter Teck verstehen wir unsere Arbeit als Handwerk mit Herz und Verstand. Seit vielen Jahren stehen wir für Qualität, die man spürt vom ersten Beratungsgespräch bis zur fachgerechten Übergabe.",
"Als zertifizierter e-masters-Fachbetrieb bilden wir uns stetig weiter, um für Sie technisch immer auf dem neuesten Stand zu bleiben. Ob Privathaushalt oder Gewerbe: Wir beraten Sie individuell und finden Lösungen, die zu Ihrem Bedarf und Ihrem Budget passen.",
]}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesImageBento
tag="Unsere Leistungen"
title="Alles rund um den Strom"
description="Von der klassischen Elektroinstallation bis zur intelligenten Gebäudeautomation wir sind Ihr Ansprechpartner."
items={[
{
title: "Elektroinstallation",
description: "Sicher & normgerecht.",
imageSrc: "http://img.b2bpic.net/free-photo/female-electrician-repairing-electrical-panel-blue-light-woman-industrial-electrician_169016-71546.jpg",
},
{
title: "EDV & Vernetzung",
description: "Stabile Leitungen.",
imageSrc: "http://img.b2bpic.net/free-photo/young-man-engineer-making-program-analyses_1303-20400.jpg",
},
{
title: "Photovoltaik",
description: "Energie vom Dach.",
imageSrc: "http://img.b2bpic.net/free-photo/house-holding-blank-sign_1156-354.jpg",
},
{
title: "KNX Smart Home",
description: "Automatisierung.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-looking-tablet-house-with-automation-lighting-system_482257-7530.jpg",
},
{
title: "Alarmanlagen",
description: "Sicher zu Hause.",
imageSrc: "http://img.b2bpic.net/free-photo/person-using-smartphone-his-automated-home_23-2149036906.jpg",
},
{
title: "Torantriebe",
description: "Komfort in Serie.",
imageSrc: "http://img.b2bpic.net/free-photo/photo-metal-texture-pattern_58702-11707.jpg",
},
{
title: "Beleuchtung",
description: "Licht-Design.",
imageSrc: "http://img.b2bpic.net/free-photo/half-open-black-white-doors_23-2148252775.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="Werte, die zählen"
title="Warum Kümmerle?"
description="Unser Versprechen an Sie ist simpel, aber konsequent."
metrics={[
{
value: "schnell",
description: "Wir reagieren umgehend auf Ihre Anfragen und Notfälle.",
},
{
value: "kompetent",
description: "Meisterhafte Ausführung durch stetige Weiterbildung.",
},
{
value: "zuverlässig",
description: "Termintreue und saubere Arbeit sind unser Standard.",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialQuoteCards
tag="Kundenstimmen"
title="Was Kunden über uns sagen"
description="Verlässlichkeit ist unsere beste Visitenkarte."
testimonials={[
{
name: "Familie Weber",
role: "Privatkunde",
quote: "Die Installation unserer PV-Anlage war erstklassig. Sauber, pünktlich und freundlich.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-young-carpenter_329181-15682.jpg",
},
{
name: "Ladenbau Schmidt",
role: "Gewerbekunde",
quote: "Schnelle Hilfe bei unserer Schaufensterbeleuchtung. Top Service!",
imageSrc: "http://img.b2bpic.net/free-photo/crazy-businessman-happy-expression_1194-3548.jpg",
},
{
name: "Familie Schneider",
role: "Privatkunde",
quote: "Wir fühlen uns mit unserer neuen Alarmanlage einfach sicherer.",
imageSrc: "http://img.b2bpic.net/free-photo/kids-playing-around-calm-cosy-spaces_52683-100420.jpg",
},
{
name: "Frau Dr. Müller",
role: "Privatkunde",
quote: "Sehr höfliche Elektriker, die ihre Baustelle immer perfekt sauber verlassen.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-dancing-home_23-2149272865.jpg",
},
{
name: "Herr H. K., Kirchheim",
role: "Privatkunde",
quote: "Schnell, kompetent und absolut zuverlässig genau wie angekündigt.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-relaxing-sofa-with-dog-their-son-playing-with-toys-home_23-2147938861.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Partner & Zertifikate"
title="Starke Partner für Ihr Projekt"
description="Wir setzen auf Qualität und zertifizierte Marken."
names={[
"e-masters Fachbetrieb",
"KNX Partner",
"Innung Elektro",
"Solar-Zertifiziert",
"Sicherheitstechnik-Partner",
"Regionale Energie",
"Qualitäts-Handwerk",
]}
/>
</SectionErrorBoundary>
</div>
<SocialProofSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Fragen & Antworten"
title="Alles, was Sie wissen müssen"
categories={[
{
name: "Allgemein",
items: [
{
question: "Wo sind Sie tätig?",
answer: "Unser Hauptsitz ist in Kirchheim unter Teck. Wir bedienen Kunden in der gesamten Umgebung.",
},
{
question: "Sind Notfälle abgedeckt?",
answer: "Ja, wir reagieren schnell auf dringende Ausfälle in unseren Einsatzgebieten.",
},
],
},
{
name: "Technik",
items: [
{
question: "Bieten Sie auch KNX an?",
answer: "Ja, wir sind als KNX-Partner zertifiziert und automatisieren Ihr Zuhause fachgerecht.",
},
{
question: "Was kostet eine Beratung?",
answer: "Ein Erstgespräch ist für ein Angebot im Rahmen unserer normalen Auftragsannahme inklusive.",
},
],
},
]}
description="Häufig gestellte Fragen zu unseren Leistungen."
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Kontakt"
text="Bereit für Ihr nächstes Projekt? Wir freuen uns auf Ihren Anruf oder Ihre Nachricht. Telefon: 07021 123456 (MoFr: 07:0012:00 & 13:0018:00)"
primaryButton={{
text: "Jetzt anrufen",
href: "tel:07021123456",
}}
secondaryButton={{
text: "Email schreiben",
href: "mailto:info@kuemmerle-elektro.de",
}}
/>
</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="Tradition trifft auf Innovation"
descriptions={[
"Als familiengeführter Meisterbetrieb in Kirchheim unter Teck verstehen wir unsere Arbeit als Handwerk mit Herz und Verstand. Seit vielen Jahren stehen wir für Qualität, die man spürt vom ersten Beratungsgespräch bis zur fachgerechten Übergabe.",
"Als zertifizierter e-masters-Fachbetrieb bilden wir uns stetig weiter, um für Sie technisch immer auf dem neuesten Stand zu bleiben. Ob Privathaushalt oder Gewerbe: Wir beraten Sie individuell und finden Lösungen, die zu Ihrem Bedarf und Ihrem Budget passen.",
]}
/>
</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="Kontakt"
text="Bereit für Ihr nächstes Projekt? Wir freuen uns auf Ihren Anruf oder Ihre Nachricht. Telefon: 07021 123456 (MoFr: 07:0012:00 & 13:0018:00)"
primaryButton={{
text: "Jetzt anrufen",
href: "tel:07021123456",
}}
secondaryButton={{
text: "Email schreiben",
href: "mailto:info@kuemmerle-elektro.de",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,48 @@
// 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 FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Fragen & Antworten"
title="Alles, was Sie wissen müssen"
categories={[
{
name: "Allgemein",
items: [
{
question: "Wo sind Sie tätig?",
answer: "Unser Hauptsitz ist in Kirchheim unter Teck. Wir bedienen Kunden in der gesamten Umgebung.",
},
{
question: "Sind Notfälle abgedeckt?",
answer: "Ja, wir reagieren schnell auf dringende Ausfälle in unseren Einsatzgebieten.",
},
],
},
{
name: "Technik",
items: [
{
question: "Bieten Sie auch KNX an?",
answer: "Ja, wir sind als KNX-Partner zertifiziert und automatisieren Ihr Zuhause fachgerecht.",
},
{
question: "Was kostet eine Beratung?",
answer: "Ein Erstgespräch ist für ein Angebot im Rahmen unserer normalen Auftragsannahme inklusive.",
},
],
},
]}
description="Häufig gestellte Fragen zu unseren Leistungen."
/>
</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 "features" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesImageBento
tag="Unsere Leistungen"
title="Alles rund um den Strom"
description="Von der klassischen Elektroinstallation bis zur intelligenten Gebäudeautomation wir sind Ihr Ansprechpartner."
items={[
{
title: "Elektroinstallation",
description: "Sicher & normgerecht.",
imageSrc: "http://img.b2bpic.net/free-photo/female-electrician-repairing-electrical-panel-blue-light-woman-industrial-electrician_169016-71546.jpg",
},
{
title: "EDV & Vernetzung",
description: "Stabile Leitungen.",
imageSrc: "http://img.b2bpic.net/free-photo/young-man-engineer-making-program-analyses_1303-20400.jpg",
},
{
title: "Photovoltaik",
description: "Energie vom Dach.",
imageSrc: "http://img.b2bpic.net/free-photo/house-holding-blank-sign_1156-354.jpg",
},
{
title: "KNX Smart Home",
description: "Automatisierung.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-looking-tablet-house-with-automation-lighting-system_482257-7530.jpg",
},
{
title: "Alarmanlagen",
description: "Sicher zu Hause.",
imageSrc: "http://img.b2bpic.net/free-photo/person-using-smartphone-his-automated-home_23-2149036906.jpg",
},
{
title: "Torantriebe",
description: "Komfort in Serie.",
imageSrc: "http://img.b2bpic.net/free-photo/photo-metal-texture-pattern_58702-11707.jpg",
},
{
title: "Beleuchtung",
description: "Licht-Design.",
imageSrc: "http://img.b2bpic.net/free-photo/half-open-black-white-doors_23-2148252775.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// 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 HeroBrand from '@/components/sections/hero/HeroBrand';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBrand
brand="Meisterleistungen, denen Sie vertrauen können."
description="Ihr regionaler Fachbetrieb in Kirchheim u. Teck: Elektro kann mehr als nur Stecker in die Dose. Wir bringen Strom, Licht und Vernetzung zu Ihnen schnell, kompetent und zuverlässig."
primaryButton={{
text: "Kontakt aufnehmen",
href: "#contact",
}}
secondaryButton={{
text: "Über uns",
href: "#about",
}}
imageSrc="http://img.b2bpic.net/free-photo/male-electrician-working-switchboard-with-fuses_169016-53034.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// 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 MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="Werte, die zählen"
title="Warum Kümmerle?"
description="Unser Versprechen an Sie ist simpel, aber konsequent."
metrics={[
{
value: "schnell",
description: "Wir reagieren umgehend auf Ihre Anfragen und Notfälle.",
},
{
value: "kompetent",
description: "Meisterhafte Ausführung durch stetige Weiterbildung.",
},
{
value: "zuverlässig",
description: "Termintreue und saubere Arbeit sind unser Standard.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "social-proof" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function SocialProofSection(): React.JSX.Element {
return (
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Partner & Zertifikate"
title="Starke Partner für Ihr Projekt"
description="Wir setzen auf Qualität und zertifizierte Marken."
names={[
"e-masters Fachbetrieb",
"KNX Partner",
"Innung Elektro",
"Solar-Zertifiziert",
"Sicherheitstechnik-Partner",
"Regionale Energie",
"Qualitäts-Handwerk",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// 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 TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialQuoteCards
tag="Kundenstimmen"
title="Was Kunden über uns sagen"
description="Verlässlichkeit ist unsere beste Visitenkarte."
testimonials={[
{
name: "Familie Weber",
role: "Privatkunde",
quote: "Die Installation unserer PV-Anlage war erstklassig. Sauber, pünktlich und freundlich.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-confident-young-carpenter_329181-15682.jpg",
},
{
name: "Ladenbau Schmidt",
role: "Gewerbekunde",
quote: "Schnelle Hilfe bei unserer Schaufensterbeleuchtung. Top Service!",
imageSrc: "http://img.b2bpic.net/free-photo/crazy-businessman-happy-expression_1194-3548.jpg",
},
{
name: "Familie Schneider",
role: "Privatkunde",
quote: "Wir fühlen uns mit unserer neuen Alarmanlage einfach sicherer.",
imageSrc: "http://img.b2bpic.net/free-photo/kids-playing-around-calm-cosy-spaces_52683-100420.jpg",
},
{
name: "Frau Dr. Müller",
role: "Privatkunde",
quote: "Sehr höfliche Elektriker, die ihre Baustelle immer perfekt sauber verlassen.",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-dancing-home_23-2149272865.jpg",
},
{
name: "Herr H. K., Kirchheim",
role: "Privatkunde",
quote: "Schnell, kompetent und absolut zuverlässig genau wie angekündigt.",
imageSrc: "http://img.b2bpic.net/free-photo/couple-relaxing-sofa-with-dog-their-son-playing-with-toys-home_23-2147938861.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}