21 lines
1.6 KiB
Markdown
21 lines
1.6 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/index.ts` экспортирует единую Mantine theme, семантические color
|
|
roles и CSSVariablesResolver и подключает базовые styles. App и Storybook
|
|
подключают свои MantineProvider к этому public API. Scales принимаются из Mantine,
|
|
локальные domain styles остаются у владельцев. `shared/ui` предоставляет
|
|
StateView и LoadingSkeleton; их каталог не включает route-aware AppShell.
|
|
Подробнее: [дизайн-система](../../docs/development/design-system.md).
|