Files
EvoFirewall/docs/ui-design-contract.md
T
2026-07-20 19:28:56 +07:00

2.8 KiB

UI Design Contract (EvoFirewall)

Единый контракт ops-приложений семейства (vps-tracker / CFDM / EvoBGP / EvoFirewall). Surface: ReUI Frame. Kit: apps/web/src/components/reui-kit/.

Карта: llms.txt · Styling · License · Blocks · MCP · Agent skills

Surface

Project lock: surface: frame. Ops / list / dashboard / detail / settings — только Frame, не shadcn Card как shell. Не смешивать Card и Frame на одном ops-экране.

Canonical PRO references

Зона Block Preview
Shell app-shell-12 https://reui.io/preview/base/app-shell-12
KPI stats-12 https://reui.io/preview/base/stats-12
Dashboard dashboard-1 https://reui.io/preview/base/dashboard-1
Lists data-grid-filtering-2 https://reui.io/preview/base/data-grid-filtering-2
Settings settings-16 https://reui.io/preview/base/settings-16
Auth auth-13 https://reui.io/preview/base/auth-13
Empty empty-state-12 https://reui.io/preview/base/empty-state-12
Forms form-7 → Sheet https://reui.io/preview/base/form-7

Kit API (reui-kit/) — целевой

Component Role
ResourcePage Frame + line tabs + Filters + DataGrid
KpiStatGrid KPI tiles
OpsDashboard KPI + charts + attention
SettingsShell settings nav + Outlet
DetailPanel detail Frame sections

Shared App Shell chrome

Эталон: EvoBGP / CFDM + app-shell-12.

Токен / зона Значение
--sidebar-width 240px
Header h-12, sticky, border-b
main gap-4 md:gap-6, px-4 py-4 md:px-6 md:py-5

App Switcher: auth-portal GET /api/v1/app-switcher. Планируемый app id: fw.

MCP workflow

  1. MCP user-reuisearch / get_block / get_component with surface: "frame"
  2. Cite previewUrl + docsUrl
  3. CLI from apps/web: pnpm dlx shadcn@latest add @reui/...
  4. Adapt into kit — do not hand-roll KPI/grid/settings
  5. validate_usage / get_audit_checklist

Primitives: MCP plugin-shadcn-shadcn + @evofw/ui.

License

# apps/web/.env.local
REUI_LICENSE_KEY=

apps/web/components.jsonAuthorization: Bearer ${REUI_LICENSE_KEY}.

Forbidden

  • Card as ops list/dashboard shell
  • Hand-rolled tables when ReUI DataGrid exists
  • Hand-rolled KPI when KpiStatGrid exists
  • Mixing Card and Frame on one ops screen
  • Raw bg-emerald-* / space-y-*