feat: shared visual layer + redesigned topbar #4
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Beskrivning
Etablera ett gemensamt visuellt fundament för hela appen — design tokens (färger, typografi, spacing, shadows, radius) plus en ny sticky topbar som delas mellan Players- och Courses-sidan. Detta är basen som alla andra redesign-issues bygger på.
Motivation
Designen i
docs/design_handoff_pdga_rating/bygger på ett konsistent tokenset som inte finns idag. Att lyfta in tokens och topbar först gör att efterföljande issues (summary tiles, sparklines, expanded row, courses-redesign) kan implementeras med korrekt styling från första commiten istället för att justera i efterhand.Design — tokens
Lyft tokens från
docs/design_handoff_pdga_rating/styles.css(:root) tillpublic/css/shared.csssom CSS custom properties. Hela listan med exakta värden står idocs/design_handoff_pdga_rating/README.mdunder "Design tokens". Kort sammanfattning:--bg,--paper,--paper-2,--ink/2/3,--line/2,--hover,--accent(#4f5fd8),--accent-soft,--accent-text,--up/-soft,--down/-soft(oklch-värden)"ss01", "cv11"; mono med"tnum", "zero".--radius14px,--radius-sm10px, 7px för segmented control-segment, 999px för pills--shadow-cardoch--shadow-pop(oklch-baserade)Design — topbar
Sticky, full-bleed, 14×32 padding, white-with-backdrop-blur bakgrund. Identisk på Players- och Courses-sidan.
Tre sektioner via
justify-content: space-between:--accent → darker, vit line-icon (24×24 stylized chart). Bredvid: "Rating Tracker" (15/700/-0.01em) över "Disc golf · unofficial" (11px / uppercase / 0.04em).--paper-2bakgrund,--lineborder, 10px radius, 4px padding. Aktiv segment = vit bakgrund + soft shadow + ink text. Inaktiv =--ink-2med hover till--ink.meta-item-block ("Next update" / "Last refresh") separerade av 1px×22px vertikal divider, sedan en "Refresh all" ghost-knapp (32px hög, 8px radius, 12/600).Responsive: på
<880pxdöljs meta-items + divider + nav. Implementera mobil-nav enligt valfri lösning som passar repot.Teknisk kontext
public/css/shared.css(har redan ett begränsat tokensystem —--surface-*,--navy-*,--text-*,--green,--red,--radius-*,--shadow-*)views/partials/(verifiera vid implementation)Förslag till lösning
<link>i shared layoutshared.cssmed det nya setet (var beredd på att andra issues kommer behöva mappa om gamla varnamn)views/partials/topbar.ejseller motsvarandePOST /api/refresh-allsom triggar refresh för alla trackade spelare (kan vara samma flöde som existerande per-player refresh, i loop)updated_at) över playersScope
Inkluderat: Design tokens, fontinläsning, ny topbar (markup + styling), "Refresh all"-knapp + backend-endpoint, "Next update" / "Last refresh"-meta.
Exkluderat: Mobil-navmenyns specifika utseende — välj enkel lösning (hamburger, dropdown, eller bara döljs).
Risker