Merge version_2_1782035132693 into main #1

Merged
bender merged 1 commits from version_2_1782035132693 into main 2026-06-21 09:46:42 +00:00
10 changed files with 249 additions and 155 deletions

View File

@@ -5,18 +5,18 @@
:root {
/* @colorThemes/lightTheme/blueProfessional */
--background: #f8fafc;
--card: #ffffff;
--foreground: #0f172a;
--primary-cta: #1d4ed8;
--background: #ffffff;
--card: #fafafa;
--foreground: #000000;
--primary-cta: #000000;
--primary-cta-text: #ffffff;
--secondary-cta: #e0e7ff;
--secondary-cta-text: #1e3a5f;
--accent: #3b82f6;
--background-accent: #60a5fa;
--secondary-cta: #f4f4f5;
--secondary-cta-text: #000000;
--accent: #71717a;
--background-accent: #e4e4e7;
/* @layout/border-radius/soft */
--radius: 1.5rem;
--radius: 0rem;
/* @layout/content-width/medium */
--width-content-width: clamp(40rem, 72.5vw, 100rem);

View File

@@ -1,161 +1,40 @@
// 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.
import { StyleProvider } from "@/components/ui/StyleProvider";
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
import HeroOverlay from "@/components/sections/hero/HeroOverlay";
import AboutFeaturesSplit from "@/components/sections/about/AboutFeaturesSplit";
import FeaturesMediaCards from "@/components/sections/features/FeaturesMediaCards";
import FeaturesAlternatingSplit from "@/components/sections/features/FeaturesAlternatingSplit";
import FeaturesTimelineCards from "@/components/sections/features/FeaturesTimelineCards";
import TestimonialRatingCards from "@/components/sections/testimonial/TestimonialRatingCards";
import FaqSimple from "@/components/sections/faq/FaqSimple";
import ContactCta from "@/components/sections/contact/ContactCta";
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import ServicesSection from './HomePage/sections/Services';
import WhyChooseSection from './HomePage/sections/WhyChoose';
import HowItWorksSection from './HomePage/sections/HowItWorks';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage() {
export default function HomePage(): React.JSX.Element {
return (
<StyleProvider heroBackground="none" siteBackground="aurora" buttonVariant="arrow">
<StyleProvider heroBackground="none" siteBackground="aurora" buttonVariant="arrow">
<SiteBackgroundSlot />
<div id="hero" data-section="hero">
<HeroOverlay
tag="Премиальное качество"
title="Стиль, который определяет характер"
description="Откройте для себя коллекцию мужской одежды, сочетающую в себе безупречную классику и современные тренды. Мы создаем образы для тех, кто ценит уверенность и комфорт."
primaryButton={{ text: "Смотреть каталог", href: "#services" }}
secondaryButton={{ text: "О нас", href: "#about" }}
imageSrc="http://img.b2bpic.net/free-photo/man-blue-suit-posing-white-artistic-wall-from-bricks_613910-10624.jpg"
/>
</div>
<HeroSection />
<div id="about" data-section="about">
<AboutFeaturesSplit
tag="Наша миссия"
title="Мастерство в каждой детали"
description="Наш бренд — это история про безупречный крой и качественные материалы. Мы верим, что одежда должна не просто сидеть идеально, а подчеркивать ваш статус."
items={[
{
icon: "ShieldCheck", title: "Премиум материалы", description: "Используем только натуральные ткани от проверенных поставщиков."},
{
icon: "Clock", title: "Актуальный крой", description: "Наши дизайнеры следят за мировой модой, адаптируя ее под ваш ритм жизни."},
{
icon: "Award", title: "Безупречный сервис", description: "Индивидуальный подход к каждому клиенту в бутике и онлайн."},
]}
imageSrc="http://img.b2bpic.net/free-photo/portrait-man-holding-coat-his-senior-man-s-shoulder_23-2148180342.jpg"
/>
</div>
<AboutSection />
<div id="services" data-section="services">
<FeaturesMediaCards
tag="Коллекции"
title="Основа вашего гардероба"
description="Найдите свой идеальный образ для работы, отдыха и торжественных случаев."
items={[
{
title: "Костюмы", description: "Идеальная посадка для официальных встреч и важных событий.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-choosing-clothes-shop_1303-19711.jpg"
},
{
title: "Smart Casual", description: "Комфорт для повседневной жизни без потери стиля.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-office-center_1303-19605.jpg"
},
{
title: "Верхняя одежда", description: "Пальто и куртки, которые защищают от непогоды и выглядят статусно.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-with-winter-clothes-walking-street_1303-20158.jpg"
},
{
title: "Трикотаж", description: "Мягкие ткани и выверенный силуэт для ваших будней.", imageSrc: "http://img.b2bpic.net/free-photo/fashionable-man-winter-knitted-clothes_158595-4105.jpg"
},
{
title: "Аксессуары", description: "Детали, которые расставляют акценты в вашем образе.", imageSrc: "http://img.b2bpic.net/free-photo/morning-groom_1303-11598.jpg"
},
{
title: "Обувь", description: "Кожаная обувь ручной работы для завершения идеального лука.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-shoes_1150-10719.jpg"
},
]}
/>
</div>
<ServicesSection />
<div id="why-choose" data-section="why-choose">
<FeaturesAlternatingSplit
tag="Преимущества"
title="Почему выбирают нас"
description="Каждый клиент — это часть нашей истории успеха."
items={[
{
title: "Персональные консультации", description: "Наши стилисты помогут собрать капсульный гардероб под ваши задачи.", imageSrc: "http://img.b2bpic.net/free-photo/measuring-client-jacket_1098-14928.jpg"
},
{
title: "Гарантия качества", description: "Мы отвечаем за долговечность каждой вещи из нашей коллекции.", imageSrc: "http://img.b2bpic.net/free-photo/textured-fabric-close-up-grey-shades-linen-texture-background_84443-55389.jpg"
},
{
title: "Доставка и примерка", description: "Привезем несколько размеров для примерки в удобное для вас время.", imageSrc: "http://img.b2bpic.net/free-photo/young-happy-asian-couple-moving-their-new-home-open-boxes-check-old-objects-from-old-home_7861-762.jpg"
},
]}
/>
</div>
<WhyChooseSection />
<div id="how-it-works" data-section="how-it-works">
<FeaturesTimelineCards
tag="Процесс покупки"
title="От выбора до доставки"
description="Сделать заказ у нас просто и приятно."
items={[
{
title: "Выбор моделей", description: "Изучите наш онлайн-каталог и сохраните понравившиеся образы.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-man-working-laptop_23-2148539780.jpg"
},
{
title: "Консультация", description: "Свяжитесь с нами, чтобы уточнить параметры и наличие размеров.", imageSrc: "http://img.b2bpic.net/free-photo/clothing-store-smiling-client-assistant-discussing-apparel-style-while-browsing-through-rack-african-american-man-showing-outfit-mall-customer-giving-fashion-advice_482257-71789.jpg"
},
{
title: "Доставка", description: "Получите ваш заказ с возможностью примерки и оплаты после получения.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-delivery-man-wearing-mask_23-2148767139.jpg"
},
]}
/>
</div>
<HowItWorksSection />
<div id="testimonials" data-section="testimonials">
<TestimonialRatingCards
tag="Отзывы"
title="Что говорят наши клиенты"
description="Мы гордимся доверием наших покупателей."
testimonials={[
{
name: "Александр В.", role: "Бизнесмен", quote: "Лучший магазин мужской одежды в городе. Костюмы сидят идеально, а сервис на высшем уровне.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/businessman-smiling-looking-camera_23-2148112827.jpg"
},
{
name: "Дмитрий С.", role: "Архитектор", quote: "Нашел здесь отличный набор для smart casual. Качество материалов порадовало.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/men-s-fashion-portrait-confident-handsome-african-american-guy-stylish-leather-jacket-sunglasses-posing-neon-lighting-purple-studio-background_231208-14381.jpg"
},
{
name: "Игорь М.", role: "Маркетолог", quote: "Всегда нахожу здесь что-то новое для своего образа. Доставка работает как часы.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-pensive-african-american-man-dressed-classic-brown-jacket-standing-studio-dark-background_613910-17787.jpg"
},
]}
/>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<FaqSimple
tag="FAQ"
title="Часто задаваемые вопросы"
description="Ответы на вопросы, которые помогут вам совершить покупку."
items={[
{
question: "Могу ли я примерить одежду перед покупкой?", answer: "Да, мы предлагаем услугу примерки при курьерской доставке. Вы можете выбрать несколько размеров и оплатить только то, что подошло."},
{
question: "Какие материалы вы используете?", answer: "Мы отдаем предпочтение натуральной шерсти, хлопку и качественным смесовым тканям, обеспечивающим комфорт и долговечность."},
{
question: "Есть ли у вас услуга подгонки?", answer: "Мы сотрудничаем с лучшими ателье города и можем порекомендовать специалистов для идеальной посадки по фигуре."},
{
question: "Как часто обновляется ассортимент?", answer: "Мы выпускаем новые коллекции к каждому сезону, чтобы ваш гардероб оставался актуальным."},
]}
/>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<ContactCta
tag="Контакты"
text="Готовы обновить свой гардероб?"
primaryButton={{ text: "Перейти в каталог", href: "#services" }}
secondaryButton={{ text: "Связаться в Telegram", href: "https://t.me/" }}
/>
</div>
<ContactSection />
</StyleProvider>
);
}
}

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";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<AboutFeaturesSplit
tag="Наша миссия"
title="Мастерство в каждой детали"
description="Наш бренд — это история про безупречный крой и качественные материалы. Мы верим, что одежда должна не просто сидеть идеально, а подчеркивать ваш статус."
items={[
{
icon: "ShieldCheck", title: "Премиум материалы", description: "Используем только натуральные ткани от проверенных поставщиков."},
{
icon: "Clock", title: "Актуальный крой", description: "Наши дизайнеры следят за мировой модой, адаптируя ее под ваш ритм жизни."},
{
icon: "Award", title: "Безупречный сервис", description: "Индивидуальный подход к каждому клиенту в бутике и онлайн."},
]}
imageSrc="http://img.b2bpic.net/free-photo/portrait-man-holding-coat-his-senior-man-s-shoulder_23-2148180342.jpg"
/>
</div>
);
}

View File

@@ -0,0 +1,18 @@
// 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";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<ContactCta
tag="Контакты"
text="Готовы обновить свой гардероб?"
primaryButton={{ text: "Перейти в каталог", href: "#services" }}
secondaryButton={{ text: "Связаться в Telegram", href: "https://t.me/" }}
/>
</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 "faq" section.
import React from 'react';
import FaqSimple from "@/components/sections/faq/FaqSimple";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<FaqSimple
tag="FAQ"
title="Часто задаваемые вопросы"
description="Ответы на вопросы, которые помогут вам совершить покупку."
items={[
{
question: "Могу ли я примерить одежду перед покупкой?", answer: "Да, мы предлагаем услугу примерки при курьерской доставке. Вы можете выбрать несколько размеров и оплатить только то, что подошло."},
{
question: "Какие материалы вы используете?", answer: "Мы отдаем предпочтение натуральной шерсти, хлопку и качественным смесовым тканям, обеспечивающим комфорт и долговечность."},
{
question: "Есть ли у вас услуга подгонки?", answer: "Мы сотрудничаем с лучшими ателье города и можем порекомендовать специалистов для идеальной посадки по фигуре."},
{
question: "Как часто обновляется ассортимент?", answer: "Мы выпускаем новые коллекции к каждому сезону, чтобы ваш гардероб оставался актуальным."},
]}
/>
</div>
);
}

View File

@@ -0,0 +1,20 @@
// 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 HeroOverlay from "@/components/sections/hero/HeroOverlay";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<HeroOverlay
tag="Премиальное качество"
title="Стиль, который определяет характер"
description="Откройте для себя коллекцию мужской одежды, сочетающую в себе безупречную классику и современные тренды. Мы создаем образы для тех, кто ценит уверенность и комфорт."
primaryButton={{ text: "Смотреть каталог", href: "#services" }}
secondaryButton={{ text: "О нас", href: "#about" }}
imageSrc="http://img.b2bpic.net/free-photo/man-blue-suit-posing-white-artistic-wall-from-bricks_613910-10624.jpg"
/>
</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 "how-it-works" section.
import React from 'react';
import FeaturesTimelineCards from "@/components/sections/features/FeaturesTimelineCards";
export default function HowItWorksSection(): React.JSX.Element {
return (
<div id="how-it-works" data-section="how-it-works">
<FeaturesTimelineCards
tag="Процесс покупки"
title="От выбора до доставки"
description="Сделать заказ у нас просто и приятно."
items={[
{
title: "Выбор моделей", description: "Изучите наш онлайн-каталог и сохраните понравившиеся образы.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-man-working-laptop_23-2148539780.jpg"
},
{
title: "Консультация", description: "Свяжитесь с нами, чтобы уточнить параметры и наличие размеров.", imageSrc: "http://img.b2bpic.net/free-photo/clothing-store-smiling-client-assistant-discussing-apparel-style-while-browsing-through-rack-african-american-man-showing-outfit-mall-customer-giving-fashion-advice_482257-71789.jpg"
},
{
title: "Доставка", description: "Получите ваш заказ с возможностью примерки и оплаты после получения.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-delivery-man-wearing-mask_23-2148767139.jpg"
},
]}
/>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesMediaCards from "@/components/sections/features/FeaturesMediaCards";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<FeaturesMediaCards
tag="Коллекции"
title="Основа вашего гардероба"
description="Найдите свой идеальный образ для работы, отдыха и торжественных случаев."
items={[
{
title: "Костюмы", description: "Идеальная посадка для официальных встреч и важных событий.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-choosing-clothes-shop_1303-19711.jpg"
},
{
title: "Smart Casual", description: "Комфорт для повседневной жизни без потери стиля.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-office-center_1303-19605.jpg"
},
{
title: "Верхняя одежда", description: "Пальто и куртки, которые защищают от непогоды и выглядят статусно.", imageSrc: "http://img.b2bpic.net/free-photo/young-handsome-man-with-winter-clothes-walking-street_1303-20158.jpg"
},
{
title: "Трикотаж", description: "Мягкие ткани и выверенный силуэт для ваших будней.", imageSrc: "http://img.b2bpic.net/free-photo/fashionable-man-winter-knitted-clothes_158595-4105.jpg"
},
{
title: "Аксессуары", description: "Детали, которые расставляют акценты в вашем образе.", imageSrc: "http://img.b2bpic.net/free-photo/morning-groom_1303-11598.jpg"
},
{
title: "Обувь", description: "Кожаная обувь ручной работы для завершения идеального лука.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-shoes_1150-10719.jpg"
},
]}
/>
</div>
);
}

View File

@@ -0,0 +1,31 @@
// 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 TestimonialRatingCards from "@/components/sections/testimonial/TestimonialRatingCards";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<TestimonialRatingCards
tag="Отзывы"
title="Что говорят наши клиенты"
description="Мы гордимся доверием наших покупателей."
testimonials={[
{
name: "Александр В.", role: "Бизнесмен", quote: "Лучший магазин мужской одежды в городе. Костюмы сидят идеально, а сервис на высшем уровне.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/businessman-smiling-looking-camera_23-2148112827.jpg"
},
{
name: "Дмитрий С.", role: "Архитектор", quote: "Нашел здесь отличный набор для smart casual. Качество материалов порадовало.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/men-s-fashion-portrait-confident-handsome-african-american-guy-stylish-leather-jacket-sunglasses-posing-neon-lighting-purple-studio-background_231208-14381.jpg"
},
{
name: "Игорь М.", role: "Маркетолог", quote: "Всегда нахожу здесь что-то новое для своего образа. Доставка работает как часы.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-pensive-african-american-man-dressed-classic-brown-jacket-standing-studio-dark-background_613910-17787.jpg"
},
]}
/>
</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 "why-choose" section.
import React from 'react';
import FeaturesAlternatingSplit from "@/components/sections/features/FeaturesAlternatingSplit";
export default function WhyChooseSection(): React.JSX.Element {
return (
<div id="why-choose" data-section="why-choose">
<FeaturesAlternatingSplit
tag="Преимущества"
title="Почему выбирают нас"
description="Каждый клиент — это часть нашей истории успеха."
items={[
{
title: "Персональные консультации", description: "Наши стилисты помогут собрать капсульный гардероб под ваши задачи.", imageSrc: "http://img.b2bpic.net/free-photo/measuring-client-jacket_1098-14928.jpg"
},
{
title: "Гарантия качества", description: "Мы отвечаем за долговечность каждой вещи из нашей коллекции.", imageSrc: "http://img.b2bpic.net/free-photo/textured-fabric-close-up-grey-shades-linen-texture-background_84443-55389.jpg"
},
{
title: "Доставка и примерка", description: "Привезем несколько размеров для примерки в удобное для вас время.", imageSrc: "http://img.b2bpic.net/free-photo/young-happy-asian-couple-moving-their-new-home-open-boxes-check-old-objects-from-old-home_7861-762.jpg"
},
]}
/>
</div>
);
}