# Invest Copilot — Open Design Integration Guide ## What is Open Design? Open Design is an open-source, local-first design tool that uses AI coding agents to generate: - **UI/UX mockups** — HTML/CSS prototypes from natural language - **Brand design systems** — Color palettes, typography, spacing, component styles - **Visual directions** — Curated design moods (editorial, modern minimal, tech utility, etc.) - **Interactive prototypes** — Clickable HTML/CSS that can be directly used as starting points - **Export formats** — HTML, PDF, PPTX, MP4 It runs on any coding agent CLI (Claude Code, Codex, Cursor, Qwen, Hermes, etc.) and uses brand-grade design systems (Stripe, Linear, Vercel, Apple, etc.) as visual foundations. ## How Open Design Fits Into Our Project ### Phase 1: Visual Design Direction (Week 1) **Goal**: Define the visual identity of Invest Copilot using Open Design. ``` Command pattern for Hermes/other CLI agents: "Using Open Design, generate a visual direction for an AI-native investment copilot app. Target audience: retail investors, ages 25-45, tech-savvy. Design constraints: - Dark mode primary (trading platforms default to dark) - Data-dense but not cluttered (like Bloomberg but modern) - Mobile-first responsive layouts - Financial data visualization (charts, heatmaps, tables) - Color palette: professional finance (deep navy, electric blue accents, green/red for gains/losses) - Brand tone: trustworthy, intelligent, cutting-edge - Reference: Bloomberg Terminal meets Linear.app meets TradingView Generate 3 visual directions with: 1. Color palette in CSS custom properties (OKLch recommended by Open Design) 2. Font stack recommendation 3. Component style definitions 4. Layout spacing scale 5. Example chart and data table styling" ``` ### Phase 2: UI Mockup Generation (Week 1-2) **Goal**: Generate HTML/CSS prototypes for each key screen. Screens to generate: 1. **Dashboard** — Watchlist overview with portfolio summary 2. **Stock Search & Profile** — Search bar, stock cards, detailed profile view 3. **Stock Detail Page** — Charts (OHLCV, volume), SEC filings, insider trades, peer comparison 4. **Watchlist Management** — Create/edit watchlists, add/remove tickers 5. **Strategy Builder** — Visual strategy condition builder 6. **Screener** — Filter-based stock screening (TradingView-style) 7. **Alerts Center** — Real-time alert feed with severity indicators 8. **Sector Rotation Dashboard** — Sector heatmaps, momentum rankings, rotation alerts ``` Command pattern: "Generate a fully responsive HTML/CSS prototype for the [Screen Name] page. Use the design system from [direction]. Include: - Layout structure (mobile-first) - All interactive elements - Data visualization placeholders - Responsive breakpoints - CSS custom properties for theming Output: Complete HTML file with embedded CSS and minimal JS for interactivity." ``` ### Phase 3: Component Library (Week 2) **Goal**: Generate reusable component specs that map to Radix UI + Tailwind. ``` Command pattern: "Generate a component library specification for Invest Copilot using TailwindCSS. Components: 1. StockCard — ticker, price, change %, mini-chart sparkline 2. PriceChart — OHLCV candlestick chart (placeholder for Lightweight Charts) 3. SEC Filing Card — form type, date, summary, sentiment badge 4. Insider Trade Row — name, title, transaction type, shares, value 5. Strategy Condition Builder — visual rule builder (AND/OR logic) 6. Screener Filter — field selector, operator, value input 7. Alert Badge — severity-based color coding (info/warning/critical) 8. Sector Heatmap — color-coded sector performance grid 9. Watchlist Table — sortable, filterable ticker list 10. Navigation — mobile-first bottom nav + desktop sidebar For each component: - HTML structure - TailwindCSS classes - State variants (hover, active, disabled, error) - Responsive behavior - Accessibility attributes (ARIA)" ``` ### Phase 4: Brand Design System (Week 2-3) **Goal**: Create a complete design token system using Open Design's brand-grade systems. ``` Design tokens structure: { "color": { "background": { "primary": "OKLch(0.08 0 0)", // near-black "secondary": "OKLch(0.12 0 0)", // dark gray "tertiary": "OKLch(0.18 0 0)" // lighter gray }, "surface": { "card": "OKLch(0.15 0 0)", "hover": "OKLch(0.20 0 0)", "active": "OKLch(0.25 0 0)" }, "text": { "primary": "OKLch(0.95 0 0)", "secondary": "OKLch(0.70 0 0)", "tertiary": "OKLch(0.50 0 0)" }, "semantic": { "positive": "OKLch(0.65 0.18 140)", // green "negative": "OKLch(0.55 0.20 20)", // red "accent": "OKLch(0.65 0.18 250)", // blue "warning": "OKLch(0.70 0.18 80)", // amber "critical": "OKLch(0.50 0.22 20)" // deep red } }, "typography": { "fontFamily": { "display": "Inter, system-ui, sans-serif", "mono": "JetBrains Mono, monospace", "body": "Inter, system-ui, sans-serif" }, "size": { "xs": "0.75rem", "sm": "0.875rem", "base": "1rem", "lg": "1.125rem", "xl": "1.25rem", "2xl": "1.5rem", "3xl": "1.875rem" }, "weight": { "normal": "400", "medium": "500", "semibold": "600", "bold": "700" } }, "spacing": { "1": "0.25rem", "2": "0.5rem", "3": "0.75rem", "4": "1rem", "6": "1.5rem", "8": "2rem", "12": "3rem", "16": "4rem" }, "radius": { "sm": "0.375rem", "md": "0.5rem", "lg": "0.75rem", "xl": "1rem", "full": "9999px" }, "breakpoints": { "mobile": "375px", "tablet": "768px", "desktop": "1024px", "wide": "1280px" } } ``` ### Phase 5: Interactive Prototype to Code Bridge (Week 3) **Goal**: Convert Open Design HTML/CSS prototypes into Next.js components. Process: 1. Open Design generates HTML/CSS prototype 2. Developer maps HTML structure to React/Next.js components 3. Tailwind classes transfer directly (same syntax) 4. Replace static data with API-driven data 5. Add interactivity (Zustand state, API calls) 6. Ensure accessibility (ARIA, keyboard navigation) ``` Mapping guide: ┌────────────────────┬─────────────────────────────────────────┐ │ Open Design Output │ Next.js Implementation │ ├────────────────────┼─────────────────────────────────────────┤ │ HTML
│ React
(same) │ │ HTML │ Next.js │ │ CSS classes │ TailwindCSS classes (same syntax) │ │ CSS custom props │ tailwind.config.js theme extension │ │ Static data │ API call → Zustand store → component │ │ Hover effects │ Tailwind hover: classes │ │ Responsive │ Tailwind responsive prefixes (sm:, md:) │ │ Interactivity │ React useState, useEffect, API calls │ └────────────────────┴───────────────────────────────────────────────┘ ``` ## Open Design Skill Integration ### For Hermes Agent Use Open Design as a design-phase skill for the invest-copilot project: ```yaml # In your agent session context for invest-copilot: skills: - name: open-design # if installed as a skill - name: architecture-diagram # for system architecture SVGs - name: sketch # for quick UI mockup comparisons ``` ### For Other CLI Agents Open Design works with all 16 supported coding agents. When working with: - **Claude Code**: Use natural language design prompts with Open Design conventions - **Cursor**: Use Open Design's brand systems as autocomplete context - **Qwen (your model)**: Generate design specs that map to the TailwindCSS + Radix UI stack ## Design System Selection For Invest Copilot's visual direction, Open Design provides these brand systems: | Brand System | Why It Works | Application | |---|---|---| | **Stripe** | Clean, data-dense, professional | Dashboard, data tables, cards | | **Linear** | Modern, minimal, dark mode | Navigation, sidebar, controls | | **Bloomberg** | Financial data visualization | Charts, heatmaps, trading UI | | **Vercel** | Developer-friendly, clean | Settings, configuration screens | | **Apple** | Premium, accessible, intuitive | Onboarding, empty states | ### Recommended Blend ``` Primary: Stripe (layout + spacing principles) Dark mode: Linear (dark mode design system) Financial charts: Bloomberg (data density) Navigation: Vercel (clean, minimal) Typography: Apple (readability at small sizes) ``` ## Design Validation Checklist Before moving from design to implementation, validate: - [ ] All screens are responsive at 375px, 768px, 1024px, 1280px - [ ] Dark mode contrast ratios meet WCAG AA (4.5:1 for text) - [ ] Touch targets are ≥ 44px on mobile - [ ] Charts are readable at 375px width - [ ] Color-coding for profit/loss works for colorblind users (add icons + labels) - [ ] All interactive elements have hover and focus states - [ ] Loading states defined for all data-fetching screens - [ ] Empty states designed for watchlists, strategies, alerts - [ ] Error states defined for API failures - [ ] Keyboard navigation works on all screens (not just mouse/touch) - [ ] Semantic HTML structure (header, main, nav, aside, footer) ## Anti-Patterns to Avoid 1. **Bloomberg clutter** — Don't make it look like Bloomberg Terminal. It's a modern PWA, not a desktop trading terminal. 2. **Over-charting** — Every stock page should have at most 3-4 charts max. More than that overwhelms. 3. **Desktop-first thinking** — Design for 375px width first, then expand. Not the other way around. 4. **Ignoring loading states** — Financial data takes time to fetch. Skeleton screens are mandatory. 5. **Color-only signaling** — Never use color alone to indicate profit/loss. Use arrows, icons, and labels too. 6. **Ignoring accessibility** — Financial tools serve all users. Screen reader support is non-negotiable.