# Cima Progetti - Sito Aziendale Sito web moderno e responsivo sviluppato con **Svelte + Vite** per presentare servizi, metodologia e contatti aziendali. ## β¨ FunzionalitΓ principali - π **Tema light/dark** con persistenza locale - π± **Design completamente responsivo** - β¬οΈ **Navbar collapsibile** con hide/show al scroll - π¨ **Sistema di componenti riusabili** - π **Routing client-side** con pagine dedicate e fallback 404 - βΏ **AccessibilitΓ ** e buone pratiche web ## π οΈ Requisiti - `Node.js` 18+ (consigliato LTS) - `npm` 9+ ## π Avvio rapido ```bash npm install npm run dev ``` Applicazione disponibile su `http://localhost:5173`. ## π Script disponibili - `npm run dev` - avvia il server di sviluppo con hot reload - `npm run build` - genera la build di produzione - `npm run preview` - avvia un'anteprima della build ## π Struttura del progetto ``` src/ βββ App.svelte # Componente root con routing βββ main.js # Punto di ingresso βββ styles/ β βββ global.css # Stili globali e variabili tema β βββ App.css # Layout principale app β βββ error-pages.css # Stili pagine errore βββ components/ β βββ Header/ # Navbar con scroll hide/show β βββ Hero/ # Sezione hero principale β βββ Services/ # Griglia servizi β βββ Footer/ # Footer con info aziendali β βββ Button/ # Componente button riusabile β βββ ThemeToggle/ # Toggle tema light/dark βββ pages/ βββ Contacts.svelte # Pagina contatti βββ 403.svelte # Accesso negato βββ 404.svelte # Pagina non trovata βββ 500.svelte # Errore server βββ ErrorGeneric.svelte # Errore generico ``` ## πΊοΈ Routing Il routing Γ¨ gestito in `src/App.svelte` leggendo `window.location.pathname` e reagendo ai cambi di History API. | Route | Componente | Descrizione | |-------|-----------|-------------| | `/` | `Hero` + `Services` | Home page | | `/contatti`, `/contacts` | `Contacts` | Pagina contatti | | `/403` | `Forbidden` | Accesso negato | | `/404` | `NotFound` | Pagina non trovata | | `/500` | `ServerError` | Errore server | | `/errore` | `ErrorGeneric` | Errore generico | | qualsiasi altra route | `NotFound` | Fallback 404 per pagine non ancora create | Le voci della navbar puntano a route reali come `/servizi`, `/metodo`, `/progetti` e `/chi-siamo`: se una pagina non esiste ancora, il contenuto mostrato Γ¨ il 404 ma l'URL resta quello richiesto. ## π¨ Tema e Stili ### Variabili CSS globali Tutte le variabili tema sono in `src/styles/global.css`: ```css :root { --primary-color: #1343F0; /* Colore primario */ --text-color: #111827; /* Testo light mode */ --surface: #ffffff; /* Sfondo light mode */ --background: rgba(246, 249, 255, 0.5); /* ... altre variabili */ } :root[data-theme='dark'] { --primary-color: #4983F2; --text-color: #e6eef8; --surface: #000; --background: rgba(0, 0, 0, 0.8); /* ... altre variabili */ } ``` ### Come usare i colori tema ```svelte