Generatore di Moduli CSS
I moduli sono la parte più toccata della maggior parte dei siti e la meno rifinita di molti. Questo generatore produce il CSS per un modulo completo con stile: una griglia responsive, coppie di etichetta + input, aree di testo, selezioni e stati di focus visibili, tutto con uno stile visivo coerente. Imposta il colore di accento, il raggio degli angoli e la spaziatura, poi copia il foglio di stile. Il CSS mantiene la semantica nativa del modulo, quindi la convalida, l’uso della tastiera e i lettori di schermo funzionano.
Come usare il generatore
-
1
Imposta il colore di accento
Il colore di accento determina l'anello di focus e il colore del bordo di ogni campo.
-
2
Scegli il raggio degli angoli
Il raggio si applica a input, aree di testo e selezioni per dare a tutti la stessa forma.
-
3
Regola la spaziatura
La spaziatura controlla lo spazio verticale tra i campi della griglia.
-
4
Copia il CSS
Un foglio di stile completo da incollare e adattare, senza toccare il tuo HTML.
Il modulo di base
<form class="form">
<label class="field">
<span class="field-label">Email</span>
<input type="email" required>
<span class="field-error">Inserisci un'email valida.</span>
</label>
<label class="field">
<span class="field-label">Password</span>
<input type="password" minlength="8" required>
</label>
<button type="submit" class="button">Iscriviti</button>
</form>
.field {
display: block;
margin-bottom: 1.25rem;
}
.field-label {
display: block;
font-weight: 500;
margin-bottom: .25rem;
}
.field input {
width: 100%;
padding: .5rem .75rem;
font: inherit;
border: 1px solid #d1d5db;
border-radius: 6px;
background: #fff;
transition: border-color 120ms, box-shadow 120ms;
}
.field input:focus-visible {
outline: none;
border-color: #2563eb;
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.field input:invalid:not(:placeholder-shown) {
border-color: #dc2626;
}
.field-error { display: none; color: #dc2626; font-size: .875rem; margin-top: .25rem; }
.field input:invalid:not(:placeholder-shown) ~ .field-error { display: block; }
Quattro stili comuni
| Stile | Cosa è | Migliore per |
|---|---|---|
| Contornato | Bordo attorno all’input, sfondo trasparente | Moduli desktop, layout densi |
| Sottolineato | Solo un bordo inferiore | UI minimal / editoriale |
| Pieno | Sfondo grigio, senza bordo | UI ispirata al Material Design |
| Etichetta flottante | L’etichetta si trova all’interno, anima verso l’alto al focus/valore | Mobile-first, pagine di atterraggio |
L’etichetta flottante è la più bella ma richiede markup extra o JavaScript per rilevare lo stato vuoto. Contornato è il più universale.
Lista di controllo per l’accessibilità
- Etichetta visibile per ogni input. Non usare mai il placeholder come unica etichetta, scompare al focus e fallisce il contrasto.
<label for>o<label>avvolgente. Entrambi sono validi; l’avvolgente è leggermente più facile.- Indicatore di focus. Non usare mai
outline: nonesenza una sostituzione. Gli utenti della tastiera ne hanno bisogno. - Messaggi di errore: collegali tramite
aria-describedbysull’input. Non usare solo il colore per contrassegnare gli errori, includere un messaggio di testo o un’icona. - Campi obbligatori: usa l’attributo
required. Aggiungi un marcatore visivo (asterisco) nell’etichetta per gli utenti vedenti. - Tipi di input: usa
type="email",type="tel",type="url",type="number". Le tastiere mobili si adattano. - Attributi
autocomplete:autocomplete="email",autocomplete="current-password", ecc. Risparmia agli utenti molto tempo di digitazione.
Stati di validazione nativi
CSS ha pseudo-classi per la validità del modulo:
:required/:optional:valid/:invalid:in-range/:out-of-range(per input numerici con min/max):placeholder-shown(vuoto, placeholder visibile):user-invalid(non valido e l’utente ha interagito, quello giusto per gli stili di errore)
La pseudo-classe :user-invalid è il modo più pulito per mostrare errori solo dopo che l’utente ha fatto qualcosa, evitando bordi rossi pre-interazione. Il supporto è arrivato in tutti i principali intorno al 2023.
Stato disabilitato
.field input:disabled {
background: #f3f4f6;
color: #9ca3af;
cursor: not-allowed;
}
Gli input disabilitati non sono focalizzabili o inviabili. Se vuoi che siano focalizzabili per i lettori di schermo, usa readonly invece, il modulo invia il valore ma l’utente non può modificarlo.
Domande frequenti
No. I placeholder scompaiono non appena l’utente digita, quindi non possono servire come etichette. Inoltre, il testo del placeholder ha tipicamente un basso contrasto e fallisce il WCAG. Usa un’etichetta visibile più un placeholder opzionale per suggerimenti di formato.
Perché :invalid si applica immediatamente ai campi obbligatori vuoti. Usa :user-invalid (consapevole dell’interazione) o combina :invalid:not(:placeholder-shown) come soluzione alternativa nei browser più vecchi.
Imposta appearance: none, rimuovi la freccia predefinita, aggiungi la tua tramite un’immagine di sfondo o uno span avvolgente con una freccia pseudo-elemento. Le liste di opzioni interne rimangono stilizzate dal sistema operativo e non possono essere personalizzate con CSS.
Entrambi. La convalida HTML (required, type, pattern) cattura casi semplici senza JavaScript. JavaScript gestisce regole complesse (forza della password, dipendenze tra campi). Valida sempre anche sul server, la convalida lato client è per l’UX, non per la sicurezza.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Generatore di Palette di Colori
Genera palette monocromatiche, analoghe, complementari, triadiche o tetradiche da un colore base HEX ed esporta variabili CSS pronte da copiare.
Semplificatore di Algebra Booleana
Valuta un'espressione booleana per ogni combinazione di input e mostra la tabella della verità completa. Supporta fino a cinque variabili e gli operatori &, |, ! e ^.