1.8 KiB
title, status, normative
| title | status | normative |
|---|---|---|
| Слой UI | draft | true |
Слой UI
ui содержит reusable presentation modules без product scenario и product ownership.
Примеры
ui/
├── button/
├── input/
├── icon/
├── modal/
├── carousel/
├── tabs/
└── tooltip/
Правила
SLM-BASE-UI-001 - ОБЯЗАН. UI module должен быть применим без product-specific knowledge.
SLM-BASE-UI-002 - ЗАПРЕЩЕНО. UI module не может импортировать compositions, app или product-specific infra.
SLM-BASE-UI-003 - МОЖЕТ. UI module может импортировать public API других UI modules и shared.
SLM-BASE-UI-004 - ЗАПРЕЩЕНО. UI module не выбирает product data source, не вызывает product scenario и не владеет multi-module behavior.
SLM-BASE-UI-005 - МОЖЕТ. UI module может владеть локальным interaction state, необходимым только для собственной presentation mechanics.
SLM-BASE-UI-006 - ОБЯЗАН. Компонент с product semantics должен принадлежать владеющему product module, а не ui.
Классификация
| Сущность | Владелец |
|---|---|
Button, Input, Modal |
ui |
LoginForm одной auth responsibility |
Владеющий product module |
| Application header | compositions |
| Generic date picker | ui |
| Medication schedule | Владеющий product module согласно ownership |
Универсальность определяется отсутствием product knowledge, а не количеством текущих consumers.