feat: Грибы Крыма — полная энциклопедия и справочник грибника

- Энциклопедия 20 видов грибов Крыма с детальными описаниями
- Интерактивный календарь грибника по месяцам
- Справочник: правила сбора, первая помощь, кулинария
- Поиск и фильтрация по съедобности и сезону
- Адаптивный дизайн, природная цветовая палитра
- Docker-конфигурация для деплоя

Tech: Next.js 15, TypeScript, Tailwind CSS 4, React 19
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Денис Шкабатур
2026-02-11 13:05:24 +03:00
parent 08263135dd
commit 72e07dad3d
28 changed files with 2598 additions and 104 deletions

View File

@@ -0,0 +1,29 @@
---
description: React component patterns for the project
globs: "**/*.tsx"
alwaysApply: false
---
# Component Patterns
## Structure
```tsx
// 1. Imports
// 2. Types/Interfaces
// 3. Component
// 4. Sub-components (if small)
```
## Rules
- Extract reusable logic into custom hooks (`src/hooks/`)
- Colocate component-specific types with the component
- Use `cn()` utility for conditional classNames
- Prefer composition over prop drilling
- Server Components by default, add `'use client'` only when needed
- Keep components under 150 lines — extract if larger
## Accessibility
- All images must have descriptive `alt` text
- Interactive elements must be keyboard-accessible
- Use proper heading hierarchy (h1 → h2 → h3)
- Color contrast ratio ≥ 4.5:1