Files
frontend/docs/STRUCTURE.md
T

25 lines
2.0 KiB
Markdown

# Structure
Проект использует FSD-направление импортов: `app -> pages -> features -> entities -> shared`.
- `app` - providers и routes; общий визуальный фундамент принадлежит shared/theme.
- `pages` - страницы маршрутов.
- `features` - пользовательские сценарии, включая authentication.
- `entities` - доменные модели и их UI/API.
- `shared` - переиспользуемый код без доменной логики: API, i18n и UI.
Каждый слайс предоставляет наружу только public API через `index.ts`; внутренние файлы соседний слой не импортирует напрямую.
Для cross-slice imports используйте alias `@/` и public API, например `@/entities/portfolio`. Vite и TypeScript используют одинаковый alias.
`shared/theme/tokens.json` владеет опубликованными токенами и описаниями ролей
в переносимом формате WealthLedger v1. `theme.ts` напрямую адаптирует доверенный
локальный JSON в Mantine без runtime-схемы. `shared/theme/index.ts` экспортирует theme,
designTokens, семантические color roles и CSSVariablesResolver и подключает
базовые styles. App и Storybook подключают свои MantineProvider к этому public API.
Внешние системы читают raw JSON напрямую, без frontend barrel и его runtime.
Неопубликованные defaults остаются у Mantine, локальные domain styles — у владельцев.
`shared/ui` предоставляет
StateView и LoadingSkeleton; их каталог не включает route-aware AppShell.
Подробнее: [дизайн-система](../../docs/development/design-system.md).