From 406bba7d40fcc72b96563ef192dbfdc9cc60306c Mon Sep 17 00:00:00 2001 From: Web-serfer Date: Fri, 10 Apr 2026 01:28:31 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D1=8B=D0=B9=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/README.md | 175 ++++++++++++++---- .../posts/2026/04/car-dealer-dispute.avif | Bin 0 -> 22164 bytes .../src/content/blog/car-dealer-dispute.mdx | 4 +- frontend/src/pages/blog/index.astro | 42 ++++- 4 files changed, 181 insertions(+), 40 deletions(-) create mode 100644 frontend/public/images/posts/2026/04/car-dealer-dispute.avif diff --git a/frontend/README.md b/frontend/README.md index b6de9b9..93c5447 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -1,46 +1,149 @@ -# Astro Starter Kit: Basics +# 🚗 Автоюрист Сургут — Центр защиты прав водителей + +> Профессиональная юридическая помощь для автомобилистов в Сургуте + +![Автоюрист Сургут](/public/images/home/avtourist-surgut.avif) + +**🌐 Сайт:** [avtourist-surgut.ru](https://avtourist-surgut.ru/) + +--- + +## О проекте + +**Автоюрист 086** — современный веб-сайт юридической компании, специализирующейся на защите прав водителей. Сайт предоставляет информацию об услугах, реальных кейсах, отзывах клиентов и полезных материалы в блоге. + +### 📍 Контакты + +- **Адрес:** г. Сургут, пр. Комсомольский, д. 19 +- **Телефон:** [+7 (922) 253-83-75](tel:+79222538375) +- **Email:** [redibedi2019@gmail.com](mailto:redibedi2019@gmail.com) +- **Часы работы:** Пн-Пт: 9:00 - 18:00 + +--- + +## 🚀 Технологии + +| Технология | Назначение | +|------------|------------| +| [Astro 6](https://astro.build/) | Фреймворк для серверного рендеринга | +| [Tailwind CSS 4](https://tailwindcss.com/) | Утилитарный CSS-фреймворк | +| [MDX](https://mdxjs.com/) | Контент с JSX-компонентами | +| [Node.js](https://nodejs.org/) | Серверный адаптер (standalone) | +| [TypeScript](https://www.typescriptlang.org/) | Типизация | + +--- + +## 📁 Структура проекта -```sh -bun create astro@latest -- --template basics ``` - -> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! - -## 🚀 Project Structure - -Inside of your Astro project, you'll see the following folders and files: - -```text -/ +frontend/ ├── public/ -│ └── favicon.svg -├── src -│   ├── assets -│   │   └── astro.svg -│   ├── components -│   │   └── Welcome.astro -│   ├── layouts -│   │   └── Layout.astro -│   └── pages -│   └── index.astro -└── package.json +│ ├── images/ # Изображения по разделам +│ │ ├── blog/ # Для блога +│ │ ├── cases/ # Для кейсов +│ │ ├── contacts/ # Для контактов +│ │ ├── home/ # Для главной страницы +│ │ ├── posts/ # Для постов +│ │ ├── reviews/ # Для отзывов +│ │ └── services/ # Для услуг +│ └── favicons/ # Иконки сайта +├── src/ +│ ├── components/ # Компоненты Astro +│ │ ├── auth/ # Аутентификация +│ │ ├── base/ # Базовые элементы +│ │ ├── blog/ # Компоненты блога +│ │ ├── cases/ # Компоненты кейсов +│ │ ├── home/ # Компоненты главной +│ │ ├── layout/ # Layout-компоненты +│ │ ├── reviews/ # Компоненты отзывов +│ │ └── services/ # Компоненты услуг +│ ├── content/ # Контент (блог, страницы) +│ ├── data/ # Данные (кейсы, отзывы) +│ ├── layouts/ # Основные layouts +│ ├── pages/ # Маршруты (SSR) +│ │ ├── auth/ # Страницы авторизации +│ │ ├── blog/ # Страницы блога +│ │ └── *.astro # Основные страницы +│ ├── styles/ # Глобальные стили +│ ├── constants.ts # Константы сайта +│ └── content.config.ts # Конфигурация контента +├── astro.config.mjs # Конфигурация Astro +└── package.json # Зависимости ``` -To learn more about the folder structure of an Astro project, refer to [our guide on project structure](https://docs.astro.build/en/basics/project-structure/). +--- -## 🧞 Commands +## 📄 Страницы сайта -All commands are run from the root of the project, from a terminal: +| Страница | URL | Описание | +|----------|-----|----------| +| Главная | `/` | Hero-секция, услуги, преимущества | +| Услуги | `/services` | Перечень юридических услуг | +| Кейсы | `/cases` | Реальные дела компании | +| Блог | `/blog` | Полезные статьи для водителей | +| Отзывы | `/reviews` | Отзывы клиентов | +| Контакты | `/contacts` | Адрес, карта, форма связи | +| FAQ | `/faq` | Часто задаваемые вопросы | +| Privacy | `/privacy` | Политика конфиденциальности | +| Terms | `/terms` | Пользовательское соглашение | -| Command | Action | -| :------------------------ | :----------------------------------------------- | -| `bun install` | Installs dependencies | -| `bun dev` | Starts local dev server at `localhost:4321` | -| `bun build` | Build your production site to `./dist/` | -| `bun preview` | Preview your build locally, before deploying | -| `bun astro ...` | Run CLI commands like `astro add`, `astro check` | -| `bun astro -- --help` | Get help using the Astro CLI | +--- -## 👀 Want to learn more? +## 🛠️ Команды -Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). +Все команды выполняются через **Bun** из директории `frontend/`: + +| Команда | Описание | +|---------|----------| +| `bun install` | Установить зависимости | +| `bun dev` | Запустить dev-сервер (`localhost:4321`) | +| `bun build` | Собрать production-версию в `./dist/` | +| `bun preview` | Превью production-сборки | +| `bun astro ...` | Astro CLI команды | + +--- + +## ⚙️ Конфигурация + +Проект работает в режиме **SSR** (Server-Side Rendering) с использованием адаптера **Node.js** в standalone-режиме. + +```js +// astro.config.mjs +output: 'server', +adapter: node({ mode: 'standalone' }), +``` + +--- + +## 📋 Требования + +- **Node.js:** `>=22.12.0` +- **Пакетный менеджер:** [Bun](https://bun.sh/) + +--- + +## 🐳 Docker + +Проект включает [Dockerfile](./Dockerfile) для контейнеризации и удобного развертывания. + +--- + +## 👨‍💻 Разработка + +1. Установите зависимости: + ```bash + bun install + ``` + +2. Запустите dev-сервер: + ```bash + bun dev + ``` + +3. Откройте [http://localhost:4321](http://localhost:4321) + +--- + +## 📝 Лицензия + +Все права защищены © Автоюрист Сургут diff --git a/frontend/public/images/posts/2026/04/car-dealer-dispute.avif b/frontend/public/images/posts/2026/04/car-dealer-dispute.avif new file mode 100644 index 0000000000000000000000000000000000000000..0eddb3630b997a18f64e1759e3f71a1055e34cf3 GIT binary patch literal 22164 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 Ks0eIs@JK+*389Gq literal 0 HcmV?d00001 diff --git a/frontend/src/content/blog/car-dealer-dispute.mdx b/frontend/src/content/blog/car-dealer-dispute.mdx index 8d5ecfd..afb7148 100644 --- a/frontend/src/content/blog/car-dealer-dispute.mdx +++ b/frontend/src/content/blog/car-dealer-dispute.mdx @@ -1,12 +1,12 @@ --- title: "Спор с автосалоном: как вернуть неисправный автомобиль" description: "Права потребителя при покупке автомобиля с дефектами. Закон «О защите прав потребителей» и судебная практика в Сургуте." -author: "Юрист АВ" +author: "Автоюрист" category: "Автосалоны" categoryColor: "bg-gold" date: 2024-02-20 readTime: "11 мин" -imageUrl: "/images/blog/car-dealer-dispute.avif" +imageUrl: "/images/posts/2026/04/car-dealer-dispute.avif" draft: false --- diff --git a/frontend/src/pages/blog/index.astro b/frontend/src/pages/blog/index.astro index 3203a70..10cafe0 100644 --- a/frontend/src/pages/blog/index.astro +++ b/frontend/src/pages/blog/index.astro @@ -114,7 +114,7 @@ const categories = ['Все', ...new Set(posts.map((post: any) => post.data.cate } .blog-card-wrapper { - transition: opacity 0.3s ease, transform 0.3s ease; + transition: opacity 0.3s ease, transform 0.3s ease, display 0.3s ease; } /* ===== RESPONSIVE ===== */ @@ -164,6 +164,44 @@ const categories = ['Все', ...new Set(posts.map((post: any) => post.data.cate }); }; + const setupFilter = () => { + const buttons = document.querySelectorAll('.category-btn'); + const cards = document.querySelectorAll('.blog-card-wrapper'); + const grid = document.getElementById('blog-grid'); + + buttons.forEach((btn) => { + btn.addEventListener('click', (e) => { + e.preventDefault(); + const category = btn.getAttribute('data-category'); + + // Обновляем активную кнопку + buttons.forEach(b => b.classList.remove('active')); + btn.classList.add('active'); + + // Фильтруем карточки + cards.forEach((card) => { + const cardCategory = card.getAttribute('data-category'); + if (category === 'Все' || cardCategory === category) { + card.style.display = ''; + card.style.opacity = '0'; + card.style.transform = 'translateY(20px)'; + requestAnimationFrame(() => { + card.style.transition = 'opacity 0.4s ease, transform 0.4s ease'; + card.style.opacity = '1'; + card.style.transform = 'translateY(0)'; + }); + } else { + card.style.display = 'none'; + } + }); + }); + }); + }; + setupAnimations(); - document.addEventListener('astro:after-swap', setupAnimations); + setupFilter(); + document.addEventListener('astro:after-swap', () => { + setupAnimations(); + setupFilter(); + });