Commit graph

13 commits

Author SHA1 Message Date
Nexus Dev
e49144a4e8 feat(nexus): design system phase 1 tokens and inter font
First phase of the DESIGN.md (ClickHouse-inspired) migration. Rewrites
the foundation CSS variables and theme machinery; downstream phases
(status/role dictionaries, raw utility sweep) still pending.

index.css
  - Full rewrite of @theme inline block. Dark (.dark) and light (:root)
    token sets per MIGRATION-PLAN sections 3 and 5:
    * Dark: pure black canvas (#000000), Neon Volt primary (#faff69),
      Forest Green secondary (#166534), charcoal border (rgba(65,65,65,
      0.8)), near-black cards (#141414), silver muted (#a0a0a0).
    * Light: near-white canvas (#fafafa), Forest primary, Volt
      downgraded to dark olive (#4f5100) for border/active use only,
      silver inverted to #6b6b6b. Accessibility fallback, not brand.
  - Added --warning (#f59e0b / #b45309), --success, and direct brand
    token refs (--volt, --volt-pale, --volt-border, --forest, --near-
    black, --hover-gray, --silver, --charcoal-border) exposed as
    Tailwind utilities via --color-* mirrors.
  - Added --destructive: #ef4444 (#dc2626 in light).
  - Radius scale collapsed to 4px sharp / 8px comfortable / 9999px pill.
  - Deleted .theme-tokyo-night.dark block entirely (was dead code —
    ThemeContext never applied the class).
  - Rewrote hljs syntax highlighting: one dark block under .dark .hljs
    using volt for keywords, pale volt for strings, silver for
    comments; one light block under .hljs using forest/dark-olive/
    silver. Replaced all three Catppuccin + Tokyo Night hljs rule sets.
  - Rewrote scrollbar rules to use var(--muted) / var(--charcoal-
    border) / var(--hover-gray) instead of hardcoded oklch values.
  - Added @font-face declarations for Inter (normal + italic) from the
    self-hosted woff2 files at /fonts/InterVariable*.woff2. font-weight
    100-900 range unlocks weight 900 for DESIGN.md hero moments from
    a single variable font.
  - Set --font-sans to Inter-first stack; body rule pulls the token.

ThemeContext.tsx
  - Simplified to binary Theme = "light" | "dark". Dropped "custom"
    theme type, PaletteRole interface, ROLE_TO_TOKEN map, and the
    /api/nexus/settings custom-theme hydration effect.
  - applyTheme() now just toggles .dark on <html> and sets
    colorScheme. applyCustomTheme() left as a deprecated no-op (no
    external callers but keeping the export avoids churn).
  - Legacy localStorage values (catppuccin-mocha, tokyo-night, custom,
    catppuccin-latte) coerced to "dark" on read so existing users
    don't see a crash after the migration.
  - Default theme: "dark".

Layout.tsx
  - Dropped THEME_META import and the THEME_CYCLE map. Theme toggle
    is now a binary sun/moon flip via toggleTheme().

index.html
  - Added <link rel="preload" href="/fonts/InterVariable.woff2"
    as="font" type="font/woff2" crossorigin>.
  - Set inline style="background:#000000; color-scheme:dark;" on
    <html> so the pre-React paint is already dark — no white flash.
  - Boot script coerces legacy localStorage theme values and persists
    "light" or "dark" only.

ui/public/fonts/
  - Added InterVariable.woff2 (344 KB) and InterVariable-Italic.woff2
    (379 KB), both Inter v4.x from rsms.me/inter (the canonical
    upstream). Self-hosted for LAN/offline reliability.

Not changed:
  - lib/status-colors.ts, lib/agent-role-colors.ts — next phase
  - Any component files — phase 3
  - MIGRATION-PLAN.md — will be updated with resolved decisions later

Expected visual state: pages using theme tokens (bg-background,
text-muted-foreground, border-border, ~1,250 instances) immediately
render with the new palette. Pages using raw Tailwind utilities
(bg-red-500, text-amber-600, ~274 instances) still show old colors
until phase 3 sweep.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 17:19:56 +00:00
4abaa43f09 feat(07-01): update index.html flash-prevention script for three themes
- Update theme-color meta tag default from #18181b to #1e1e2e (Catppuccin Mocha)
- Replace binary dark/light script with three-theme handler
- Toggles .dark and .theme-tokyo-night classes before React mounts
- Falls back to catppuccin-mocha for unknown/old localStorage values
- Removes old #18181b hardcoded color constant
2026-04-04 03:55:42 +00:00
153174d11d feat(03-01): add branding dep and replace HTML/asset branding with Nexus
- Add @paperclipai/branding workspace dep to ui/package.json and cli/package.json
- Change <title> and apple-mobile-web-app-title to Nexus in ui/index.html
- Replace site.webmanifest name/short_name with Nexus
- Replace paperclip SVG favicon with N-letter Nexus favicon
2026-04-04 03:55:41 +00:00
dotta
b5efd8b435 Merge public-gh/master into fix/hmr-websocket-reverse-proxy
Reconcile the PR with current master, preserve both PWA capability meta tags, and add websocket lifecycle coverage for the StrictMode-safe live updates fix.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-30 07:17:23 -05:00
Genie
59b1d1551a fix: Vite HMR WebSocket for reverse proxy + WS StrictMode guard
When running behind a reverse proxy (e.g. Caddy), the live-events
WebSocket would fail to connect because it constructed the URL from
window.location without accounting for proxy routing.

Also fixes React StrictMode double-invoke of WebSocket connections
by deferring the connect call via a cleanup guard.

- Replace deprecated apple-mobile-web-app-capable meta tag
- Guard WS connect with mounted flag to prevent StrictMode double-open
- Use protocol-relative WebSocket URL derivation for proxy compatibility
2026-03-17 07:09:00 -03:00
Dotta
cce9941464 Add worktree UI branding 2026-03-13 11:12:43 -05:00
Dotta
c799fca313 Add worktree-specific favicon branding 2026-03-10 16:15:11 -05:00
Forgotten
5cd12dec89 feat(ui): light/dark theme toggle and light mode color support
Add ThemeContext with localStorage persistence and FOUC-preventing
inline script. Add theme toggle button in sidebar. Update status
badges, toast notifications, live indicators, and approval cards
with dark: prefixed classes for proper light mode rendering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:33:29 -06:00
Forgotten
33d549db13 feat(ui): mobile UX improvements, comment attachments, and cost breakdown
Add PWA meta tags for iOS home screen. Fix mobile properties drawer with safe
area insets. Add image attachment button to comment thread. Improve sidebar
with collapsible sections, project grouping, and mobile bottom nav. Show
token and billing type breakdown on costs page. Fix inbox loading state to
show content progressively. Various mobile overflow and layout fixes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 21:36:06 -06:00
Forgotten
d2f9ade30c fix(ui): mobile viewport, scrollable popovers, and actor labels
- Set viewport-fit=cover and disable user scaling for mobile PWA feel
- Wrap assignee/project popover lists in scrollable containers
- Remove rounded-t-sm from stacked chart bars for cleaner rendering
- Prevent filter bar icons from shrinking on narrow screens
- Show "Board" instead of raw user IDs in activity feeds and toasts
- Surface server error message in health API failures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:44:02 -06:00
Forgotten
d6024b3ca5 Enhance UI: favicon, AgentDetail overhaul, PageTabBar, and config form
Add favicon and web manifest branding assets. Major AgentDetail page
rework with tabbed sections, run history, and live status. Add
PageTabBar component for consistent page-level tabs. Expand
AgentConfigForm with more adapter fields. Improve NewAgentDialog,
OnboardingWizard, and Issues page layouts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:02:23 -06:00
Forgotten
22e7930d0b Overhaul UI with shadcn components and new pages
Add shadcn/ui components (badge, button, card, input, select,
separator). Add company context provider. New pages: Activity,
Approvals, Companies, Costs, Org chart. Restyle existing pages
(Dashboard, Agents, Issues, Goals, Projects) with shadcn components
and dark theme. Update layout, sidebar navigation, and routing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 09:07:32 -06:00
Forgotten
c3d82ed857 Add React UI with Vite
Dashboard, agents, goals, issues, and projects pages with sidebar
navigation. API client layer, custom hooks, and shared layout
components. Built with Vite and TypeScript.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 13:32:04 -06:00