Skip to content

Rework UI components to match shadcn Nova template #138

Description

@frankbria

Overview

Update the CodeFRAME web UI to use the shadcn Nova template for consistent styling and component architecture.

Current State

The existing UI components may not be following a consistent shadcn template configuration, which can lead to:

  • Inconsistent styling across components
  • Difficulty adding new shadcn components that match the design system
  • Potential conflicts with future component additions

Desired State

All UI components should conform to the shadcn Nova template with the following configuration:

  • Base: Radix UI
  • Style: Nova
  • Base Color: Gray
  • Theme: Gray
  • Icon Library: Hugeicons
  • Font: Nunito Sans
  • Menu Accent: Subtle
  • Menu Color: Default
  • Radius: Default
  • Template: Next.js

Implementation Steps

1. Initialize shadcn Nova Template

Run the following command in the web-ui directory:

npx shadcn@latest create --preset "https://ui.shadcn.com/init?base=radix&style=nova&baseColor=gray&theme=gray&iconLibrary=hugeicons&font=nunito-sans&menuAccent=subtle&menuColor=default&radius=default&template=next" --template next

2. Audit Existing Components

  • Identify all custom UI components in web-ui/src/components/
  • List components that don't match the Nova template styling
  • Document deviations from the template (colors, spacing, fonts, etc.)

3. Update Component Styling

For each non-conforming component:

  • Update color schemes to use Nova gray palette
  • Apply Nunito Sans font family
  • Update spacing/radius to match template defaults
  • Replace icons with Hugeicons equivalents
  • Ensure Radix UI primitives are used where applicable

4. Verify New Component Additions

  • Test adding a new shadcn component to confirm template recognition
  • Verify the new component automatically matches the Nova theme
  • Document the process for future component additions

5. Update Documentation

  • Update CLAUDE.md with template verification steps
  • Add component styling guidelines to development docs
  • Include screenshots/examples of correctly styled components

Acceptance Criteria

  • shadcn template is initialized with Nova preset
  • All existing UI components match Nova template styling (gray theme, Nunito Sans, Hugeicons)
  • Adding new shadcn components automatically applies Nova styling
  • No visual regressions in Dashboard, ContextPanel, AgentStateProvider, or other key components
  • Documentation updated with template configuration and guidelines
  • Frontend tests pass (100%)

Technical Notes

  • Context7 MCP: Use Context7 MCP for latest Tailwind CSS documentation to avoid hard-to-debug UI bugs
  • Testing: Run visual regression tests on Dashboard after changes
  • Backwards Compatibility: No need to maintain old styling (pre-production app)

Files Likely Affected

web-ui/
├── components.json              # shadcn config (will be created/updated)
├── tailwind.config.ts           # Tailwind theme configuration
├── src/
│   ├── app/globals.css          # Global styles
│   └── components/              # All component files
│       ├── ui/                  # shadcn UI primitives
│       ├── dashboard/           # Dashboard components
│       ├── context/             # Context management components
│       └── metrics/             # Metrics components

Related

  • Project guidelines: CLAUDE.md (UI Template section)
  • Stack: TypeScript 5.3+, Next.js, Tailwind CSS, shadcn/ui

Priority

Medium - Improves developer experience and design consistency, but not blocking core functionality

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions