- Migrate from React CRA to Next.js 15 with modern architecture - Implement comprehensive shadcn/ui component library - Create complete dashboard system with layouts and navigation - Build authentication pages (login, register) with proper forms - Implement vote management pages (active, upcoming, history, archives) - Add user profile management with security settings - Configure Tailwind CSS with custom dark theme (accent: #e8704b) - Setup TypeScript with strict type checking - Backup old React-based frontend to .backups/frontend-old - All pages compile successfully and build passes linting Pages created: - Home page with hero section and features - Authentication (login/register) - Dashboard with stats and vote cards - Vote management (active, upcoming, history, archives) - User profile with form validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
67 lines
1.3 KiB
CSS
67 lines
1.3 KiB
CSS
/* ===== App Layout ===== */
|
|
|
|
.app-wrapper {
|
|
@apply flex flex-col min-h-screen bg-bg-primary;
|
|
}
|
|
|
|
.app-main {
|
|
@apply flex-1 flex flex-col;
|
|
}
|
|
|
|
/* ===== Text Utilities ===== */
|
|
|
|
.text-muted {
|
|
@apply text-text-tertiary;
|
|
}
|
|
|
|
/* ===== Form Utilities ===== */
|
|
|
|
.form-group {
|
|
@apply space-y-2 mb-4;
|
|
}
|
|
|
|
.form-label {
|
|
@apply block text-sm font-medium text-text-primary;
|
|
}
|
|
|
|
.form-input {
|
|
@apply w-full px-3 py-2 rounded-md border border-text-tertiary bg-bg-secondary text-text-primary placeholder-text-tertiary focus:outline-none focus:ring-2 focus:ring-accent-warm focus:border-transparent;
|
|
}
|
|
|
|
.form-textarea {
|
|
@apply w-full px-3 py-2 rounded-md border border-text-tertiary bg-bg-secondary text-text-primary placeholder-text-tertiary focus:outline-none focus:ring-2 focus:ring-accent-warm focus:border-transparent;
|
|
resize: vertical;
|
|
}
|
|
|
|
.form-error {
|
|
@apply text-sm text-danger mt-1;
|
|
}
|
|
|
|
.form-success {
|
|
@apply text-sm text-success mt-1;
|
|
}
|
|
|
|
/* ===== Grid Utilities ===== */
|
|
|
|
.grid-responsive {
|
|
@apply grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6;
|
|
}
|
|
|
|
.grid-two {
|
|
@apply grid grid-cols-1 md:grid-cols-2 gap-6;
|
|
}
|
|
|
|
/* ===== Section Utilities ===== */
|
|
|
|
.section-header {
|
|
@apply py-6 border-b border-text-tertiary;
|
|
}
|
|
|
|
.section-title {
|
|
@apply text-3xl font-bold text-text-primary mb-2;
|
|
}
|
|
|
|
.section-subtitle {
|
|
@apply text-text-secondary;
|
|
}
|