# paneditriora.it

Sito statico Astro 7 per il Panificio Asplanato di Triora: 6 lingue, due temi (`notte`, `farina`) dallo stesso codice, Cloudflare Pages. Stato completo, decisioni e cose aperte in `docs/STATO.md`; come si modifica e si pubblica in `README.md`.

## Regole di lavoro

- Si lavora nel clone locale `~/dev/paneditriora`. La copia sul NAS (`~/Server/Siti Web/Lavoro/Pane di Triora`) è su SMB: non lanciare `pnpm`, `astro` o build da lì, solo `git pull` a fine lavori.
- Prima di dire "fatto": `pnpm verify` verde (test, contenuti nelle 6 lingue, `astro check`, build dei due temi, controllo `dist/`).
- Ogni testo visibile passa da `src/content/` (markdown per prodotti e pagine, `ui/<lingua>.json` per le stringhe) e deve esistere in tutte e 6 le lingue con le stesse chiavi. I dati azienda solo in `src/data/business.ts`.
- Colori e font solo tramite i token di `src/styles/global.css`. Componenti con variante per tema: `Header`, `HeroHome`, `ProductGrid` (in `src/components/themed/index.ts`).
- CSS scoped di Astro: per stilare elementi resi da un componente figlio serve `:global()`. `<Picto>` e `<Picture>` inoltrano gli attributi, quindi una classe passata direttamente funziona.
- Compilatore Rust di Astro 7: HTML valido, tag chiusi. `compressHTML: 'jsx'`: spazi tra elementi inline vanno resi espliciti (`{' '}`).
- Niente librerie JS client oltre Leaflet (mappa contatti). Gli script vanilla esistenti: video hero, coverflow (`src/scripts/coverflow.js`), cookie lingua, lightbox, YouTube facade, mappa.
- Non aggiungere cookie, analytics con cookie, banner, form.
- Commit in italiano, imperativo breve, autore Paolo Alby <paoloalby@hotmail.com>. Non fare `git add -A` mentre un subagent lavora su altri file.
- Anteprime: `pnpm preview:notte` / `pnpm preview:farina` (con `noindex`). Produzione: `pnpm deploy:<tema>` solo dopo la scelta del cliente e con `.env` che contiene `CF_BEACON`.
- Server locali per il confronto: `pnpm dev:notte` (porta 4322) e per Farina `THEME=farina astro build --outDir dist-farina` + `astro preview --outDir dist-farina --port 4323`. Astro accetta un solo `astro dev` per progetto. Se i JSON `ui` non si aggiornano in dev: `rm .astro/data-store.json node_modules/.astro/data-store.json` e riavviare.
- Screenshot di QA a 375/820/1440 per entrambi i temi: `node scripts/qa-shots.mjs <cartella>` (usa il Chrome di sistema tramite Playwright).
- Paolo vuole vedere i siti in tab normali di Chrome, non nel pannello laterale.
