feat: redesign admin panel with Lucide icons and modern styling

- Add lucide-react for SVG icons throughout the admin
- Redesign sidebar with gradient background, icons per nav item, and sticky layout
- Redesign topbar with cleaner user info display
- Redesign dashboard with icon-backed stat cards, gradient progress bars, activity feed
- Update AdminNavLink with icon support and new active state styling
- Improve table styling in admin-page CSS (rounded corners, hover, spacing)
- Clean up unused admin CSS
This commit is contained in:
remco committed 2026-07-02 15:33:23 +02:00
1 parent bd299be55d
commit cf287dbc8b
9 files changed
+278 -261

No files matched your search

+13 -11
View File
@@ -436,7 +436,7 @@ tbody tr:hover {
}
/* ── Admin panel (Housekeeping) ─────────────────────────────────
Page content wrapper — table card styling and h1 formatting. */
Page content wrapper — card-style tables and consistent spacing. */
.admin-page main > h1:first-child,
.admin-page > h1:first-child {
margin-top: 0;
@@ -447,33 +447,35 @@ tbody tr:hover {
border-bottom: 2px solid var(--border);
margin-bottom: 0.85rem;
}
/* Carded tables — give the bare admin tables a surface + frame. */
.admin-page table {
background: var(--color-surface);
box-shadow: var(--shadow-card);
border: 1px solid var(--border);
border-radius: 12px;
border-radius: 16px;
overflow: hidden;
box-shadow: var(--shadow-card);
}
.admin-page thead th {
background: color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));
background: color-mix(in srgb, var(--color-primary) 10%, var(--color-surface));
color: var(--color-text-muted);
border-bottom: 1px solid var(--border);
white-space: nowrap;
font-size: 0.7rem;
letter-spacing: 0.04em;
padding: 0.7rem 0.9rem;
}
.admin-page th,
.admin-page td {
padding: 0.6rem 0.8rem;
padding: 0.7rem 0.9rem;
border-top: 1px solid color-mix(in srgb, var(--color-text-muted) 10%, transparent);
font-size: 0.88rem;
}
.admin-page tbody tr {
transition: background 0.12s ease;
}
.admin-page tbody tr:hover {
background: color-mix(in srgb, var(--color-primary) 7%, transparent);
}
.admin-page tbody td {
border-top: 1px solid color-mix(in srgb, var(--color-text-muted) 12%, transparent);
background: color-mix(in srgb, var(--color-primary) 5%, transparent);
}
.admin-page thead tr:first-child th:first-child { border-radius: 16px 0 0 0; }
.admin-page thead tr:first-child th:last-child { border-radius: 0 16px 0 0; }
/* ── Public design system (faithful to the atom theme) ──────────
content-card = surface card with a primary-tinted header (icon +
title + subtitle) and a padded body — the signature atom block. */