feat: reskin admin pages to zine design system

Migrate the entire admin section from the dark guild-* Tailwind theme
to the zine design system (dashed borders, CSS custom properties,
Brygada 1918 + Commit Mono, cream/dark mode palette).

- Replace admin top-nav layout with sidebar matching default layout
- Reskin dashboard, members, events, series management pages
- Reskin events/create and series/create form pages
- Add dev-only test login endpoint (GET /api/dev/test-login)
- Redirect duplicate admin/dashboard.vue to /admin
- Update CLAUDE.md design system docs
This commit is contained in:
Jennie Robinson Faber 2026-04-03 10:56:01 +01:00
parent f16f9ada64
commit fcd6f4cdf4
23 changed files with 3845 additions and 3827 deletions

View file

@ -21,27 +21,29 @@
<div class="membership-card">
<table>
<tr>
<td>Status</td>
<td>
<span class="status-dot" :class="memberData.status || 'active'"></span>
{{ memberData.status || 'Active' }}
</td>
</tr>
<tr>
<td>Circle</td>
<td :style="{ color: `var(--c-${memberData.circle || 'community'})` }">
{{ memberData.circle || 'Community' }}
</td>
</tr>
<tr>
<td>Contribution</td>
<td>${{ memberData.contributionAmount || 0 }} / month</td>
</tr>
<tr>
<td>Member since</td>
<td>{{ formatMemberSince(memberData.createdAt) }}</td>
</tr>
<tbody>
<tr>
<td>Status</td>
<td>
<span class="status-dot" :class="memberData.status || 'active'"></span>
{{ memberData.status || 'Active' }}
</td>
</tr>
<tr>
<td>Circle</td>
<td :style="{ color: `var(--c-${memberData.circle || 'community'})` }">
{{ memberData.circle || 'Community' }}
</td>
</tr>
<tr>
<td>Contribution</td>
<td>${{ memberData.contributionAmount || 0 }} / month</td>
</tr>
<tr>
<td>Member since</td>
<td>{{ formatMemberSince(memberData.createdAt) }}</td>
</tr>
</tbody>
</table>
</div>

View file

@ -1,5 +1,6 @@
<template>
<div class="dashboard">
<ClientOnly>
<!-- Loading State -->
<div v-if="authPending" class="loading-state">
<div class="spinner" />
@ -149,6 +150,14 @@
</div>
</div>
</template>
<template #fallback>
<div class="loading-state">
<div class="spinner" />
<p>Loading your dashboard...</p>
</div>
</template>
</ClientOnly>
</div>
</template>

View file

@ -10,6 +10,7 @@
<!-- Main Content -->
<div class="content-main">
<ClientOnly>
<!-- Stats + New Update row -->
<div v-if="isAuthenticated && !pending" class="stats-row">
@ -108,6 +109,14 @@
<NuxtLink to="/updates/new" class="btn btn-primary">+ Post Your First Update</NuxtLink>
</div>
<template #fallback>
<div class="state-box">
<div class="spinner"></div>
<p class="state-text">Loading your updates...</p>
</div>
</template>
</ClientOnly>
</div>
<!-- Events Mini Sidebar -->