CSS-formulärgenerator
Formulär är den del som används mest på de flesta webbplatser och samtidigt den minst genomarbetade på många. Denna generator producerar CSS för ett komplett stilat formulär: ett responsivt formulärgrid, par av etiketter och inmatningsfält, textområden, listrutor och synliga fokuslägen, allt i en enhetlig visuell stil. Ställ in accentfärg, hörnradie och avstånd och kopiera sedan stilmallen. CSS:en bevarar formulärets nativa semantik, så att validering, tangentbordsanvändning och skärmläsare fungerar.
Så här använder du generatorn
-
1
Ställ in accentfärg
Accentfärgen styr fokusringen och kantfärgen på varje fält.
-
2
Välj hörnradie
Radien gäller inmatningsfält, textområden och listrutor så att de får samma form.
-
3
Ställ in avstånd
Avståndet styr det vertikala mellanrummet mellan fälten i formulärgridet.
-
4
Kopiera CSS
En komplett stilmall som du kan klistra in och anpassa utan att röra din HTML.
Grundformulär
<form class="form">
<label class="field">
<span class="field-label">Email</span>
<input type="email" required>
<span class="field-error">Please enter a valid email.</span>
</label>
<label class="field">
<span class="field-label">Password</span>
<input type="password" minlength="8" required>
</label>
<button type="submit" class="button">Sign up</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; }
Fyra vanliga stilar
| Stil | Vad det är | Bäst för |
|---|---|---|
| Konturerad | Kantlinje runt inmatningsfältet, genomskinlig bakgrund | Skrivbordsformulär, täta layouter |
| Understruken | Endast en nedre kantlinje | Minimalistiskt / redaktionellt gränssnitt |
| Fylld | Grå bakgrund, ingen kantlinje | Gränssnitt inspirerat av Material Design |
| Flytande etikett | Etiketten sitter inuti och animeras uppåt vid fokus eller värde | Mobil först, landningssidor |
Den flytande etiketten är snyggast, men kräver extra markup eller JavaScript för att upptäcka tomt tillstånd. Konturerad är den mest universella lösningen.
Tillgänglighetsgranskningslista
- Synlig etikett för varje inmatningsfält. Använd aldrig en platshållare (placeholder) som enda etikett – den försvinner vid fokus och klarar inte kontrastkraven.
<label for>eller<label>med omslutning. Båda är giltiga; omslutningen är något enklare.- Fokusindikator: Använd aldrig
outline: noneutan en ersättning. Det behövs för tangentbordsanvändare. - Felmeddelanden: länka dem via
aria-describedbyi inmatningen. Använd inte endast färg för att markera fel – inkludera ett textmeddelande eller en ikon. - Obligatoriska fält: använd attributet
required. Lägg till en visuell markör (asterisk) i etiketten för seende användare. - Inmatningstyper: använd
type="email",type="tel",type="url"ellertype="number". Mobil tangentbord anpassar sig automatiskt. autocomplete-attribut:autocomplete="email",autocomplete="current-password"osv. Minskar behovet av att skriva mycket för användarna.
Nativa valideringstillstånd
CSS har pseudoklasser för formulars giltighet:
:required/:optional:valid/:invalid:in-range/:out-of-range(för numeriska inmatningar med minsta och största värde):placeholder-shown(tom, platshållaren synlig):user-invalid(ogiltigt och användaren har interagerat – rätt för felstilar)
Pseudoklassen :user-invalid är det renaste sättet att visa fel först efter att användaren har gjort något, vilket undviker röda kantlinjer före interaktionen. Stödet infördes i samtliga stora webbläsare runt år 2023.
Inaktiverat tillstånd
.field input:disabled {
background: #f3f4f6;
color: #9ca3af;
cursor: not-allowed;
}
Inaktiverade inmatningsfält kan varken fokuseras eller skickas in. Om du vill att de ska kunna fokuseras för skärmläsare använder du i stället readonly – formuläret skickar värdet, men användaren kan inte redigera det.
Vanliga frågor
Nej. Platshållare försvinner så snart användaren börjar skriva, vilket gör att de inte kan fungera som etiketter. Dessutom har platshållartext ofta låg kontrast och klarar inte WCAG. Använd en synlig etikett plus en valfri platshållare för formatanvisningar.
Eftersom :invalid gäller omedelbart för tomma obligatoriska fält, använd istället :user-invalid (interaktionsmedveten) eller kombinera :invalid:not(:placeholder-shown) som en lösning i äldre webbläsare.
Ställ in appearance: none, ta bort standardpilen och lägg till din egen via en bakgrundsbild eller ett omslutande span med en pil som pseudo-element. Alternativlistorna inuti behåller operativsystemets stil och kan inte anpassas med CSS.
Båda. HTML-validering (required, type, pattern) hanterar enkla fall utan JavaScript. JavaScript används för komplexa regler (såsom lösenordsstyrka och beroenden mellan fält). Se till att alltid använda servervalidering – validering på klientsidan syftar till användarupplevelse, inte säkerhet.
Relaterade verktyg
ASCII-tabellreferens
Full ASCII-tabell från 0 till 127 med decimal-, hex-, oktal- och binärvärden samt notation för numeriska HTML-referenser, inklusive NUL, LF och DEL.
HTML-teckenreferens
En sökbar lista över HTML-entiteter med deras namngivna och numeriska koder samt kopiering med ett klick för specialtecken och symboler.
Referens för kortkommandon
Sök dokumenterade standardkommandon för VS Code, Chrome och Bash med GNU Readline i macOS, Windows och Linux.
Färgpalettgenerator
Skapa monokromatiska, analoga, komplementära, triadiska eller tetradiska färgpaletter från en HEX-basfärg och exportera kopieringsklara CSS-variabler.
Slumpgenerator för bokstäver
Generera slumpade A-Z-bokstäver. Välj antal, versaler, gemener eller blandat läge och använd resultatet för spel, uppgifter eller klassrumsaktiviteter.
Slumpmässig färggenerator
Generera 1 till 50 slumpmässiga HEX-färger med färgrutor som du kan förhandsvisa, kopiera och använda i CSS, tester eller palettskissning.