Files
nextjs-template/README.md
S.Gromov bf792f6159 refactor: привести шаблон к правилам стайлгайда
- Архитектура SLM: провайдеры перенесены в infrastructure/mantine, стили в shared/styles
- SVG-спрайты: переход на @gromlab/svg-sprites, добавлен preload в layout
- Стили: переменные и брейкпоинты приведены к базовому набору стайлгайда (rem, Mobile First)
- PostCSS: добавлены postcss-custom-media, postcss-nesting, autoprefixer, @csstools/postcss-global-data
- tsconfig: исправлен алиас shared/* → ./src/shared/*
- Удалены app/styles/, app/providers/, scripts/create-svg-sprite.js, public/img/sprites/
- README переписан на SLM-архитектуру
- Добавлены иконки: clipboard-tick, doctor, people, symptom
2026-04-30 19:24:40 +03:00

2.7 KiB
Raw Blame History

Next.js Template

Шаблон проекта на Next.js, построенный по стайлгайду.

Стек

  • Next.js 16 — фреймворк
  • React 19 / TypeScript 5 — UI и типизация
  • Mantine UI 8 — компоненты
  • Zustand 5 — глобальное состояние
  • SWR 2 — получение данных
  • PostCSS Modules — стили
  • Biome — линтер и форматтер
  • clsx — конкатенация CSS-классов

Архитектура

Проект использует SLM Design — модульную архитектуру с вертикальной организацией домена.

src/
├── app/            # Роутинг Next.js и точка входа приложения
├── layouts/        # Каркасы страниц (header, footer, sidebar)
├── screens/        # Контент конкретных страниц
├── widgets/        # Составные блоки интерфейса, не привязанные к домену
├── business/       # Бизнес-домены (auth, catalog, orders)
├── infrastructure/ # Техсервисы (theme, i18n, API-адаптеры)
├── ui/             # UI-кит без бизнес-логики
└── shared/         # Общие ресурсы (утилиты, типы, стили, спрайты)

Зависимости идут строго сверху вниз: app[layouts | screens]widgetsbusinessinfrastructureuishared.

Подробнее: Архитектура SLM.

Быстрый старт

npx tiged git@gromlab.ru:templates/nextjs.git my-app
cd my-app
npm install
npm run dev

Генерация кода

Модули создаются из шаблонов .templates/:

npx @gromlab/create module auth src/business
npx @gromlab/create widget header src/widgets
npx @gromlab/create layout admin src/layouts
npx @gromlab/create screen profile src/screens
npx @gromlab/create module button src/ui
npx @gromlab/create store auth src/shared

Скрипты

Команда Описание
npm run dev Запуск dev-сервера
npm run build Сборка для продакшена
npm run start Запуск продакшен-сервера
npm run lint Проверка кода (Biome)
npm run format Форматирование кода (Biome)
npm run sprite Генерация SVG-спрайтов