commit 70c52339dfb289358d9f29212ee18a54eb80978d Author: stefanomanca Date: Sun May 3 19:27:23 2026 +0200 Initial commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..93e147a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +root = true + +[*] +indent_style = space +indent_size = 4 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..779b33b --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +node_modules/ +dist/ +.DS_Store +*.log +.env.local +.env +.vscode/ +.idea/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..876f0f5 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# cimaprogetti - Sito Aziendale + +Sito web professionale realizzato con **Svelte** e **Vite**. + +## Struttura del Progetto + +``` +src/ +├── components/ # Componenti Svelte riutilizzabili +│ ├── Header.svelte +│ ├── Hero.svelte +│ ├── Services.svelte +│ └── Footer.svelte +├── App.svelte # Componente principale +└── main.js # Entry point dell'applicazione +``` + +## Componenti Disponibili + +- **Header**: Barra di navigazione sticky con menu +- **Hero**: Sezione hero con call-to-action +- **Services**: Griglia con i servizi offerti +- **Footer**: Footer con informazioni aziendali e link + +## Setup Iniziale + +### Installazione + +```bash +npm install +``` + +### Avvio dello sviluppo + +```bash +npm run dev +``` + +Il progetto sarà disponibile su `http://localhost:5173` + +### Build per la produzione + +```bash +npm run build +``` + +### Preview della build + +```bash +npm run preview +``` + +## Customizzazione + +### Modificare i Servizi + +Modifica l'array `services` nel file [src/components/Services.svelte](src/components/Services.svelte) per aggiungere/rimuovere servizi. + +### Cambiare i Colori + +I colori principali sono definiti negli ` diff --git a/src/pages/Error403.svelte b/src/pages/Error403.svelte new file mode 100644 index 0000000..a44e915 --- /dev/null +++ b/src/pages/Error403.svelte @@ -0,0 +1,28 @@ + + +
+

403 - Accesso Negato

+

Non hai i permessi per accedere a questa risorsa.

+
+ + diff --git a/src/pages/Error404.svelte b/src/pages/Error404.svelte new file mode 100644 index 0000000..8dfd8d1 --- /dev/null +++ b/src/pages/Error404.svelte @@ -0,0 +1,28 @@ + + +
+

404 - Pagina Non Trovata

+

La pagina che stai cercando non esiste.

+
+ + diff --git a/src/pages/Error500.svelte b/src/pages/Error500.svelte new file mode 100644 index 0000000..dc960f9 --- /dev/null +++ b/src/pages/Error500.svelte @@ -0,0 +1,28 @@ + + +
+

500 - Errore del Server

+

Si è verificato un errore interno del server. Riprova più tardi.

+
+ + diff --git a/src/pages/ErrorGeneric.svelte b/src/pages/ErrorGeneric.svelte new file mode 100644 index 0000000..a471b49 --- /dev/null +++ b/src/pages/ErrorGeneric.svelte @@ -0,0 +1,28 @@ + + +
+

Errore

+

Si è verificato un errore. Per favore, riprova più tardi.

+
+ + diff --git a/src/styles/App.css b/src/styles/App.css new file mode 100644 index 0000000..3439039 --- /dev/null +++ b/src/styles/App.css @@ -0,0 +1,9 @@ +.app { + min-height: 100vh; + display: flex; + flex-direction: column; +} + +main { + flex: 1; +} diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 0000000..c91ef57 --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,88 @@ +:root { + --primary-color: #0066cc; + --text-color: #111827; + --muted-color: #6b7280; + --surface: #ffffff; + --background: rgba(246, 249, 255, 0.5); +} + +/* Dark theme overrides (toggle by setting attribute on ) */ +:root[data-theme='dark'], html[data-theme='dark'] { + --primary-color: #4983F2; + --text-color: #e6eef8; + --muted-color: #9ca3af; + --surface: #000; + --background: rgba(0, 0, 0, 0.8); +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + padding: 0; + font-family: Helvetica, 'Segoe UI'; + color: var(--text-color); + background-color: var(--surface); + background-image: url('/images/background/paper.png'); + background-repeat: repeat; + position: relative; +} + +html, +body, +#app { + height: 100%; + position: relative; + z-index: 1; +} + +/* Background overlay layer that follows theme color */ +body::before { + content: ""; + position: fixed; + inset: 0; + background-color: var(--background); + pointer-events: none; + z-index: 0; +} + +/* Reusable theme asset helpers: + add theme-light-only / theme-dark-only to any paired element (images, icons, labels). */ +.theme-light-only { + display: inline-block; +} + +.theme-dark-only { + display: none; +} + +html[data-theme='dark'] .theme-light-only { + display: none; +} + +html[data-theme='dark'] .theme-dark-only { + display: inline-block; +} + +.theme-difference { + filter: invert(var(--icon-invert)); + transition: filter 0.3s ease; +} + +:root { + --icon-invert: 0; +} + +html[data-theme='dark'] { + --icon-invert: 1; +} + +h1 { + font-family: 'IBM Plex Mono', monospace; +} + +h2 { + font-family: 'IBM Plex Mono', monospace; +} \ No newline at end of file diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..0131bfa --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,5 @@ +import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' + +export default { + preprocess: vitePreprocess() +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..eb1df58 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,9 @@ +import { defineConfig } from 'vite' +import { svelte } from '@sveltejs/vite-plugin-svelte' + +export default defineConfig({ + plugins: [svelte()], + server: { + port: 5173, + } +})