2026-03-28 21:15:15 +03:00
# NextJS Style Guide
2026-01-29 16:00:19 +03:00
2026-04-26 15:04:10 +03:00
Соглашения по разработке Next.js проектов: архитектура и слои приложения, структура кода, организация модулей, стилизация, типизация и инфраструктура.
2026-01-29 16:00:19 +03:00
2026-04-27 12:04:34 +03:00
Сайт: https://nextjs-style-guide.gromlab.ru
2026-04-26 15:04:10 +03:00
## Использование
2026-04-25 21:26:45 +03:00
2026-04-26 15:04:10 +03:00
**Для AI-агентов:**
2026-04-25 21:26:45 +03:00
2026-04-27 12:04:34 +03:00
- [llms.txt ](https://nextjs-style-guide.gromlab.ru/llms.txt ) — Карта разделов, оглавление с о ссылками на разделы.
- [llms-full.txt ](https://nextjs-style-guide.gromlab.ru/llms-full.txt ) — Вся документация одним файлом.
2026-04-25 21:26:45 +03:00
2026-04-26 15:04:10 +03:00
**Для проекта:**
2026-04-25 21:26:45 +03:00
2026-04-27 12:04:34 +03:00
- [nextjs-style-guide.zip ](https://nextjs-style-guide.gromlab.ru/nextjs-style-guide.zip ) — Н а б о р Markdown-файлов для распаковки в `./ai/nextjs-style-guide/` или другую папку проекта.
2026-04-25 21:26:45 +03:00
2026-04-26 15:04:10 +03:00
## Структура документации
2026-01-29 16:00:19 +03:00
2026-04-26 15:04:10 +03:00
### Workflow
2026-01-29 16:00:19 +03:00
2026-04-27 12:04:34 +03:00
[Workflow ](docs/docs/workflow.md ) — пошаговая карта типовых задач: с чего начать, как добавить страницу/компонент, как подключить данные, стили, локализацию.
2026-03-28 21:15:15 +03:00
2026-04-26 15:04:10 +03:00
### Базовые правила
2026-03-28 21:15:15 +03:00
2026-04-26 15:04:10 +03:00
**Каким должен быть код** — стандарты, не привязанные к конкретной технологии.
2026-03-28 21:15:15 +03:00
2026-04-26 15:04:10 +03:00
| Раздел | Отвечает на вопрос |
|--------|-------------------|
| Технологии и библиотеки | Какой стек используем? |
| Именование | Как называть файлы, переменные, компоненты, хуки? |
2026-04-27 12:04:34 +03:00
| Архитектура: Обзор | Что такое SLM и зачем она нужна? |
| Архитектура: Слои | Какие слои есть и как между ними устроены зависимости? |
| Архитектура: Модули | Что такое модуль и как он устроен? |
| Архитектура: Сегменты | Какие сегменты есть внутри модуля? |
| Стиль кода | Как оформлять код: отступы, кавычки, импорты, early return? |
2026-04-26 15:04:10 +03:00
| Документирование | Как писать JSDoc: что документировать, а что нет? |
| Типизация | Как типизировать: type vs interface, any/unknown? |
2026-03-28 21:15:15 +03:00
2026-04-27 12:04:34 +03:00
### Установка и настройка
**Как поднять и сконфигурировать проект** — пошаговая настройка инструментов и инфраструктуры.
2026-03-28 21:15:15 +03:00
2026-04-27 12:04:34 +03:00
| Раздел | Отвечает на вопрос |
|--------|-------------------|
| Создание проекта: Из шаблона | Как начать проект из готового шаблона? |
| Создание проекта: Вручную | Как поднять проект с нуля без шаблона? |
| Next.js | Как настроить Next.js под проект? |
| Алиасы | Как настроить путевые алиасы импортов? |
| Biome | Как настроить Biome (линтер и форматер)? |
| Стили | Как подключить и настроить стили проекта? |
| PostCSS | Какие плагины PostCSS нужны и как их настроить? |
| SVG-спрайты | Как настроить генерацию SVG-спрайтов? |
| Шаблоны генерации | Как подключить шаблоны для кодогенерации? |
| VS Code | Как настроить редактор для проекта? |
### Использование
**Как это устроено и как этим пользоваться** — структура, примеры и правила для конкретных областей.
2026-04-26 15:04:10 +03:00
| Раздел | Отвечает на вопрос |
|--------|-------------------|
| Структура проекта | Как организованы папки и файлы по SLM? |
| Компоненты | Как устроен компонент: файлы, пропсы, clsx? |
2026-04-27 12:04:34 +03:00
| Страницы (App Router) | Как описывать layout, page, loading, error, not-found? |
| Данные: Введение | Как устроена работа с данными в проекте? |
| Данные: REST: Клиенты: Автоматическая генерация | Как сгенерировать REST-клиент автоматически из OpenAPI? |
2026-04-28 10:52:09 +03:00
| Данные: REST: Клиенты: Ручное создание | Как написать REST-клиент вручную? |
2026-04-27 12:04:34 +03:00
| Данные: REST: Получение данных: Серверные компоненты | Как получать данные в серверных компонентах? |
| Данные: REST: Получение данных: Клиентские компоненты | Как получать данные в клиентских компонентах (SWR)? |
| Данные: Realtime | Как работать с realtime-каналами и сокетами? |
2026-04-26 15:04:10 +03:00
| Шаблоны и генерация кода | Как работают шаблоны, синтаксис и инструменты генерации? |
| Стили | Как писать CSS: PostCSS Modules, вложенность, медиа, токены? |
| Изображения | _(не заполнен)_ |
2026-04-27 12:04:34 +03:00
| SVG-спрайты | Как использовать SVG-спрайты в коде? |
2026-04-26 15:04:10 +03:00
| Видео | _(не заполнен)_ |
| Stores | _(не заполнен)_ |
| Хуки | _(не заполнен)_ |
| Шрифты | _(не заполнен)_ |
| Локализация | _(не заполнен)_ |