Docker images / prepare-release (push) Successful in 8s
Docker images / backend-image (push) Successful in 1m31s
Docker images / frontend-image (push) Successful in 2m11s
Docker images / notify-webhook (push) Skipped
Docker images / updater-image (push) Successful in 40s
Docker images / publish-release (push) Successful in 10s
Добавить ui-design-contract, AlertDialog вместо hand-roll, CodeExportSheet для preview фильтров, ReUI Badge и gap вместо space-y. Co-authored-by: Cursor <[email protected]>
2.9 KiB
2.9 KiB
UI Design Contract (MikrotikManager)
Surface: ReUI Frame. Kit: components/reui-kit/.
Иерархия: ReUI PRO > shadcn primitives.
Стек: Next.js 16 App Router + Turbopack + shadcn base-nova + ReUI @reui.
Карта: docs · llms.txt · Get Started · Styling · Blocks · MCP
Surface
Project lock: surface: frame. Ops / list / dashboard / detail / settings — только Frame, не shadcn Card как page shell. Не смешивать Card и Frame на одном ops-экране.
Эталон CRUD: app/(main)/servers.
Оболочка списков: DataPageCard → Frame. Панели: OpsPanel → Frame.
Canonical PRO references
Kit (components/reui-kit/)
| Component | Role |
|---|---|
KpiStatGrid |
Hybrid KPI (IconTile elevated size-10.5) |
CodeExportSheet |
Экспорт кода (.rsc / .conf) — Sheet + Frame + ScrollArea |
Слои:
| Слой | Путь |
|---|---|
| shadcn | components/ui/ |
| ReUI CLI | components/reui/ |
| Kit | components/reui-kit/ |
| Domain grids | components/data-grids/ |
Shared App Shell chrome
| Токен / зона | Значение |
|---|---|
--sidebar-width |
240px |
| Header right | AppsMenu → SystemMonitorPopover (тема — в NavUser) |
| Search | ⌘K / Ctrl+K only |
main |
gap-4 md:gap-6, px-4 py-4 md:px-6 md:py-5 |
Spacing & tokens
flex+gap-*— неspace-y-*/space-x-*- Semantic tokens / ReUI Badge variants — не raw
bg-emerald-*/ hex - Max 1 primary CTA на экран
Exceptions (не Frame ops shell)
network-map— canvas / topology UXterminal— terminal chrome
Forbidden
- Card как ops list/dashboard shell
- Hand-roll data-grid / KPI / code-export при наличии kit
- Дубль Copy в header + footer export sheet
- Mixing Card и Frame на одном ops-экране
- Radix-варианты docs — только Base UI (
base-nova)
License
# .env.local (gitignored)
REUI_LICENSE_KEY=
components.json → @reui с Authorization: Bearer ${REUI_LICENSE_KEY}.