π― Issue Type
π Description
Problem/Need
Current GitRay frontend uses basic styling and a single-page architecture. We need to modernize the UI with a professional component library, implement a landing page β dashboard flow, and add dark/light theme support for better UX.
Expected Behavior
- Modern, professional UI using shadcn/ui component library
- Landing page with repository input and info modals
- Dashboard with tabs for heatmap and commit list
- Settings drawer with theme selector (light/dark/system)
- News drawer for updates
- Responsive design across all devices
- All existing functionality preserved (API, visualizations, Rive animations)
Current Behavior
- Single-page application with basic styling
- No landing page or onboarding flow
- No theme switching capability
- Limited component reusability
π Steps to Reproduce
This is a feature implementation. To test completion:
- Clone branch
feature/ui-redesign
- Run
npm install and npm run dev
- Navigate to landing page - verify hero section, input, info buttons
- Enter repository URL and click "Analyze"
- Verify redirect to dashboard with data visualizations
- Test theme switching in settings drawer
- Verify all drawers and modals open/close correctly
- Test on mobile devices and different browsers
π¨ Mockups/Screenshots
Mockup files available in design repository. Key components:
- Landing page with centered hero
- Dashboard with Header (logo, menu, news bell)
- Settings drawer (theme selector, future language selector)
- News drawer (updates with badges)
- Info modals (3 types: what, private, local)
π§ͺ Acceptance Criteria
π Technical Details
Affected Files/Components
New Structure:
src/
βββ components/
β βββ ui/ # shadcn/ui components (button, card, sheet, dialog, tabs, etc.)
β βββ layout/ # Header, Footer
β βββ drawers/ # SettingsDrawer, NewsDrawer
β βββ modals/ # InfoModal
β βββ visualization/ # ActivityHeatmap, CommitList, RiveLoader (migrated)
β βββ forms/
βββ pages/
β βββ LandingPage.tsx # NEW
β βββ DashboardPage.tsx # NEW
βββ lib/
β βββ utils.ts # cn() function for className merging
βββ App.tsx # Updated with router logic
Updated Files:
App.tsx - Page routing, state management
tailwind.config.cjs - Theme configuration
index.css - CSS variables for theming
vite.config.ts - Path aliases
ActivityHeatmap.tsx - Styling updates
CommitList.tsx - shadcn/ui Table integration
Preserved (no changes):
api.ts - API integration
RiveLoader.tsx, RiveLogo.tsx - Rive animations
dateUtils.ts - Utility functions
Dependencies
New packages to install:
npm install @radix-ui/react-dialog @radix-ui/react-dropdown-menu \
@radix-ui/react-switch @radix-ui/react-tabs @radix-ui/react-separator \
@radix-ui/react-label @radix-ui/react-slot \
class-variance-authority clsx sonner tailwind-merge next-themes \
tailwindcss-animate --save-dev
Depends on:
- Nothing - can start immediately
Blocks:
- #[i18n-issue-number] - i18n implementation (must be completed first)
Breaking Changes
π· Categorization
Scope
Priority
Effort
π Environment
Development:
- OS: Cross-platform (Windows, macOS, Linux)
- Browser: Chrome 120+, Firefox 121+, Safari 17+
- Node Version: 18+ required
- Repo Branch:
feature/ui-redesign (create from main)
π Related Issues/PRs
- Blocks #[i18n-issue-number] - i18n must wait for UI migration to complete
- Related to: Design mockups (link if available)
π Additional Notes
Implementation Timeline (5-7 days)
Day 1-2: Setup, dependencies, base components, Tailwind config
Day 3: Page components (Landing, Dashboard)
Day 4: Migrate visualization components with new styling
Day 5: Integration, wire everything in App.tsx
Day 6: Testing, polish, bug fixes
Day 7: Code review, documentation, deployment prep
Documentation
Complete migration plan available:
docs/migration-plan/MIGRATION_PLAN.md - Full strategy (50 pages)
docs/migration-plan/COMPONENT_GUIDE.md - Implementation reference with code
docs/migration-plan/DAILY_CHECKLIST.md - Day-by-day tasks
docs/migration-plan/QUICK_REFERENCE.md - Developer cheat sheet
Rollback Plan
- Quick rollback: Revert merge commit (< 5 min)
- Feature flag option: Toggle between old/new UI if needed
- Full restoration: Restore from
main branch backup (< 30 min)
Success Metrics
- Bundle size < 550KB (currently ~500KB, allow +50KB for new components)
- Lighthouse score > 90
- First Contentful Paint < 1.5s
- No increase in console errors
- Test coverage maintained at 80%+
Key Risks & Mitigations
Risk: API integration breaks during refactor
- Mitigation: Keep API service unchanged, test thoroughly before merge
Risk: Theme switching causes layout issues
- Mitigation: Use CSS variables properly, test both themes extensively
Risk: Mobile responsiveness issues
- Mitigation: Test on real devices throughout development
β
Checklist for Reviewer
π― Issue Type
π Description
Problem/Need
Current GitRay frontend uses basic styling and a single-page architecture. We need to modernize the UI with a professional component library, implement a landing page β dashboard flow, and add dark/light theme support for better UX.
Expected Behavior
Current Behavior
π Steps to Reproduce
This is a feature implementation. To test completion:
feature/ui-redesignnpm installandnpm run devπ¨ Mockups/Screenshots
Mockup files available in design repository. Key components:
π§ͺ Acceptance Criteria
π Technical Details
Affected Files/Components
New Structure:
Updated Files:
App.tsx- Page routing, state managementtailwind.config.cjs- Theme configurationindex.css- CSS variables for themingvite.config.ts- Path aliasesActivityHeatmap.tsx- Styling updatesCommitList.tsx- shadcn/ui Table integrationPreserved (no changes):
api.ts- API integrationRiveLoader.tsx,RiveLogo.tsx- Rive animationsdateUtils.ts- Utility functionsDependencies
New packages to install:
Depends on:
Blocks:
Breaking Changes
π· Categorization
Scope
scope:frontend- Frontend/UI changesPriority
prio:high- Important feature/bugEffort
effort:xl- > 3 days (5-7 working days estimated)π Environment
Development:
feature/ui-redesign(create frommain)π Related Issues/PRs
π Additional Notes
Implementation Timeline (5-7 days)
Day 1-2: Setup, dependencies, base components, Tailwind config
Day 3: Page components (Landing, Dashboard)
Day 4: Migrate visualization components with new styling
Day 5: Integration, wire everything in App.tsx
Day 6: Testing, polish, bug fixes
Day 7: Code review, documentation, deployment prep
Documentation
Complete migration plan available:
docs/migration-plan/MIGRATION_PLAN.md- Full strategy (50 pages)docs/migration-plan/COMPONENT_GUIDE.md- Implementation reference with codedocs/migration-plan/DAILY_CHECKLIST.md- Day-by-day tasksdocs/migration-plan/QUICK_REFERENCE.md- Developer cheat sheetRollback Plan
mainbranch backup (< 30 min)Success Metrics
Key Risks & Mitigations
Risk: API integration breaks during refactor
Risk: Theme switching causes layout issues
Risk: Mobile responsiveness issues
β Checklist for Reviewer