feat: complete UI redesign with dark mode, sidebar navigation, and modern design system

Implemented comprehensive UI overhaul with three-layer architecture:

Layer 1 - Theme System:
- CSS variables for light/dark themes (theme.css)
- Theme composable with light/dark/auto mode (useTheme.ts)
- Sidebar state management composable (useSidebar.ts)
- Refactored main.css to use CSS variables throughout

Layer 2 - Core Components:
- AppSidebar with collapsible navigation (desktop) and overlay (mobile)
- CollapsibleSection reusable component for expandable cards
- Restructured App.vue with new sidebar layout
- Integrated Lucide icons library (lucide-vue-next)

Layer 3 - Views & Components:
- Updated all 14 views with CSS variables and responsive design
- Replaced inline SVG with Lucide icon components
- Added collapsible sections to Dashboard, Admin pages, UserProfile
- Updated 3 shared components (BookingForm, SpaceCalendar, AttachmentsList)

Features:
- Dark/light/auto theme with persistent preference
- Collapsible sidebar (icons-only on desktop, overlay on mobile)
- Consistent color palette using CSS variables
- Full responsive design across all pages
- Modern minimalist aesthetic with Indigo accent color

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-02-11 21:27:05 +00:00
parent 9c2846cf00
commit 0bf3e6a7e2
28 changed files with 1960 additions and 1641 deletions

View File

@@ -100,12 +100,12 @@ const handleLogin = async () => {
h2 {
text-align: center;
margin-bottom: 0.5rem;
color: #2c3e50;
color: var(--color-text-primary);
}
.subtitle {
text-align: center;
color: #7f8c8d;
color: var(--color-text-secondary);
margin-bottom: 2rem;
}
@@ -117,11 +117,11 @@ h2 {
.register-link {
text-align: center;
margin-top: 1.5rem;
color: #7f8c8d;
color: var(--color-text-secondary);
}
.register-link a {
color: #3498db;
color: var(--color-accent);
text-decoration: none;
}
@@ -132,15 +132,15 @@ h2 {
.demo-accounts {
margin-top: 2rem;
padding-top: 1.5rem;
border-top: 1px solid #e1e8ed;
border-top: 1px solid var(--color-border);
font-size: 0.9rem;
color: #7f8c8d;
color: var(--color-text-secondary);
}
.demo-title {
font-weight: 600;
margin-bottom: 0.5rem;
color: #2c3e50;
color: var(--color-text-primary);
}
.demo-accounts p {
@@ -150,8 +150,9 @@ h2 {
.error {
margin-top: 1rem;
padding: 0.75rem;
background: #fee;
border-left: 3px solid #e74c3c;
border-radius: 4px;
background: color-mix(in srgb, var(--color-danger) 10%, transparent);
border-left: 3px solid var(--color-danger);
border-radius: var(--radius-sm);
color: var(--color-danger);
}
</style>