AGENTS.md - Figli delle Stelle
AI Coding Agent Instructions
This file contains essential information about the project structure, technology stack, and development guidelines. Read this first before making any changes.
Project Overview
Figli delle Stelle è un sito web statico per la promozione di eventi esclusivi organizzati a Lucca, Italia. Il progetto attuale è focalizzato sull'evento "Pasquetta 2026" che si terrà il 6 Aprile 2026 all'Antico Caffè delle Mura.
Pagine Principali
| File | Descrizione |
|---|---|
index.html | Homepage con logo animato, carosello foto e lista eventi |
evento-pasquetta.html | Pagina dettaglio evento con form prenotazione e chat assistant |
Technology Stack
Core Technologies
- HTML5 - Markup semantico
- CSS3 - Con variabili CSS, animazioni, backdrop-filter (glassmorphism)
- JavaScript Vanilla - Nessun framework, codice puro ES6+
External Dependencies (CDN)
| Libreria | CDN | Uso |
|---|---|---|
| tsParticles | cdn.jsdelivr.net/npm/tsparticles@2.12.0 | Effetto stelle animate (solo homepage) |
| Font Awesome | cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0 | Icone |
| Google Fonts | fonts.googleapis.com | Playfair Display, Cormorant Garamond, Inter |
Nota importante
Nessun package manager - Il progetto non utilizza npm, yarn o altri gestori di pacchetti. Tutte le dipendenze sono caricate via CDN. Non esiste package.json.
Project Structure
v.0/
├── index.html # Homepage
├── evento-pasquetta.html # Pagina evento Pasquetta 2026
├── README.md # Documentazione utente
├── AGENTS.md # Questo file
├── screenshot.js # Script Puppeteer per screenshot (Node.js)
├── css/
│ ├── style.css # Stili base, variabili CSS, componenti condivisi
│ ├── home.css # Stili specifici homepage
│ └── evento.css # Stili specifici pagina evento
├── js/
│ ├── main.js # JS principale: particelle, navigazione, form
│ ├── home.js # JS homepage: tsParticles, carosello
│ ├── whatsapp-booking.js # Gestione prenotazioni via WhatsApp
│ └── chat-assistant.js # Chatbot per FAQ automatiche
└── assets/
└── images/ # Logo SVG e foto eventi (JPG/PNG)
CSS Architecture
File Organization
-
css/style.css(1223 righe) - Stili fondamentali- Variabili CSS con tema blu (
--color-accent: #3b82f6) - Reset e base styles
- Navigazione (pill style)
- Componenti: bottoni, card pacchetti, form, modal, footer
- Animazioni keyframes
- Responsive breakpoints
- Variabili CSS con tema blu (
-
css/home.css(719 righe) - Stili homepage- Hero con logo animato
- Effetto particelle logo
- Carosello orizzontale draggabile
- Card eventi stile Apple TV
- Sezione Instagram
-
css/evento.css(1000+ righe) - Stili pagina evento- Hero con gradiente blu/rosso
- Collaboration logos (Figli delle Stelle × Solea)
- Message box chat-style
- Location section con mockup iPhone
- DJ lineup cards (mystery reveal)
Variabili CSS Principali
:root {
--color-bg: #050a14; /* Sfondo principale */
--color-accent: #3b82f6; /* Blu accent */
--color-accent-light: #60a5fa; /* Blu chiaro */
--font-display: 'Playfair Display', serif;
--font-body: 'Inter', sans-serif;
--transition-medium: 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
Pattern CSS Utilizzati
- Glassmorphism:
backdrop-filter: blur(20px) saturate(180%) - Gradienti: Da blu (
#3b82f6) a rosso (#dc2626) nella pagina evento - Responsive: Mobile-first con breakpoint a 992px, 768px, 480px
JavaScript Architecture
File Organization
-
js/main.js(527 righe) - Core functionalityinitParticles()- Particelle animate custom (non tsParticles)initNavigation()- Navbar scroll effect, mobile toggleinitScrollReveal()- Animazioni al scrollinitFormHandling()- Gestione form prenotazioneinitPackageSelection()- Selezione pacchettoinitModal()- Modal successo- Integrazione WhatsApp per prenotazioni
-
js/home.js(414 righe) - Homepage specificinitStarsBackground()- tsParticles configurazioneinitHorizontalCarousel()- Carosello infinito draggabileinitLogoParticles()- Particelle attorno al logo- Parallax effect on scroll
- IntersectionObserver per animazioni
-
js/whatsapp-booking.js(126 righe) - Prenotazioni WhatsApp- Gestione standalone del form prenotazione
- Calcolo prezzi dinamico
- Apertura WhatsApp con messaggio precompilato
- Numero WhatsApp hardcoded:
393450688943
-
js/chat-assistant.js(271 righe) - Chatbot FAQ- Knowledge base con risposte automatiche
- Keyword matching per: prezzi, orari, location, pacchetti, etc.
- UI chat stile message bubbles
Pattern JS Utilizzati
- Modular functions: Ogni feature inizializzata separatamente
- DOMContentLoaded: Tutti gli script aspettano il DOM ready
- Feature detection: Controllo esistenza elementi prima di operare
- Event delegation: Per elementi dinamici
Features Key
1. Sistema di Prenotazione WhatsApp
Il form prenotazione (#bookingForm) invia i dati via WhatsApp invece di un backend:
// Flusso:
1. Utente compila form (nome, telefono, persone, pacchetto)
2. Calcolo totale: €20 (pranzo) o €10 (dopo-pranzo) × numero persone
3. Generazione URL WhatsApp con messaggio precompilato
4. Apertura WhatsApp Web/App in nuova tab
File coinvolti:
evento-pasquetta.html- Form HTMLjs/whatsapp-booking.js- Logica principalejs/main.js- Logica alternativa (fallback)
Personalizzazione prezzi:
// js/whatsapp-booking.js riga 22-25
const prices = {
'pranzo': 20,
'dopo-pranzo': 10
};
2. Chat Assistant
Sistema FAQ automatico nella hero section:
- Input textarea per domande
- Quick action buttons (Prezzi, Orari, Location, Pacchetti)
- Risposte automatiche basate su keyword matching
- Knowledge base in
js/chat-assistant.js
3. DJ Lineup Mystery Reveal
Sezione "Line Up" con card DJ:
- Avatar placeholder con icona "user-secret"
- Click per rivelare (classe CSS
revealed) - Progress dots per tracking
- Nota: I nomi reali dei DJ non sono ancora stati aggiunti
4. Carosello Homepage
Carosello foto orizzontale in index.html:
- Scroll automatico continuo
- Draggabile con mouse/touch
- Loop infinito (card clonate)
- Pause on hover
Development Guidelines
Convenzioni Codice
CSS
- Usare variabili CSS da
:rootper colori e spaziature - Mobile-first: Scrivere per mobile, aggiungere media query per desktop
- BEM-like naming:
.component-name,.component-element - Glassmorphism: Usare sempre
backdrop-filtercon fallback
JavaScript
- Feature detection prima di manipolare elementi:
const element = document.getElementById('id'); if (!element) return; // Guard clause - Event delegation per elementi dinamici
- No jQuery - Usare API DOM native
- Template literals per HTML dinamico
HTML
- Attributi data- per configurazione:
data-package="pranzo" - ID univoci per elementi interattivi
- Classi CSS per styling, ID per JS hooks
Modifica Prezzi
Per cambiare i prezzi dell'evento, modificare in tre posti:
js/whatsapp-booking.jsriga 22-25 (logica)js/main.jsriga 247-250 (logica alternativa)evento-pasquetta.htmltesto visibile nelle card pacchetti
Aggiunta Nuovi Eventi
Per aggiungere un nuovo evento alla homepage:
- Aggiungere card in
index.htmlsezione#eventi - Classe
event-card-modernper stile Apple TV featuredper evento principale,coming-soonper futuri- Aggiungere immagine in
assets/images/o URL esterno
Testing & Debug
Visualizzazione Locale
Aprire direttamente i file HTML nel browser:
# Mac
open index.html
# O usare un server locale
python3 -m http.server 8000
Checklist Modifiche
- Test responsive su mobile (375px), tablet (768px), desktop (1440px)
- Verificare che tsParticles funzioni su homepage
- Test form prenotazione (verifica URL WhatsApp generato in console)
- Test chat assistant con varie domande
- Verificare contrasti colori per accessibilità
Debug Tips
- Console: Tutti gli script loggano messaggi iniziali
- WhatsApp URL:
console.log('Opening:', whatsappURL)in main.js - tsParticles: Se non visibile, controllare errore in console (dipendenza CDN)
Deployment
Hosting
Sito statico, può essere deployato su:
- GitHub Pages - Gratuito, push su branch gh-pages
- Netlify - Drag & drop cartella
- Vercel - Connessione GitHub
- SiteGround - Upload FTP (skill disponibile)
Pre-deploy Checklist
- Rimuovere riferimenti locali da
screenshot.js(se usato) - Verificare che tutti i link siano relativi (
./non/) - Comprimere immagini se necessario (molte immagini sono >5MB)
- Testare form prenotazione con numero WhatsApp corretto
Assets
Immagini
Cartella assets/images/:
figli delle stelle .svg- Logo principale9.svg- Logo Solea (collaborazione)Figli delle stelle_*.jpg- Foto eventi per carosello- Total: ~520MB di asset immagini
Font
Caricati via Google Fonts:
- Playfair Display (titoli)
- Cormorant Garamond (accenti eleganti)
- Inter (testo body)
Note per Agenti AI
Cose da Sapere
- Nessun build step - Modifiche immediate sui file
- No framework - JavaScript vanilla, niente React/Vue/Angular
- Italiano - Tutto il contenuto è in italiano
- Hardcoded values - Numeri WhatsApp, date, prezzi sono hardcoded
Cose da NON Fare
- NON aggiungere package.json o dipendenze npm
- NON modificare la struttura cartelle senza aggiornare i path
- NON rimuovere i fallback per WhatsApp (popup blockers)
- NON cambiare classe CSS
event-card-modernsenza verificare lo stile
Estensioni Comuni
- Nuovo evento: Copiare struttura da
evento-pasquetta.html - Nuova pagina: Includere
style.css+ CSS specifico - Nuovo componente JS: Aggiungere funzione
initXxx()in main.js - Nuovo font: Aggiungere a Google Fonts link in
<head>
Troubleshooting
| Problema | Causa | Soluzione |
|---|---|---|
| tsParticles non funziona | CDN non caricato | Verificare connessione internet, controllare console errori |
| WhatsApp non si apre | Popup blocker | Il codice ha fallback a window.location.href |
| Form non calcola totale | JS non caricato | Verificare ordine script in HTML, controllare console |
| Card non animate | IntersectionObserver | Verificare che elementi abbiano classe event-card |
| Mobile menu non funziona | CSS/JS mismatch | Controllare che navToggle e navMenu esistano |
Contatti & Riferimenti
- Instagram: @figlidellestelle
- Location: Antico Caffè delle Mura, Lucca
- Data evento: Lunedì 6 Aprile 2026
- WhatsApp prenotazioni: +39 345 068 8943
Ultimo aggiornamento: Marzo 2026 Progetto: Figli delle Stelle - Pasquetta 2026