chore(visual): Phase 4 audit polish on event/series surface
Migrates event/series UI from Tailwind/Nuxt UI form components to the zine pattern (dashed borders, CSS-var palette, native inputs). Restructures single-event and series detail/index pages to the two-column grid pattern matching about.vue and member/dashboard.vue. Touches: - app/components/EventSeriesTicketCard.vue — phantom-palette → CSS-var migration (--candle, --ember, --surface), color="gray" → "neutral" - app/components/EventTicketCard.vue — --candle-faint border var - app/components/EventTicketPurchase.vue — accent-color: var(--candle) - app/pages/events/[slug].vue — page-fill flex chain, .event-body grid - app/pages/events/index.vue — series link uses series.id (was _id) - app/pages/series/[id].vue — two-column layout (1fr/280px) + sidebar - app/pages/series/index.vue — full rewrite to dashed-border zine pattern Per docs/specs/events-visual-audit-findings.md Phase 4. Behavior unchanged.
This commit is contained in:
parent
8f0648de57
commit
0f2f1d1cbf
7 changed files with 376 additions and 337 deletions
|
|
@ -88,8 +88,8 @@
|
|||
<div class="series-grid">
|
||||
<NuxtLink
|
||||
v-for="series in activeSeries"
|
||||
:key="series._id"
|
||||
:to="`/series/${series._id}`"
|
||||
:key="series.id"
|
||||
:to="`/series/${series.id}`"
|
||||
class="series-box"
|
||||
>
|
||||
<h2>{{ series.title }}</h2>
|
||||
|
|
@ -107,6 +107,11 @@
|
|||
>
|
||||
</div>
|
||||
</NuxtLink>
|
||||
<div
|
||||
v-if="activeSeries.length % 2"
|
||||
class="series-box series-box-filler"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -368,14 +373,21 @@ const isAlmostFull = (event) => {
|
|||
}
|
||||
.series-box {
|
||||
padding: 20px 24px;
|
||||
border-right: 1px dashed var(--border);
|
||||
text-decoration: none;
|
||||
transition: background 0.15s;
|
||||
border-right: 1px dashed var(--border);
|
||||
border-bottom: 1px dashed var(--border);
|
||||
}
|
||||
.series-box:last-child {
|
||||
.series-box:nth-child(2n) {
|
||||
border-right: none;
|
||||
}
|
||||
.series-box:hover {
|
||||
.series-box:nth-last-child(-n + 2) {
|
||||
border-bottom: none;
|
||||
}
|
||||
.series-box-filler {
|
||||
pointer-events: none;
|
||||
}
|
||||
.series-box:not(.series-box-filler):hover {
|
||||
background: var(--surface-hover);
|
||||
}
|
||||
.series-box h2 {
|
||||
|
|
@ -467,8 +479,17 @@ const isAlmostFull = (event) => {
|
|||
border-right: none;
|
||||
border-bottom: 1px dashed var(--border);
|
||||
}
|
||||
.series-box:nth-child(2n) {
|
||||
border-right: none;
|
||||
}
|
||||
.series-box:nth-last-child(-n + 2) {
|
||||
border-bottom: 1px dashed var(--border);
|
||||
}
|
||||
.series-box:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.series-box-filler {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue