Skip to content

feat(ui): Phase 1 — shadcn/ui foundation and panel-based layout shell#18

Merged
aksOps merged 1 commit into
mainfrom
feat/ui-redesign-phase1
Apr 3, 2026
Merged

feat(ui): Phase 1 — shadcn/ui foundation and panel-based layout shell#18
aksOps merged 1 commit into
mainfrom
feat/ui-redesign-phase1

Conversation

@aksOps

@aksOps aksOps commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements RAN-71 — Phase 1 of the UI Redesign (RAN-69).

  • shadcn/ui setup: Installs class-variance-authority, tailwindcss-animate, react-resizable-panels. Adds CSS variable infrastructure + cn() utility. Creates Button and Separator components in src/components/ui/.
  • AD-6 color tokens: Light mode (white/gray, indigo/blue accents) and dark mode (deep charcoal, muted teal/indigo) via CSS variables in index.css and tailwind.config.ts.
  • 3-panel layout shell (Layout.tsx): Collapsible left sidebar (desktop toggle + mobile slide-in), resizable main content area, collapsible right details panel (hidden by default). RightPanelContext lets child views open the details panel programmatically.
  • New header: App logo ("Code IQ"), global search bar, dark/light/system theme toggle (shadcn/ui Button), placeholder user profile icon.
  • Existing routes preserved: Dashboard, Code Graph, Explorer, Console, API Docs all render in the main panel with no regressions.
  • Build: 0 TypeScript errors, clean Vite production build.

Acceptance Criteria

  • shadcn/ui initialized — Button, Separator components available
  • Panel layout renders with left sidebar, main area, and right panel
  • Left sidebar collapses/expands with smooth animation (desktop + mobile)
  • Right panel opens/closes on demand via RightPanelContext
  • Dark/light mode works with new AD-6 color tokens
  • All existing pages still render correctly in the main content area
  • No regressions — 0 TypeScript errors, build passes

Test plan

  • Review component structure in src/main/frontend/src/components/
  • Smoke test all 5 routes in browser (Dashboard, Graph, Explorer, Console, API Docs)
  • Toggle sidebar collapse on desktop, verify animation
  • Open mobile sidebar via hamburger, verify overlay and close behavior
  • Switch dark/light/system themes, verify AD-6 colors apply correctly
  • Programmatically call openPanel(content) from a child component to verify right panel appears

🤖 Generated with Claude Code

- Install class-variance-authority, tailwindcss-animate, react-resizable-panels
- Add shadcn/ui CSS variables to index.css with AD-6 color tokens:
  light mode (white/gray backgrounds, indigo/blue accents)
  dark mode (deep charcoal/navy, muted teal/indigo accents)
- Update tailwind.config.ts with shadcn CSS var tokens and tailwindcss-animate plugin
- Create src/lib/utils.ts with cn() utility (clsx + twMerge)
- Add shadcn/ui Button and Separator components in src/components/ui/
- Rewrite Layout.tsx with 3-panel architecture:
  - Collapsible left sidebar with desktop collapse/expand and mobile slide-in
  - Resizable main content area via react-resizable-panels
  - Collapsible right details panel (hidden by default, opens on demand)
  - New header: logo, global search bar, theme toggle, profile placeholder
  - RightPanelContext for child views to open the details panel programmatically
- Migrate ThemeToggle to shadcn/ui Button styling (inline in Layout)
- All existing routes (Dashboard, Graph, Explorer, Console, API Docs) preserved
- Build passes clean: 0 TypeScript errors

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@sonarqubecloud

sonarqubecloud Bot commented Apr 1, 2026

Copy link
Copy Markdown

@aksOps aksOps merged commit 0aaefdd into main Apr 3, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant