Calendario: il mese si cambiava solo con due frecce da 36 px. Ora si scorre, e il punto d'arrivo si sceglie proiettando la velocità di rilascio invece che dalla posizione del dito, così un colpo secco «lancia» il mese. La griglia entra ed esce dallo stesso lato del gesto, `dragElastic` dà resistenza progressiva al bordo al posto di uno stop netto. Le celle con più tipi di evento generavano un gradiente a fette e ci mettevano sopra un'ombra bianca sul numero per tenerlo leggibile: un cerotto su un problema di contrasto. Ora fondo neutro e un puntino per tipo, con il numero sempre su superficie piena. L'etichetta accessibile dice quanti eventi ci sono, non solo che ce ne sono. Profilo: le quattro switch «Notifiche convocazioni», «Promemoria allenamenti», «Cambi orario» e «Bacheca squadra» erano `defaultChecked` e non facevano niente — promettevano una funzione che non esiste. Via anche la conferma nativa prima di *cambiare* la foto: non è un'azione distruttiva, e chiedere conferma per tutto insegna a rispondere sì senza leggere. Resta su quella che la rimuove, che è irreversibile. Home: la sezione «Da confermare» mostrava titolo e contenitore vuoto quando non c'era altro da confermare, mentre tutte le altre sezioni hanno un empty state. Squadra: i badge in riga avevano solo `title=`, che su touch non appare mai — aggiunto il testo per gli screen reader. I filtri per criterio erano alti ~26 px. Più, in tutte le schermate: la primitiva `Card` al posto delle classi ripetute, i bersagli sotto i 44 px portati in misura e il floor tipografico a 12 px. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
CrAPP 🏐
CrAPP è una Progressive Web App sviluppata per digitalizzare completamente la gestione di una squadra di pallavolo.
Funzionalità principali
- Gestione squadra
- Gestione presenze
- Calendario allenamenti e partite
- Scout Live
- Badge e gamification
- Statistiche
- Notifiche intelligenti
- Gestione amministrativa
- AI per la pianificazione degli allenamenti (in sviluppo)
Stack tecnologico
React 19, TypeScript, TanStack Start (SSR), Vite 8, Tailwind CSS 4, Radix UI / shadcn, Supabase (PostgreSQL, Auth, Storage), Vercel, GitHub. Dettagli in docs/ARCHITECTURE.md.
Avvio locale
Le dipendenze si installano con bun (bun.lock):
bun install
npm run dev # http://localhost:8080
Comandi
npm run build # build di produzione
npm run lint # eslint (include prettier)
npm run test # test unit; npm run test:all per la suite completa
Chi aggiunge o modifica una funzione scrive anche il test e lo lascia verde (test/README.md).
Deploy
Deploy automatico su Vercel a ogni push su main, che è anche il branch di lavoro corrente.
develop pubblica un Preview Deployment, ma oggi è indietro rispetto a main. Su quale branch
committare lo decide chi sviluppa (DD-019).
Variabili d'ambiente
Il progetto richiede le seguenti variabili:
SUPABASE_URLSUPABASE_PUBLISHABLE_KEYVITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEY
Documentazione
Indice in docs/README.md. Le regole per gli assistenti AI stanno in AGENTS.md, lo stato corrente del lavoro in PROJECT_STATE.md.