From 00f9b24a60d921187221adaf9790704dd439b590 Mon Sep 17 00:00:00 2001 From: Web-serfer Date: Sat, 4 Apr 2026 16:18:55 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9C=C3=90=D0=9D=D0=BE=C3=90=D0=A1=D0=BE?= =?UTF-8?q?=D0=B7=D0=B4=D0=B0=D0=BD=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=20=20Steps?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/home/Hero.astro | 352 +++++++++++++-- frontend/src/components/home/Reviews.astro | 264 ++++++++++++ frontend/src/components/home/Services.astro | 141 +++++-- frontend/src/components/home/Steps.astro | 399 ++++++++++++++++++ frontend/src/components/home/WhyUs.astro | 285 ++++++++++--- .../src/components/layout/header/Header.astro | 120 ++++-- .../components/layout/header/MobileMenu.astro | 35 +- frontend/src/constants.ts | 2 +- frontend/src/pages/index.astro | 6 +- 9 files changed, 1420 insertions(+), 184 deletions(-) create mode 100644 frontend/src/components/home/Reviews.astro create mode 100644 frontend/src/components/home/Steps.astro diff --git a/frontend/src/components/home/Hero.astro b/frontend/src/components/home/Hero.astro index 2774849..8e3b6d8 100644 --- a/frontend/src/components/home/Hero.astro +++ b/frontend/src/components/home/Hero.astro @@ -6,7 +6,7 @@ const titleWhite = "Защитите свои права"; const titleGold = "и водительское удостоверение"; const description = "Профессиональная юридическая помощь при ДТП, спорах с ГИБДД и страховыми компаниями. Работаем на результат в судах ХМАО-Югры."; const btnPrimary = "Бесплатная консультация"; -const btnSecondary = "Наши услуги"; +const btnSecondary = "Мои услуги"; const bgImageUrl = "/images/home/bg_hero.png"; const lawyerImageUrl = "/images/home/heroImg.jpg"; @@ -17,31 +17,33 @@ const lawyerImageUrl = "/images/home/heroImg.jpg";
-
+
{badgeText}

- {titleWhite} + {titleWhite}
- {titleGold} + {titleGold}

-

{description}

+

{description}

-
+
- {btnSecondary} +
-
+
Юрист -
+
20+ ЛЕТ ОПЫТА В ХМАО
@@ -50,6 +52,21 @@ const lawyerImageUrl = "/images/home/heroImg.jpg";
+ + + + /* Уважаем prefers-reduced-motion */ + @media (prefers-reduced-motion: reduce) { + .animate-load, + .hero-image-wrapper.animate-load, + .experience-badge.animate-load { + opacity: 1; + transform: none; + transition: none; + } + + .image-composition::before { + animation: none; + opacity: 1; + } + } + \ No newline at end of file diff --git a/frontend/src/components/home/Reviews.astro b/frontend/src/components/home/Reviews.astro new file mode 100644 index 0000000..d83e56a --- /dev/null +++ b/frontend/src/components/home/Reviews.astro @@ -0,0 +1,264 @@ +--- +// Данные отзывов +const reviews = [ + { + name: "Алексей М.", + car: "Toyota Camry", + text: "Помогли вернуть права после того, как инспектор незаконно составил протокол за встречку. Юрист нашел кучу ошибок в схеме ДТП. Огромное спасибо!", + initial: "А", + color: "bg-blue-100 text-blue-600" + }, + { + name: "Екатерина П.", + car: "Hyundai Solaris", + text: "Страховая выплатила копейки по ОСАГО. Обратилась сюда, сделали независимую экспертизу и через суд взыскали еще 120 тысяч. Профессионалы!", + initial: "Е", + color: "bg-teal-100 text-teal-600" + }, + { + name: "Игорь С.", + car: "Lexus RX", + text: "Грамотно разобрали сложное ДТП на перекрестке. Доказали, что я не виноват, хотя ГИБДД изначально решило иначе. Лучшие в Сургуте.", + initial: "И", + color: "bg-orange-100 text-orange-600" + } +]; + +// Для эффекта бесконечности клонируем элементы (один набор в начало, один в конец) +const displayReviews = [...reviews, ...reviews, ...reviews]; +--- + +
+
+
+ Отзывы клиентов +

Реальные истории водителей из Сургута

+
+
+ +
+
+ + + + +
+
+ {displayReviews.map((review, index) => ( +
+
+
+ {[...Array(5)].map(() => ( + + ))} +
+

+ "{review.text}" +

+
+ +
+
+ {review.initial} +
+
+

{review.name}

+

{review.car}

+
+
+
+ ))} +
+
+ + + +
+
+
+ + + + diff --git a/frontend/src/components/home/Services.astro b/frontend/src/components/home/Services.astro index b435c36..776afa7 100644 --- a/frontend/src/components/home/Services.astro +++ b/frontend/src/components/home/Services.astro @@ -50,24 +50,27 @@ const { } = Astro.props; --- -
+
- {sectionSubtitle} -

{sectionTitle}

+ {sectionSubtitle} +

{sectionTitle}

- {services.map((service: ServiceCard) => ( + {services.map((service: ServiceCard, index: number) => ( {service.type === 'wide-light' &&
} {service.type === 'standard' &&
} @@ -98,6 +101,43 @@ const {
+ + diff --git a/frontend/src/components/home/WhyUs.astro b/frontend/src/components/home/WhyUs.astro index ffa6fc4..7d31d45 100644 --- a/frontend/src/components/home/WhyUs.astro +++ b/frontend/src/components/home/WhyUs.astro @@ -5,7 +5,6 @@ const sectionData = { subtitle: "Почему мы?", title: "Локальная экспертиза в Сургуте", floatingText: "Знаем специфику судов Сургута и регламенты местной полиции изнутри.", - // Плейсхолдер картинки (замените на свою локальную, например src/assets/gavel.jpg) imageUrl: "https://images.unsplash.com/photo-1589829085413-56de8ae18c73?q=80&w=1000&auto=format&fit=crop" }; @@ -13,34 +12,30 @@ const features = [ { title: "Местный опыт", desc: "Мы работаем только в Сургуте и ХМАО. Это позволяет нам знать практику каждого судьи и особенности работы местных отделов ГИБДД.", - // Иконка: Пин на карте icon: `` }, { title: "92% Успешных дел", desc: "Высокий процент выигранных дел по возврату прав и страховым спорам. Работаем на результат, а не на процесс.", - // Иконка: Галочка-бейджик icon: `` }, { title: "Срочный выезд", desc: "Оперативно выезжаем на место ДТП или задержания в любой район города для фиксации нарушений.", - // Иконка: Часы с историей icon: `` } ]; --- -
+
-
-
+
Юридическая практика -
+

{sectionData.floatingText}

@@ -49,13 +44,13 @@ const features = [
- {sectionData.subtitle} -

{sectionData.title}

+ {sectionData.subtitle} +

{sectionData.title}

- {features.map((feature) => ( -
+ {features.map((feature, index) => ( +

{feature.title}

@@ -65,62 +60,150 @@ const features = [ ))}
-
+ + \ No newline at end of file diff --git a/frontend/src/components/layout/header/Header.astro b/frontend/src/components/layout/header/Header.astro index 9d329f6..819276c 100644 --- a/frontend/src/components/layout/header/Header.astro +++ b/frontend/src/components/layout/header/Header.astro @@ -8,17 +8,17 @@ import { COMPANY } from '@constants';
- - \ No newline at end of file + + + \ No newline at end of file diff --git a/frontend/src/components/layout/header/MobileMenu.astro b/frontend/src/components/layout/header/MobileMenu.astro index 895447e..5bd0692 100644 --- a/frontend/src/components/layout/header/MobileMenu.astro +++ b/frontend/src/components/layout/header/MobileMenu.astro @@ -1,5 +1,5 @@ --- -import { NAV_LINKS } from '@constants'; +import { NAV_LINKS, COMPANY } from '@constants'; ---
@@ -60,11 +60,15 @@ import { NAV_LINKS } from '@constants'; - +
@@ -340,7 +344,10 @@ import { NAV_LINKS } from '@constants'; background: rgba(255, 255, 255, 0.05); border-radius: 12px; padding: 1rem; - text-align: center; + display: flex; + flex-direction: column; + align-items: center; + gap: 0.5rem; transition: all 0.3s ease; } @@ -349,26 +356,26 @@ import { NAV_LINKS } from '@constants'; transform: translateY(-2px); } - .contact-icon { - font-size: 1.5rem; - margin-bottom: 0.5rem; - } - .mobile-phone { - display: block; + display: flex; + align-items: center; + gap: 0.5rem; color: #eac26e; - font-size: 1.2rem; + font-size: 1.1rem; font-weight: 700; text-decoration: none; - margin-bottom: 0.25rem; transition: all 0.3s ease; } .mobile-phone:hover { - transform: scale(1.05); color: #f0d68a; } + .phone-icon { + flex-shrink: 0; + color: #eac26e; + } + .contact-label { font-size: 0.75rem; color: rgba(255, 255, 255, 0.6); diff --git a/frontend/src/constants.ts b/frontend/src/constants.ts index a007445..7f067cc 100644 --- a/frontend/src/constants.ts +++ b/frontend/src/constants.ts @@ -10,7 +10,7 @@ export const COMPANY = { name: 'Автоюрист 086', fullName: 'Центр защиты прав водителей "Автоюрист 086"', phone: '+7 (922) 253-83-75', - email: 'info@avtourist086.ru', + email: 'redibedi2019@gmail.com', address: 'г. Сургут, ул. Примерная, д. 1', workHours: 'Пн-Пт: 9:00 - 18:00', } as const; diff --git a/frontend/src/pages/index.astro b/frontend/src/pages/index.astro index 3795c6c..9476bdd 100644 --- a/frontend/src/pages/index.astro +++ b/frontend/src/pages/index.astro @@ -1,9 +1,11 @@ --- import Layout from '@layouts/Layout.astro'; -import { SITE_URL } from '@constants'; import Hero from '@components/home/Hero.astro'; import Services from "@components/home/Services.astro"; +import Steps from "@components/home/Steps.astro"; import WhyUs from "@components/home/WhyUs.astro"; +import Reviews from "@components/home/Reviews.astro"; +import { SITE_URL } from '@constants'; --- + + \ No newline at end of file