From f3b22583edb5fa54dd06e6469bfd542985ba9fe1 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Fri, 4 Sep 2026 21:59:14 +0200 Subject: [PATCH] =?UTF-8?q?Rifinisce=20l'interfaccia=20su=20safe=20area,?= =?UTF-8?q?=20materiali,=20tipografia=20e=20accessibilit=C3=A0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nessun cambio di funzionalità: solo resa, accessibilità e correzioni al layout su iPhone. - Aggiunge `viewport-fit=cover`: senza, su iOS `env(safe-area-inset-*)` valeva 0 e il margine per la barra gesture già presente nella bottom nav non aveva effetto. Aggiunge il margine superiore su hero, PageHeader e header dello scout, che in modalità standalone finivano sotto il notch. - Attiva il tema scuro sulla preferenza di sistema e ne riscrive i valori: l'accento resta il rosso del brand (prima diventava grigio-blu) e i token semantici che mancavano ora ci sono. `theme-color` ha una tinta per tema. - Sposta il feedback dal rilascio alla pressione su Button, bottom nav e comandi principali; aggiunge l'anello di focus da tastiera in `@layer base`, che mancava su tutti i bottoni scritti a mano fuori da components/ui/. - Rende la bottom nav una superficie traslucida con sfumatura di scorrimento al posto della riga netta, alleggerisce il velo dei drawer e sostituisce l'alone rosso delle ombre con ombre neutre. - Introduce una scala tipografica in rem con crenatura e interlinea per taglia, al posto dei 109 `text-[Npx]` fissi che non scalavano con l'impostazione di testo del sistema. - Porta a 44px le aree di tocco dei comandi piccoli, mostra uno scheletro di pagina al posto della schermata bianca in home e profilo, conserva le dissolvenze con movimento ridotto e aggiunge il supporto a `prefers-reduced-transparency` e `prefers-contrast`. - Anima l'apertura delle sezioni a tendina con Radix Collapsible, già fra le dipendenze, al posto di un montaggio secco. Co-Authored-By: Claude Opus 5 --- docs/CHANGELOG.md | 25 ++ public/manifest.webmanifest | 4 +- src/components/crapp/BadgeDrawer.tsx | 14 +- src/components/crapp/BottomNav.tsx | 4 +- src/components/crapp/CelebrazioneBadge.tsx | 2 +- src/components/crapp/CollezioneBadge.tsx | 30 +- src/components/crapp/EventoCard.tsx | 12 +- src/components/crapp/Pagelle.tsx | 14 +- .../crapp/ProfiloAmministrativo.tsx | 2 +- src/components/crapp/RosaPresenze.tsx | 8 +- src/components/crapp/ScoutEntry.tsx | 2 +- src/components/crapp/SerieCard.tsx | 8 +- src/components/crapp/SondaggioCacche.tsx | 8 +- src/components/crapp/TurnoPalloni.tsx | 4 +- src/components/crapp/VotazioneMvp.tsx | 8 +- src/components/crapp/VotoSocial.tsx | 12 +- src/components/crapp/ui-bits.tsx | 74 ++-- src/components/ui/button.tsx | 4 +- src/components/ui/drawer.tsx | 9 +- src/routes/__root.tsx | 34 +- src/routes/admin.tsx | 8 +- src/routes/calendario.tsx | 14 +- src/routes/classifica.tsx | 8 +- src/routes/eventi.tsx | 8 +- src/routes/index.tsx | 21 +- src/routes/partita.$id.tsx | 4 +- src/routes/profilo.tsx | 18 +- src/routes/scout.tsx | 28 +- src/routes/squadra.tsx | 37 +- src/styles.css | 333 ++++++++++++++++-- 30 files changed, 555 insertions(+), 202 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 4b99148..abcb0f6 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -6,6 +6,31 @@ qui: sta in [ROADMAP.md](ROADMAP.md). ## Versione attuale — agosto 2026 +### Rifinitura dell'interfaccia (settembre 2026) + +Nessun cambio di funzionalità: solo resa, accessibilità e correzioni al layout su iPhone. + +- **Safe area.** Aggiunto `viewport-fit=cover`: senza, su iOS `env(safe-area-inset-*)` + valeva 0 e il margine per la barra gesture già presente nella bottom nav non aveva + effetto. Aggiunto anche il margine superiore su hero, `PageHeader` e header dello scout, + che in modalità standalone finivano sotto il notch. +- **Tema scuro attivo.** La classe `dark` segue `prefers-color-scheme` da uno script nel + `head`. I valori del tema scuro sono stati riscritti: l'accento resta il rosso del brand + (prima diventava grigio-blu) e sono stati definiti i token semantici che mancavano. + `theme-color` ora ha una tinta per tema. +- **Feedback al tocco.** `Button`, voci della bottom nav e comandi principali reagiscono + alla pressione e non al rilascio. Anello di focus da tastiera su tutti gli elementi + attivabili (`styles.css`, `@layer base`): prima era assente sui bottoni scritti a mano. +- **Materiali.** La bottom nav è una superficie traslucida con sfumatura di scorrimento al + posto della riga netta; velo dei drawer alleggerito; ombre neutre al posto dell'alone + rosso. +- **Tipografia.** Scala in `rem` con crenatura e interlinea per taglia; eliminati i 109 + `text-[Npx]` fissi, che non scalavano con l'impostazione di testo del sistema. +- **Accessibilità e caricamento.** Aree di tocco portate a 44px sui comandi piccoli, + scheletro di pagina al posto della schermata bianca in home e profilo, movimento ridotto + che conserva le dissolvenze, supporto a `prefers-reduced-transparency` e + `prefers-contrast`. + ### Autenticazione e dashboard amministratore (in produzione) - Login con Google tramite Supabase Auth (DD-011). Al primo accesso l'account si collega a diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest index b9a820c..f05a7ed 100644 --- a/public/manifest.webmanifest +++ b/public/manifest.webmanifest @@ -4,8 +4,8 @@ "description": "L'app della squadra CRAP Volley: presenze, calendario, statistiche, classifica e scout live.", "start_url": "/", "display": "standalone", - "background_color": "#111111", - "theme_color": "#111111", + "background_color": "#0c0d11", + "theme_color": "#f9fafb", "orientation": "portrait", "icons": [ { diff --git a/src/components/crapp/BadgeDrawer.tsx b/src/components/crapp/BadgeDrawer.tsx index a6417b1..fc6787a 100644 --- a/src/components/crapp/BadgeDrawer.tsx +++ b/src/components/crapp/BadgeDrawer.tsx @@ -42,15 +42,13 @@ function DettaglioBadge({ def, stato }: { def: BadgeDef; stato?: BadgeStato }) { {stato ? (
-

+

Stato attuale

{grado ? ( - - {meta?.label} - + {meta?.label} ) : ( - + In progresso )} @@ -73,7 +71,7 @@ function DettaglioBadge({ def, stato }: { def: BadgeDef; stato?: BadgeStato }) { ) : null}
-

+

Soglie

@@ -90,7 +88,7 @@ function DettaglioBadge({ def, stato }: { def: BadgeDef; stato?: BadgeStato }) { >

@@ -104,7 +102,7 @@ function DettaglioBadge({ def, stato }: { def: BadgeDef; stato?: BadgeStato }) { > {def.soglie[g]}

-

{def.unita}

+

{def.unita}

); })} diff --git a/src/components/crapp/BottomNav.tsx b/src/components/crapp/BottomNav.tsx index 9db2121..98a8c13 100644 --- a/src/components/crapp/BottomNav.tsx +++ b/src/components/crapp/BottomNav.tsx @@ -11,14 +11,14 @@ const items = [ export function BottomNav() { return ( -