fix: rebuild sponsor dashboard with shared styles (#54) #55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "54-rebuild-sponsor-dashboard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Rebuilds all three sponsor dashboard pages (pipeline board, detail view, list view) to use
shared/style.cssinstead of a customsponsor-dashboard/styles.css. Adds sponsor-specific utilities to the shared design system: orange color vars, pipeline column layout, status badges, detail page components, and sponsor table styles.Changes
sponsor-dashboard/styles.css— Deleted entirely. No custom stylesheet.shared/style.css— Added--color-orangevars, sponsor status badges (.badge-contacted,.badge-negotiating, etc.), pipeline board layout (.pipeline,.pipeline-col,.pipeline-card), detail page components (.detail-back,.detail-header,.detail-section), and sponsor table styles (.sponsor-table,.sponsor-table-wrap).sponsor-dashboard/index.html— Rebuilt pipeline board using shared nav,.page-header,.stats-row,.container,.bottom-nav, and new.pipeline-*classes. All 47 sponsors preserved across 6 columns.sponsor-dashboard/sponsor-card.html— Rebuilt detail view using shared nav,.form-*classes,.badge-*status badges, and new.detail-*layout classes.sponsor-dashboard/sponsor-list.html— Rebuilt table view using shared nav,.search,.form-select,.bottom-nav, and new.sponsor-tableclasses. Sort/filter JS preserved.Test Plan
.form-input/.form-selectstylinggrep -r "styles.css" sponsor-dashboard/returns no resultsReview Checklist
../shared/style.css— no custom stylesheetsponsor-dashboard/styles.cssdeleted--color-orangeto shared/style.css for negotiating statusRelated Notes
None.
Related
Closes #54
PR #55 Review
DOMAIN REVIEW
Tech stack: HTML/CSS/JS playground prototype (static pages, shared design system).
CSS consolidation -- GOOD:
sponsor-dashboard/styles.cssis deleted (confirmed+++ /dev/null). All three HTML pages (index.html,sponsor-card.html,sponsor-list.html) link to../shared/style.cssonly. No other stylesheets referenced. The old file had its own:roottokens (--brand-red: #C41E3A) which diverged from the shared system (--color-red: #d42026) -- this consolidation is correct.Dark theme -- GOOD: All pages use
body class="page", which inherits the#0a0a0abackground fromshared/style.css. New CSS additions usevar(--color-dark),var(--color-black),var(--color-gray-800)throughout. No light theme colors, no#fffbackgrounds, no#333text. Pipeline cards usevar(--color-black)background withvar(--color-gray-800)borders. Status badges use the dark-bg variants (--color-blue-bg,--color-orange-bg, etc.).Nav pattern -- GOOD with one NIT: Top nav matches admin.html exactly (brand link, nav-user with Marcus/admin). Bottom nav structure matches (6 items, same icons, same order for the first 4). See nit below about the 5th item divergence.
Shared classes -- GOOD: Pages use existing design system classes:
.page-header,.subtitle,.stats-row,.stat-card,.btn,.btn-primary,.btn-secondary,.btn-sm,.form-group,.form-label,.form-input,.form-select,.form-textarea,.form-row,.actions-row,.container,.badge,.bottom-nav,.search,.empty,.hidden.New CSS additions -- GOOD: ~250 lines added to
shared/style.cssfor pipeline-specific components (.pipeline,.pipeline-col,.pipeline-card,.pipeline-empty,.detail-*,.sponsor-table,.badge-*status variants). New orange color token (--color-orange: #f59e0b) with bg/border variants follows the existing pattern for green/yellow/blue/danger. All new rules use CSS custom properties from the design system -- no hardcoded colors.Accessibility -- GOOD: Pipeline board has
role="region"andaria-label. Filter selects havearia-label. Sort arrows provide visual feedback. Pipeline cards are<a>elements (keyboard navigable).JavaScript (sponsor-list.html): Sorting, filtering, and search work with the mock data array.
vardeclarations used (consistent with playground convention).renderTable()handles empty state. Sort direction toggles correctly. No security concerns in a static prototype.BLOCKERS
None. This is a static HTML/CSS playground prototype -- no backend, no user input processing, no auth paths, no secrets.
NITS
Bottom nav divergence: The existing admin pages (admin.html, admin-players.html, admin-teams.html) all have "Billing" (
$) as the 5th nav item. The sponsor dashboard pages replace this with "Sponsors" (★). In the real SvelteKit app, the bottom nav will be a shared layout component, so this divergence is cosmetic in the prototype. However, for design fidelity, consider either (a) adding Sponsors to all admin bottom navs, or (b) keeping Billing and adding Sponsors elsewhere. This signals a design decision needed before Svelte migration.Inline styles: Three instances of
style="margin-bottom: 1rem;"andstyle="margin-bottom: 1.5rem;"andstyle="margin-bottom: 0;"on the view toggle rows and filter groups. Minor -- these could use a utility class or be folded into the component CSS, but acceptable for a prototype.Inline styles in JS-rendered HTML: The
renderTable()function usesstyle="color:var(--color-gray-600)"for empty tier/email cells. Minor for a prototype, but aclass="text-muted"or similar would be cleaner for Svelte migration.sponsor-list.htmlmissing@svelte-notescomment block: The other two HTML files have the annotation header, butsponsor-list.htmldoes not. These annotations guide the playground-to-Svelte migration pipeline.SOP COMPLIANCE
54-rebuild-sponsor-dashboardfollows{issue-number}-{kebab-case-purpose}sponsor-list.htmlmissing@svelte-notesannotation (see nit #4)PROCESS OBSERVATIONS
Clean consolidation PR. The old standalone stylesheet was a divergence risk -- different color tokens, different component names. This PR eliminates that by moving everything into the shared design system. The bottom nav divergence (nit #1) is the only design decision that needs resolution before Svelte migration, but it does not block this prototype merge.
VERDICT: APPROVED