Frontend и design systems
Frontend и design systems
У REMCOD несколько UI runtimes, но один backend access model.
Web
apps/web: Next.js App Router + React + Tailwind + shadcn/ui. Базовые controls/layout primitives берутся из components/ui; доменные компоненты собираются поверх них. Product logic не переносится в primitive layer.
Expo
Корневое React Native приложение — PWA/RuStore surface. Использует Expo Router, существующие mobile components и server-driven access. Offline/idempotency behavior не должен создавать второй backend.
Native iOS/watchOS
apps/ios-native: SwiftUI/XcodeGen и собственный native design-system layer (Remcod/Core/DesignSystem). Права UI берутся через AuthSession.can(_:) из server-provided effectivePermissions.
Общие UX-инварианты
- loading/empty/denied/offline/error states явные;
- запрещённое действие скрывается/не предлагается до server check, но клиентская проверка не заменяет backend RBAC;
- после важных mutations UI перечитывает authoritative state;
- деньги форматируются через профильные общие formatter-компоненты;
- accessibility/responsive проверяются в каждом runtime своим нативным способом.
Правила web — apps/web/AGENTS.md, native Apple — apps/ios-native/AGENTS.md, общие design rules — DESIGN.md.