CIA/e-voting-system/frontend/tailwind.config.js
Alexis Bruneteau 905466dbe9 feat: Complete ShadCN/UI integration with custom dark theme
🎨 Design System Implementation:
- Added Tailwind CSS 3.3.6 with custom dark theme palette
- Created comprehensive ShadCN UI component library (8 components)
- Defined dark theme colors: accent (#e8704b), text (#e0e0e0), background (#171717)
- Implemented CSS custom properties for consistent theming

🔧 Core Components Refactored:
- Header: Now fully responsive with dark theme
- VoteCard: Migrated to ShadCN Card with styled results bars
- Alert: Uses ShadCN Alert with semantic variants
- Modal: Replaced with ShadCN Dialog (Radix UI)
- LoadingSpinner: Tailwind-based animation
- Footer: Grid layout with proper color scheme

📄 Pages Refactored:
- LoginPage: Complete refactor with split layout and dark theme
- Ready for remaining pages (RegisterPage, HomePage, Dashboard, etc.)

🏷️ Branding Updates:
- Changed app name from "React App" to "E-Voting"
- Updated HTML title and meta descriptions
- Updated package.json with proper naming

📚 Documentation (4 comprehensive guides):
- THEME_IMPLEMENTATION_GUIDE.md: How-to for remaining pages
- SHADCN_QUICK_REFERENCE.md: Component API reference
- FRONTEND_REFACTOR.md: Complete technical overview
- DEPENDENCY_FIX_NOTES.md: Dependency resolution details

 Build Status:
- npm install: 1397 packages 
- npm run build: Success (118.95 kB gzipped)
- Zero critical errors
- Ready for production deployment

🎯 Coverage:
- 40% of pages with full theming (Header, Footer, LoginPage, VoteCard)
- Infrastructure 100% complete
- Estimated 9 hours to theme remaining pages

🔄 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-06 16:34:43 +01:00

60 lines
1.4 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: ["class"],
content: [
'./index.html',
'./src/**/*.{js,jsx,ts,tsx}',
],
theme: {
extend: {
colors: {
// Custom dark theme palette
accent: {
warm: '#e8704b', // --color-accent-warm
},
text: {
primary: '#e0e0e0',
secondary: '#a3a3a3',
tertiary: '#737373',
},
bg: {
primary: '#171717',
secondary: '#171717',
'overlay-light': 'rgba(255, 255, 255, 0.05)',
'overlay-dark': 'rgba(0, 0, 0, 0.8)',
},
border: '#4a4a4a',
// Semantic colors
success: '#10b981',
warning: '#f97316',
danger: '#ef4444',
info: '#3b82f6',
},
spacing: {
xs: '0.25rem',
sm: '0.5rem',
md: '1rem',
lg: '1.5rem',
xl: '2rem',
'2xl': '3rem',
},
borderRadius: {
sm: '0.375rem',
md: '0.5rem',
lg: '0.75rem',
xl: '1rem',
},
boxShadow: {
sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
md: '0 4px 6px -1px rgba(0, 0, 0, 0.1)',
lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1)',
xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1)',
},
animation: {
spin: 'spin 1s linear infinite',
},
},
},
plugins: [require("tailwindcss-animate")],
}