4 Commits

Author SHA1 Message Date
kudinDmitriyUp
d996acf40e Bob AI: Update hero section text to be more corporate and profession 2026-06-14 13:37:35 +00:00
kudinDmitriyUp
513eb7c282 Bob AI: Update global theme to a professional minimalist palette 2026-06-14 13:35:57 +00:00
80c9095516 Merge version_1_1781443786753 into main
Merge version_1_1781443786753 into main
2026-06-14 13:32:24 +00:00
68711cbce9 Merge version_1_1781443786753 into main
Merge version_1_1781443786753 into main
2026-06-14 13:31:35 +00:00
9 changed files with 286 additions and 119 deletions

View File

@@ -5,15 +5,15 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #f5faff;
--card: #ffffff;
--foreground: #001122;
--primary-cta: #15479c;
--primary-cta-text: #f5faff;
--secondary-cta: #ffffff;
--secondary-cta-text: #001122;
--accent: #a8cce8;
--background-accent: #7ba3cf;
--background: #ffffff;
--card: #f8fafc;
--foreground: #0f172a;
--primary-cta: #020617;
--primary-cta-text: #ffffff;
--secondary-cta: #f1f5f9;
--secondary-cta-text: #0f172a;
--accent: #e2e8f0;
--background-accent: #f1f5f9;
/* @layout/border-radius/rounded */
--radius: 0.5rem;

View File

@@ -1,120 +1,33 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroBillboardBrand from '@/components/sections/hero/HeroBillboardBrand';
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
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 ProductsSection from './HomePage/sections/Products';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardBrand
brand="Endüstriyel Soğutma Sistemleri Uzmanı"
description="Anahtar teslim soğuk hava depoları, özel panel çözümleri ve endüstriyel soğutma sistemlerinde kendi fabrikamızda üretiyor, kuruyor ve teslim ediyoruz."
primaryButton={{ text: "Ürünleri Keşfet", href: "#products" }}
secondaryButton={{ text: "Teklif Al", href: "#contact" }}
imageSrc="http://img.b2bpic.net/free-photo/production-hard-cheese-cheese-manufacture-interior_645730-810.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="Hakkımızda"
title="Kendi Fabrikamızda Üretim"
description="Moody Group olarak soğuk hava depoları, panel, kapı, evaporatör ve endüstriyel soğutma sistemlerini yüksek standartlarda üretiyoruz."
items={[
{ icon: "Building2", title: "Yerli Üretim", description: "Kendi tesislerimizde kalite odaklı üretim süreci." },
{ icon: "Shield", title: "Anahtar Teslim", description: "Projelendirmeden kuruluma kadar tam kapsamlı hizmet." },
{ icon: "Wrench", title: "Uzman Mühendislik", description: "Endüstriyel soğutma sistemlerinde hassas hesaplamalar." },
]}
imageSrc="http://img.b2bpic.net/free-photo/factory-workers-white-lab-suits-producing-tv-sets-assebly-line-with-some-modern-equipment-clean-room_645730-549.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBentoGrid
tag="Çözümlerimiz"
title="Endüstriyel İhtiyaçlarınıza Profesyonel Yanıt"
description="Her ölçekte soğuk hava deposu ve sanayi tipi soğutma çözümleri."
features={[
{ title: "Soğuk Oda Panelleri", description: "Duvar, tavan ve zemin için yüksek izolasyon.", imageSrc: "http://img.b2bpic.net/free-photo/photo-wood-texture-pattern_58702-13059.jpg" },
{ title: "Menteşeli Kapılar", description: "Tek kanat, çift kanat ve atmosfer kontrollü seçenekler.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-cleaning_23-2149268837.jpg" },
{ title: "Monoblok Soğutma", description: "Kompakt ve verimli soğutma sistemleri.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-heat-pump-outside-home_23-2149250251.jpg" },
{ title: "Seksiyonel Kapılar", description: "Endüstriyel geçişler için dayanıklı çözümler.", imageSrc: "http://img.b2bpic.net/free-photo/safety-measures-stickers-assembly-lines-operated-by-heavy-machinery-render_482257-78158.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Ürünlerimiz"
title="Katalogumuzdan Seçkiler"
description="Tüm soğutma bileşenlerimizde kalite güvencesi."
items={[
{ title: "Tavan Paneli", description: "Özel profil yapısı ile kolay montaj.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/mechanic-installing-spring-wire_1170-1343.jpg" },
{ title: "Atmosfer Kontrollü Kapı", description: "Hassas ürünler için izolasyon.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/young-person-traveling-through-japan_23-2149287968.jpg" },
{ title: "Split Soğutma", description: "Açık ve kapalı tip soğutma sistemleri.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/local-retailer-taking-care-his-business_23-2149349408.jpg" },
{ title: "Otomatik Sürgülü Kapı", description: "Hızlı geçiş için otomatik çözümler.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/industrial-park-factory-building-warehouse_1417-1930.jpg" },
{ title: "Cam Panel", description: "Görünürlük ve yalıtım bir arada.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/coloured-sleeves-crimp-terminals-different-wire-sizes_169016-24612.jpg" },
{ title: "Endüstriyel Evaporatör", description: "Yüksek performanslı soğutma.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/close-up-heat-pump-outside-home_23-2149250245.jpg" },
{ title: "Roll-Up Kapı", description: "Lojistik hızı için optimize edildi.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/background-wall-concept-with-copy-space_23-2148801295.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="Başarılarımız"
title="Sektörel Gücümüz"
description="Yılların deneyimi ile taahhüt ettiğimiz çözümler."
metrics={[
{ value: "100+", description: "Tamamlanmış Proje" },
{ value: "50+", description: "Endüstriyel Referans" },
{ value: "24/7", description: "Teknik Destek" },
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Müşterilerimiz"
title="Bize Güvenen Firmalar"
description="Endüstriyel soğutma sistemlerimizde memnuniyet önceliğimizdir."
testimonials={[
{ name: "Ahmet Y.", role: "Tesis Müdürü", quote: "Projemiz için zamanında ve eksiksiz teslimat sağladılar.", imageSrc: "http://img.b2bpic.net/free-photo/smiley-female-welder-work_23-2148813358.jpg" },
{ name: "Mehmet K.", role: "Lojistik Direktörü", quote: "Soğuk hava deposu verimliliğimiz iki katına çıktı.", imageSrc: "http://img.b2bpic.net/free-photo/warehouse-employees-managing-products-storing-using-barcode-scanner_482257-77682.jpg" },
{ name: "Ayşe S.", role: "Gıda İşletmecisi", quote: "Kalite ve mühendislik yaklaşımı çok profesyonel.", imageSrc: "http://img.b2bpic.net/free-photo/middle-eastern-customer-holds-points-glass-jar-filled-with-certain-organic-food-product-while-another-man-gestures-thumbs-up-grocery-store-also-store-was-black-woman-looking-around_482257-74051.jpg" },
{ name: "Hakan C.", role: "Soğuk Zincir Sorumlusu", quote: "Teknik destek ekibi her zaman ulaşılabilir.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-male-worker-using-laptop-distribution-warehouse_107420-96055.jpg" },
{ name: "Emine D.", role: "Fabrika Sahibi", quote: "Yerli üretim kalitesi ile global standartları yakaladılar.", imageSrc: "http://img.b2bpic.net/free-photo/architectural-blueprints_1359-461.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Bize Ulaşın"
text="Projeleriniz için özel soğutma çözümleri ve fiyat teklifi almak ister misiniz?"
primaryButton={{ text: "Hemen İletişime Geç", href: "#" }}
secondaryButton={{ text: "Kataloğu İndir", href: "#" }}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}
}

View File

@@ -0,0 +1,26 @@
// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="Hakkımızda"
title="Kendi Fabrikamızda Üretim"
description="Moody Group olarak soğuk hava depoları, panel, kapı, evaporatör ve endüstriyel soğutma sistemlerini yüksek standartlarda üretiyoruz."
items={[
{ icon: "Building2", title: "Yerli Üretim", description: "Kendi tesislerimizde kalite odaklı üretim süreci." },
{ icon: "Shield", title: "Anahtar Teslim", description: "Projelendirmeden kuruluma kadar tam kapsamlı hizmet." },
{ icon: "Wrench", title: "Uzman Mühendislik", description: "Endüstriyel soğutma sistemlerinde hassas hesaplamalar." },
]}
imageSrc="http://img.b2bpic.net/free-photo/factory-workers-white-lab-suits-producing-tv-sets-assebly-line-with-some-modern-equipment-clean-room_645730-549.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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="Bize Ulaşın"
text="Projeleriniz için özel soğutma çözümleri ve fiyat teklifi almak ister misiniz?"
primaryButton={{ text: "Hemen İletişime Geç", href: "#" }}
secondaryButton={{ text: "Kataloğu İndir", href: "#" }}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,26 @@
// 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 FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBentoGrid
tag="Çözümlerimiz"
title="Endüstriyel İhtiyaçlarınıza Profesyonel Yanıt"
description="Her ölçekte soğuk hava deposu ve sanayi tipi soğutma çözümleri."
features={[
{ title: "Soğuk Oda Panelleri", description: "Duvar, tavan ve zemin için yüksek izolasyon.", imageSrc: "http://img.b2bpic.net/free-photo/photo-wood-texture-pattern_58702-13059.jpg" },
{ title: "Menteşeli Kapılar", description: "Tek kanat, çift kanat ve atmosfer kontrollü seçenekler.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-cleaning_23-2149268837.jpg" },
{ title: "Monoblok Soğutma", description: "Kompakt ve verimli soğutma sistemleri.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-heat-pump-outside-home_23-2149250251.jpg" },
{ title: "Seksiyonel Kapılar", description: "Endüstriyel geçişler için dayanıklı çözümler.", imageSrc: "http://img.b2bpic.net/free-photo/safety-measures-stickers-assembly-lines-operated-by-heavy-machinery-render_482257-78158.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,100 @@
/* eslint-disable */
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
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 AvatarGroup from "@/components/ui/AvatarGroup";
const primaryButton = {
text: "Ürünleri Keşfet",
href: "#products"
};
const secondaryButton = {
href: "#contact",
text: "Teklif Al"
};
type HeroOverlayProps = {
tag: string;
title: string;
description: string;
primaryButton: { text: string; href: string };
secondaryButton: { text: string; href: string };
avatarsSrc?: string[];
avatarsLabel?: string;
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
const HeroInline = () => {
return (
<section
aria-label="Hero section"
className="relative w-full h-svh overflow-hidden flex flex-col justify-end mb-20"
>
<HeroBackgroundSlot />
<ImageOrVideo
imageSrc={"http://img.b2bpic.net/free-photo/production-hard-cheese-cheese-manufacture-interior_645730-810.jpg"}
className="absolute inset-0 w-full h-full object-cover rounded-none"
/>
<div
className="absolute z-10 w-[150vw] h-[150vw] left-0 bottom-0 -translate-x-1/2 translate-y-1/2 backdrop-blur mask-[radial-gradient(circle,black_20%,transparent_70%)]"
aria-hidden="true"
/>
<div className="relative z-10 w-content-width mx-auto pb-10 md:pb-25">
<div className="flex flex-col gap-3 w-full md:w-6/10 lg:w-1/2 xl:w-45/100 2xl:w-4/10">
<div className="w-fit px-3 py-1 mb-1 text-sm card rounded">
<p>{"Endüstriyel Soğutma Sistemleri Uzmanı"}</p>
</div>
<TextAnimation
text={"Geleceğin Soğutma Teknolojileri"}
variant="fade-blur"
gradientText={true}
tag="h1"
className="text-7xl 2xl:text-8xl leading-[1.15] font-semibold text-white text-balance"
/>
<TextAnimation
text={"Endüstriyel soğutma sistemlerinde 15+ yıllık tecrübe. Kendi tesislerimizde üretiyor, anahtar teslim kuruyor ve güvenle teslim ediyoruz."}
variant="fade-blur"
gradientText={false}
tag="p"
className="text-lg md:text-xl text-white leading-snug text-balance"
/>
<div className="flex flex-wrap gap-3 mt-2 md:mt-3">
<Button text={primaryButton.text} href={primaryButton.href} variant="primary"/>
<Button text={secondaryButton.text} href={secondaryButton.href} variant="secondary"animationDelay={0.1} />
</div>
{undefined && undefined.length > 0 && (
<div className="mt-3 md:mt-4">
<AvatarGroup size="lg" labelClassName="text-primary-cta-text" />
</div>
)}
</div>
</div>
</section>
);
};
import HeroBillboardBrand from '@/components/sections/hero/HeroBillboardBrand';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardBrand
brand="Geleceğin Soğutma Teknolojileri"
description="Endüstriyel soğutma sistemlerinde 15+ yıllık tecrübe. Kendi tesislerimizde üretiyor, anahtar teslim kuruyor ve güvenle teslim ediyoruz."
primaryButton={{ text: "Ürünleri Keşfet", href: "#products" }}
secondaryButton={{ text: "Teklif Al", href: "#contact" }}
imageSrc="http://img.b2bpic.net/free-photo/production-hard-cheese-cheese-manufacture-interior_645730-810.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// 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="Başarılarımız"
title="Sektörel Gücümüz"
description="Yılların deneyimi ile taahhüt ettiğimiz çözümler."
metrics={[
{ value: "100+", description: "Tamamlanmış Proje" },
{ value: "50+", description: "Endüstriyel Referans" },
{ value: "24/7", description: "Teknik Destek" },
]}
/>
</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 "products" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Ürünlerimiz"
title="Katalogumuzdan Seçkiler"
description="Tüm soğutma bileşenlerimizde kalite güvencesi."
items={[
{ title: "Tavan Paneli", description: "Özel profil yapısı ile kolay montaj.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/mechanic-installing-spring-wire_1170-1343.jpg" },
{ title: "Atmosfer Kontrollü Kapı", description: "Hassas ürünler için izolasyon.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/young-person-traveling-through-japan_23-2149287968.jpg" },
{ title: "Split Soğutma", description: "Açık ve kapalı tip soğutma sistemleri.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/local-retailer-taking-care-his-business_23-2149349408.jpg" },
{ title: "Otomatik Sürgülü Kapı", description: "Hızlı geçiş için otomatik çözümler.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/industrial-park-factory-building-warehouse_1417-1930.jpg" },
{ title: "Cam Panel", description: "Görünürlük ve yalıtım bir arada.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/coloured-sleeves-crimp-terminals-different-wire-sizes_169016-24612.jpg" },
{ title: "Endüstriyel Evaporatör", description: "Yüksek performanslı soğutma.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/close-up-heat-pump-outside-home_23-2149250245.jpg" },
{ title: "Roll-Up Kapı", description: "Lojistik hızı için optimize edildi.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/background-wall-concept-with-copy-space_23-2148801295.jpg" },
]}
/>
</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 "testimonials" section.
import React from 'react';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Müşterilerimiz"
title="Bize Güvenen Firmalar"
description="Endüstriyel soğutma sistemlerimizde memnuniyet önceliğimizdir."
testimonials={[
{ name: "Ahmet Y.", role: "Tesis Müdürü", quote: "Projemiz için zamanında ve eksiksiz teslimat sağladılar.", imageSrc: "http://img.b2bpic.net/free-photo/smiley-female-welder-work_23-2148813358.jpg" },
{ name: "Mehmet K.", role: "Lojistik Direktörü", quote: "Soğuk hava deposu verimliliğimiz iki katına çıktı.", imageSrc: "http://img.b2bpic.net/free-photo/warehouse-employees-managing-products-storing-using-barcode-scanner_482257-77682.jpg" },
{ name: "Ayşe S.", role: "Gıda İşletmecisi", quote: "Kalite ve mühendislik yaklaşımı çok profesyonel.", imageSrc: "http://img.b2bpic.net/free-photo/middle-eastern-customer-holds-points-glass-jar-filled-with-certain-organic-food-product-while-another-man-gestures-thumbs-up-grocery-store-also-store-was-black-woman-looking-around_482257-74051.jpg" },
{ name: "Hakan C.", role: "Soğuk Zincir Sorumlusu", quote: "Teknik destek ekibi her zaman ulaşılabilir.", imageSrc: "http://img.b2bpic.net/free-photo/smiling-male-worker-using-laptop-distribution-warehouse_107420-96055.jpg" },
{ name: "Emine D.", role: "Fabrika Sahibi", quote: "Yerli üretim kalitesi ile global standartları yakaladılar.", imageSrc: "http://img.b2bpic.net/free-photo/architectural-blueprints_1359-461.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
);
}