# Launch-Ready UI/UX Roadmap Last updated: 2026-05-08 ## Purpose This roadmap defines the concrete path to make the trading product launch-ready from a UI, UX, accessibility, and platform-reuse perspective. It covers two repositories that must move together: - Product repo: `/Users/saravana/BytelystAI/learning_ai/learning_ai_invt_trdg` - Shared platform repo: `/Users/saravana/BytelystAI/learning_ai/learning_ai_common_plat` The goal is not a styling pass. The goal is a durable product system: - The trading app should feel like a polished operational SaaS console. - Shared UI quality should live in common platform, not in product-only CSS. - Local development and production builds should resolve ByteLyst packages predictably without depending on Gitea package auth. - Future ByteLyst products should be able to reuse the same primitives without inheriting trading-specific assumptions. ## Current Evidence This roadmap is based on a review of the current product and common-platform source trees. Product frontend facts: - Main app entry: `web/src/App.tsx`, `web/src/main.tsx` - Shell: `web/src/components/layout/AppShell.tsx`, `Header.tsx`, `Sidebar.tsx`, `RightPanel.tsx` - Product UI adapter: `web/src/components/ui/Primitives.tsx` - Global style surface: `web/src/index.css`, `web/src/App.css` - Major views: `HomeView`, `PortfolioView`, `ResearchView`, `SimpleView`/Trade Plans, `MarketsView`, `ScreenerView`, `WatchlistView`, `AlertsView`, `SettingsView` - Major tabs/components: `PositionsTab`, `EntriesTab`, `BacktestTab`, `AdminTab`, `ConfigTab`, `MarketplaceTab`, strategy builder/editor components, auth/reset components, chat assistant components - Current package resolution uses local file references and pnpm hooks for ByteLyst packages. - `pnpm audit:ui` currently reports zero findings for raw controls, legacy classes, hardcoded colors, and direct common UI imports outside the product adapter. Common platform facts: - Shared UI package exists at `packages/ui` - Shared tokens exist at `packages/design-tokens` - Shared auth UI exists at `packages/auth-ui` - Dashboard shell exists at `packages/dashboard-shell` - Useful common UI primitives already exist: `AppShell`, `Button`, `IconButton`, `Card`, `Panel`, `Surface`, `Field`, `Input`, `Textarea`, `Select`, `Tabs`, `SegmentedControl`, `Badge`, `StatusBadge`, `Timeline`, `DataTable`, `DataList`, `EmptyState`, `Toast`, `Modal`, `ConfirmDialog`, `DropdownMenu`, `Tooltip`, `Skeleton`/loading helpers - Common platform still contains many `publishConfig.registry` references to the Gitea npm registry and a release script tied to Gitea naming. This conflicts with the desired local-package-first development model. ## Product Standard The target experience is a calm, modern, professional trading operations console: - Clean, contemporary SaaS UI with strong hierarchy and restrained visual treatment. - Dense enough for trading workflows, but never cramped or visually noisy. - Consistent navigation, page headers, tabs, forms, tables, cards, badges, alerts, dialogs, empty states, and loading states. - Clear primary actions and obvious next steps. - Predictable behavior under loading, empty, error, disabled, pending, success, and destructive-action states. - Responsive layouts across phone, tablet, desktop, and wide desktop. - Accessible by keyboard and screen readers, with visible focus and readable contrast. - No global overlays covering primary content or form controls. ## Non-Negotiables - Shared primitives come from `learning_ai_common_plat`. - Product-specific styling goes through the product adapter in `web/src/components/ui/Primitives.tsx`. - Product routes should not import `@bytelyst/ui` directly except through the adapter layer. - Product routes should not use raw `