Initial commit: YourHouse project
This commit is contained in:
157
src/components/AboutSection.tsx
Normal file
157
src/components/AboutSection.tsx
Normal file
@ -0,0 +1,157 @@
|
||||
'use client';
|
||||
|
||||
import Image from 'next/image';
|
||||
import { useState } from 'react';
|
||||
import FadeInSection from './FadeInSection';
|
||||
import ContactModal from './ContactModal';
|
||||
|
||||
const AboutSection = () => {
|
||||
const [isContactModalOpen, setIsContactModalOpen] = useState(false);
|
||||
|
||||
const stats = [
|
||||
{ number: "15+", label: "Лет на рынке", icon: "🏗️" },
|
||||
{ number: "244", label: "Заказчика остались довольны", icon: "😊" },
|
||||
{ number: "5", label: "Проектов выполнено за последний месяц", icon: "⚡" },
|
||||
{ number: "100%", label: "Гарантия качества", icon: "✅" }
|
||||
];
|
||||
|
||||
const features = [
|
||||
{
|
||||
icon: "🎯",
|
||||
title: "Индивидуальный подход",
|
||||
description: "Каждый проект разрабатывается с учетом пожеланий клиента"
|
||||
},
|
||||
{
|
||||
icon: "🛡️",
|
||||
title: "Качественные материалы",
|
||||
description: "Используем только проверенные материалы от надежных поставщиков"
|
||||
},
|
||||
{
|
||||
icon: "⏰",
|
||||
title: "Соблюдение сроков",
|
||||
description: "Строго придерживаемся согласованных временных рамок"
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<section id="about" className="relative py-20 bg-gradient-to-br from-gray-900 via-gray-800 to-gray-900 overflow-hidden">
|
||||
{/* Статичный фон */}
|
||||
<div className="absolute inset-0 opacity-10">
|
||||
<div className="absolute top-1/4 left-1/4 w-96 h-96 bg-blue-500 rounded-full blur-3xl"></div>
|
||||
<div className="absolute bottom-1/4 right-1/4 w-80 h-80 bg-purple-500 rounded-full blur-3xl"></div>
|
||||
<div className="absolute top-1/2 left-1/2 w-64 h-64 bg-cyan-500 rounded-full blur-3xl opacity-20"></div>
|
||||
</div>
|
||||
|
||||
<div className="container mx-auto px-4 relative z-10">
|
||||
{/* Заголовок секции */}
|
||||
<FadeInSection as="div" className="text-center mb-16">
|
||||
<h2 className="text-4xl md:text-5xl font-bold bg-gradient-to-r from-white via-blue-100 to-white bg-clip-text text-transparent mb-4">
|
||||
О компании Ваш Дом
|
||||
</h2>
|
||||
<div className="w-24 h-1 bg-gradient-to-r from-blue-500 to-purple-500 mx-auto rounded-full"></div>
|
||||
</FadeInSection>
|
||||
|
||||
{/* Основной контент */}
|
||||
<div className="grid lg:grid-cols-2 gap-16 items-center mb-20">
|
||||
{/* Изображение */}
|
||||
<FadeInSection as="div" className="relative group">
|
||||
<div className="relative h-[500px] w-full rounded-2xl overflow-hidden">
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-gray-900/80 via-transparent to-transparent z-10"></div>
|
||||
<Image
|
||||
src="/images/company.jpg"
|
||||
alt="О нашей компании"
|
||||
fill
|
||||
className="object-cover transition-transform duration-700 group-hover:scale-110"
|
||||
/>
|
||||
{/* Декоративные элементы */}
|
||||
<div className="absolute -top-4 -left-4 w-24 h-24 bg-gradient-to-br from-blue-500/30 to-purple-500/30 rounded-full blur-xl"></div>
|
||||
<div className="absolute -bottom-4 -right-4 w-32 h-32 bg-gradient-to-br from-purple-500/30 to-blue-500/30 rounded-full blur-xl"></div>
|
||||
</div>
|
||||
</FadeInSection>
|
||||
|
||||
{/* Текстовый контент */}
|
||||
<FadeInSection as="div" delay={0.2}>
|
||||
<div className="space-y-8">
|
||||
<div className="space-y-6">
|
||||
<h3 className="text-2xl font-bold text-white">
|
||||
Строим дома вашей мечты
|
||||
</h3>
|
||||
<p className="text-gray-300 leading-relaxed text-lg">
|
||||
Мы - команда профессионалов с более чем 10-летним опытом в строительстве
|
||||
современных домов. Наша миссия - создавать качественное и комфортное
|
||||
жилье для наших клиентов, используя передовые технологии и материалы.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* Особенности */}
|
||||
<div className="space-y-4">
|
||||
{features.map((feature, index) => (
|
||||
<FadeInSection key={index} delay={0.3 + index * 0.1}>
|
||||
<div className="flex items-start space-x-4 p-4 rounded-xl bg-white/5 backdrop-blur-sm border border-white/10 hover:bg-white/10 transition-all duration-300 group">
|
||||
<div className="text-2xl group-hover:scale-110 transition-transform duration-300">
|
||||
{feature.icon}
|
||||
</div>
|
||||
<div>
|
||||
<h4 className="font-semibold text-white mb-1">{feature.title}</h4>
|
||||
<p className="text-gray-400 text-sm">{feature.description}</p>
|
||||
</div>
|
||||
</div>
|
||||
</FadeInSection>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</FadeInSection>
|
||||
</div>
|
||||
|
||||
{/* Статистика */}
|
||||
<FadeInSection as="div" delay={0.4}>
|
||||
<div className="grid grid-cols-2 lg:grid-cols-4 gap-6">
|
||||
{stats.map((stat, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className="group relative p-6 rounded-2xl bg-gradient-to-br from-white/10 to-white/5 backdrop-blur-md border border-white/20 hover:border-white/40 transition-all duration-500 hover:scale-105 hover:-translate-y-2"
|
||||
>
|
||||
{/* Фон */}
|
||||
<div className="absolute inset-0 rounded-2xl bg-gradient-to-br from-blue-500/20 to-purple-500/20 opacity-0 group-hover:opacity-100 transition-opacity duration-500"></div>
|
||||
|
||||
<div className="relative z-10 text-center">
|
||||
<div className="text-3xl mb-2 group-hover:scale-110 transition-transform duration-300">
|
||||
{stat.icon}
|
||||
</div>
|
||||
<div className="text-3xl font-bold text-white mb-2 group-hover:text-blue-300 transition-all duration-300 drop-shadow-lg">
|
||||
{stat.number}
|
||||
</div>
|
||||
<div className="text-gray-300 text-sm font-medium">
|
||||
{stat.label}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Декоративный элемент */}
|
||||
<div className="absolute top-2 right-2 w-2 h-2 bg-gradient-to-r from-blue-500 to-purple-500 rounded-full opacity-50 group-hover:opacity-100 transition-opacity duration-300"></div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</FadeInSection>
|
||||
|
||||
{/* Призыв к действию */}
|
||||
<FadeInSection as="div" delay={0.6} className="text-center mt-16">
|
||||
<button
|
||||
onClick={() => setIsContactModalOpen(true)}
|
||||
className="inline-flex items-center space-x-2 px-6 py-3 rounded-full bg-gradient-to-r from-blue-500/20 to-purple-500/20 border border-white/20 backdrop-blur-sm hover:scale-105 transition-transform duration-300 cursor-pointer"
|
||||
>
|
||||
<span className="text-white font-medium">Готовы начать строительство?</span>
|
||||
<div className="w-2 h-2 bg-green-400 rounded-full"></div>
|
||||
</button>
|
||||
</FadeInSection>
|
||||
</div>
|
||||
|
||||
{/* Модальное окно */}
|
||||
<ContactModal
|
||||
isOpen={isContactModalOpen}
|
||||
onClose={() => setIsContactModalOpen(false)}
|
||||
/>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default AboutSection;
|
Reference in New Issue
Block a user