commit 4cc95c523fb1153f76c0bbb233203a6cceac0628 Author: Andrea Fiorencis Date: Tue Mar 31 08:27:06 2026 +0200 Aggiunti file prof (db + stylesheet) diff --git a/Aeroporto.sql b/Aeroporto.sql new file mode 100644 index 0000000..a7d8c96 --- /dev/null +++ b/Aeroporto.sql @@ -0,0 +1,78 @@ +CREATE DATABASE IF NOT EXISTS Aeroporto; +USE Aeroporto; + +CREATE TABLE PASSEGGERO ( + idPassaporto VARCHAR(20) PRIMARY KEY, + cognome VARCHAR(50) NOT NULL, + nome VARCHAR(50) NOT NULL, + nazionalita VARCHAR(50), + dataNascita DATE, + email VARCHAR(100) +); + +CREATE TABLE VOLO ( + numeroVolo VARCHAR(10) PRIMARY KEY, + compagnia VARCHAR(50) NOT NULL, + destinazione VARCHAR(50) NOT NULL +); + +CREATE TABLE PRENOTAZIONE ( + idPrenotazione INT AUTO_INCREMENT PRIMARY KEY, + dataPrenotazione DATE NOT NULL, + prezzo DECIMAL(10, 2), + classe VARCHAR(20), + idPassaporto VARCHAR(20), + numeroVolo VARCHAR(10), + FOREIGN KEY (idPassaporto) REFERENCES PASSEGGERO(idPassaporto), + FOREIGN KEY (numeroVolo) REFERENCES VOLO(numeroVolo) +); + +CREATE TABLE BAGAGLIO ( + idBagaglio INT AUTO_INCREMENT PRIMARY KEY, + dataImbarco DATE NOT NULL, + peso DECIMAL(5, 2), + smarrito TINYINT(1), + idPassaporto VARCHAR(20), + FOREIGN KEY (idPassaporto) REFERENCES PASSEGGERO(idPassaporto) +); + +INSERT INTO PASSEGGERO (idPassaporto, cognome, nome, nazionalita, dataNascita, email) VALUES +('AB12345', 'Rossi', 'Marco', 'Italiana', '1980-05-15', 'marco.rossi@email.it'), +('XY98765', 'Bianchi', 'Luca', 'Italiana', '1992-10-20', 'luca.bianchi@email.it'), +('US55555', 'Smith', 'John', 'USA', '1975-03-12', 'john.smith@usmail.com'), +('FR11111', 'Dupont', 'Jean', 'Francia', '1988-07-14', NULL), +('DE22222', 'Muller', 'Hans', 'Germania', '1990-11-30', 'hans.m@de.com'), +('ES33333', 'Garcia', 'Maria', 'Spagnola', '1995-02-28', 'maria.g@es.com'), +('RO99999', 'Romano', 'Giulia', 'Italiana', '2000-01-01', NULL), +('PT44444', 'Silva', 'Joao', 'Portoghese', '1985-06-10', 'joao@pt.com'), +('CA77777', 'Wilson', 'Emma', 'Canada', '1998-12-25', 'emma.w@ca.com'), +('NE00000', 'Neri', 'Fantasma', 'Italiana', '1999-09-09', 'neri@test.it'); + +INSERT INTO VOLO (numeroVolo, compagnia, destinazione) VALUES +('AZ202', 'Alitalia', 'Roma'), +('LH404', 'Lufthansa', 'Berlino'), +('RY123', 'Ryanair Express', 'Londra'), +('DL100', 'Delta', 'New York'), +('AF505', 'Air France', 'Parigi'), +('GH000', 'Ghost Air', 'Nessun Luogo'); + +INSERT INTO PRENOTAZIONE (dataPrenotazione, prezzo, classe, idPassaporto, numeroVolo) VALUES +('2024-09-01', 45.00, 'Economy', 'AB12345', 'AZ202'), +('2024-10-05', 150.00, 'Business', 'XY98765', 'AZ202'), +('2024-11-12', 1200.00, 'First', 'US55555', 'DL100'), +('2024-09-15', 80.00, 'Economy', 'FR11111', 'AF505'), +('2024-10-20', 60.00, 'Economy', 'DE22222', 'RY123'), +('2024-12-01', 300.00, 'Business', 'ES33333', 'LH404'), +('2024-08-30', 400.00, 'Business', 'AB12345', 'DL100'), +('2024-10-01', 35.00, 'Economy', 'RO99999', 'AZ202'); + +INSERT INTO BAGAGLIO (dataImbarco, peso, smarrito, idPassaporto) VALUES +('2024-09-01', 15.50, 0, 'AB12345'), +('2024-10-05', 20.00, 0, 'XY98765'), +('2024-10-05', 10.50, 0, 'XY98765'), +('2024-12-05', 23.00, 0, 'US55555'), +('2024-12-15', 22.00, 1, 'US55555'), +('2024-12-20', 18.00, 0, 'US55555'), +('2024-12-25', 12.00, 0, 'US55555'), +('2024-09-15', 19.00, 0, 'FR11111'), +('2024-11-30', 25.00, 0, 'CA77777'); \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..1234586 --- /dev/null +++ b/style.css @@ -0,0 +1,172 @@ +/* ========================================================================== + 1. VARIABILI E COLORI (Design Tokens 2026) + ========================================================================== */ +:root { + /* Palette 2026: Basata su "Cloud Dancer" (bianco caldo) e accenti vibranti */ + --bg-page: #f9f9fb; /* Sfondo chiaro e riposante */ + --text-main: #1a1a1c; /* Testo quasi nero per massimo contrasto */ + --text-muted: #64748b; /* Testo secondario */ + + --primary: #2563eb; /* Blu moderno e saturo */ + --primary-hover: #1d4ed8; + --accent: #f59e0b; /* Ambra per richiamare l'attenzione */ + + /* Colori per i Form */ + --input-bg: #ffffff; + --input-border: #e2e8f0; + --input-focus: #3b82f6; + --error: #ef4444; + --success: #10b981; + + /* Spaziature e Bordi */ + --radius: 12px; + --shadow-sm: 0 1px 3px rgba(0,0,0,0.1); + --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1); +} + +/* Modalità Notte Automatica */ +@media (prefers-color-scheme: dark) { + :root { + --bg-page: #0f172a; + --text-main: #f8fafc; + --text-muted: #94a3b8; + --input-bg: #1e293b; + --input-border: #334155; + } +} + +/* ========================================================================== + 2. TIPOGRAFIA E TESTO NELLA PAGINA + ========================================================================== */ +body { + font-family: 'Inter', system-ui, -apple-system, sans-serif; + background-color: var(--bg-page); + color: var(--text-main); + line-height: 1.6; + /* Tipografia fluida: scala tra 16px e 18px in base alla finestra */ + font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem); + margin: 0; + padding: 2rem; +} + +p { + margin-bottom: 1.5rem; + max-width: 70ch; /* Limita la larghezza per una lettura ottimale */ +} + +/* ========================================================================== + 3. TITOLI (H1, H2, H3) + ========================================================================== */ +h1, h2, h3 { + margin-top: 2.5rem; + margin-bottom: 1rem; + font-weight: 800; + line-height: 1.2; + color: var(--primary); +} + +h1 { font-size: clamp(2rem, 5vw, 3.5rem); letter-spacing: -0.02em; } +h2 { font-size: clamp(1.5rem, 4vw, 2.25rem); color: var(--text-main); } +h3 { font-size: clamp(1.25rem, 3vw, 1.75rem); border-left: 4px solid var(--accent); padding-left: 1rem; } + +/* ========================================================================== + 4. FORM E INPUT (Stile Moderno) + ========================================================================== */ +form { + display: flex; + flex-direction: column; + gap: 1.5rem; + max-width: 500px; + background: var(--input-bg); + padding: 2rem; + border-radius: var(--radius); + box-shadow: var(--shadow-md); +} + +.form-group { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +label { + font-weight: 600; + font-size: 0.9rem; +} + +input, textarea, select { + padding: 0.75rem 1rem; + border: 2px solid var(--input-border); + border-radius: 8px; + background-color: var(--input-bg); + color: var(--text-main); + transition: all 0.2s ease; + font-size: 1rem; +} + +input:focus { + outline: none; + border-color: var(--input-focus); + box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1); +} + +/* Feedback validazione nativa senza JS */ +input:invalid:not(:placeholder-shown) { border-color: var(--error); } +input:valid:not(:placeholder-shown) { border-color: var(--success); } + +button { + background-color: var(--primary); + color: white; + padding: 0.8rem 1.5rem; + border: none; + border-radius: 8px; + font-weight: 700; + cursor: pointer; + transition: background 0.3s ease; +} + +button:hover { background-color: var(--primary-hover); } + +/* ========================================================================== + 5. TABELLE (Stile Minimalista Bento) + ========================================================================== */ +.table-container { + overflow-x: auto; /* Rende la tabella scrollabile su mobile */ + margin: 2rem 0; + border-radius: var(--radius); + box-shadow: var(--shadow-sm); +} + +table { + width: 100%; + border-collapse: collapse; + background: var(--input-bg); + text-align: left; +} + +th, td { + padding: 1rem 1.5rem; + border-bottom: 1px solid var(--input-border); +} + +th { + background-color: var(--primary); + color: white; + font-weight: 600; + text-transform: uppercase; + font-size: 0.8rem; + letter-spacing: 0.05em; + position: sticky; /* Header fisso allo scroll */ + top: 0; +} + +tr:last-child td { border-bottom: none; } + +/* Effetto riga al passaggio del mouse */ +tr:hover td { + background-color: rgba(37, 99, 235, 0.05); +} + +@media (max-width: 600px) { + th, td { padding: 0.75rem; font-size: 0.9rem; } +} \ No newline at end of file