Pembuat Formulir CSS
Formulir adalah bagian yang paling sering digunakan di sebagian besar situs web, tetapi juga bagian yang paling kurang dirawat tampilannya. Generator ini menghasilkan CSS untuk formulir lengkap yang bergaya: grid formulir responsif, pasangan label dan bidang masukan, area teks, komponen seleksi, dan status fokus yang terlihat, semuanya dengan gaya visual yang konsisten. Atur warna aksen, radius sudut, dan jarak, lalu salin lembar gayanya. CSS ini mempertahankan semantik formulir asli, sehingga validasi, penggunaan keyboard, dan pembaca layar tetap berfungsi.
Cara menggunakan generator
-
1
Atur warna aksen
Warna aksen menentukan garis fokus dan warna tepi pada setiap bidang.
-
2
Pilih radius sudut
Radius berlaku untuk input, textarea, dan select agar semuanya memiliki bentuk yang konsisten.
-
3
Atur jarak
Jarak mengontrol spasi vertikal antar bidang pada grid formulir.
-
4
Salin CSS
Lembar gaya lengkap yang bisa Anda tempel dan sesuaikan tanpa mengubah HTML Anda.
Formulir dasar
<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; }
Empat gaya umum
| Gaya | Apa itu | Paling cocok untuk |
|---|---|---|
| Berbentuk garis | Batas di sekitar bidang masukan dengan latar belakang transparan | Formulir desktop dan tata letak padat |
| Berhias garis bawah | Hanya memiliki batas bawah | Antarmuka minimal/editorial |
| Terisi | Latar belakang abu-abu, tanpa batas | Antarmuka terinspirasi Material Design |
| Label mengapung | Label terletak di dalamnya dan bergerak secara dinamis saat fokus atau nilai tertentu tercapai | Desain berorientasi mobile dengan halaman pendaratan yang optimal |
Label floating terlihat paling menarik, tetapi memerlukan penambahan kode markup atau JavaScript untuk mendeteksi keadaan kosong. Sementara itu, label outlined merupakan solusi yang paling universal.
Daftar periksa aksesibilitas
- Label yang terlihat jelas untuk setiap input. Jangan pernah menggunakan placeholder sebagai satu-satunya label; label tersebut akan menghilang saat fokus ditekan dan tidak memberikan kontras yang memadai.
<label for>atau versi terbungkus<label>: Keduanya sah; versi terbungkus sedikit lebih mudah digunakan.- Indikator fokus: Jangan pernah menggunakan
outline: nonetanpa pengganti. Pengguna keyboard memerlukannya. - Pesan kesalahan: hubungkan pesan tersebut melalui
aria-describedbypada masukan. Jangan hanya menggunakan warna untuk menandai kesalahan; tambahkan teks atau ikon. - Bidang wajib: gunakan atribut
required. Tambahkan penanda visual (tanda bintang) pada label untuk pengguna yang dapat melihat. - Jenis input: gunakan
type="email",type="tel",type="url", atautype="number"; keyboard seluler dapat menyesuaikan diri. - Atribut
autocomplete:autocomplete="email",autocomplete="current-password", dan sebagainya; membantu pengguna menghemat waktu mengetik secara signifikan.
Status validasi asli
CSS memiliki kelas semu untuk memastikan validitas formulir:
:required/:optional:valid/:invalid:in-range/:out-of-range(untuk input numerik dengan batas minimum dan maksimum):placeholder-shown(kosong, tempat penampungan terlihat):user-invalid(tidak valid dan pengguna telah berinteraksi, yang sesuai untuk jenis kesalahan)
Kelas pseudo :user-invalid merupakan cara paling tepat untuk menampilkan kesalahan hanya setelah pengguna melakukan suatu tindakan, sehingga menghindari munculnya batas merah sebelum interaksi terjadi. Dukungan untuk fitur ini tersedia di semua versi utama sekitar tahun 2023.
Status dinonaktifkan
.field input:disabled {
background: #f3f4f6;
color: #9ca3af;
cursor: not-allowed;
}
Input yang dinonaktifkan tidak dapat difokuskan maupun dikirimkan. Jika Anda ingin data tersebut dapat difokuskan oleh alat pembaca layar, gunakan readonly, formulir akan mengirimkan nilai tersebut, tetapi pengguna tidak dapat mengeditnya.
Pertanyaan yang Sering Diajukan
Tidak. Placeholder akan menghilang begitu pengguna mengetik, sehingga tidak dapat digunakan sebagai label. Selain itu, teks placeholder umumnya memiliki kontras rendah dan tidak memenuhi standar WCAG. Gunakan label yang jelas serta placeholder opsional untuk memberikan petunjuk format.
Karena :invalid langsung berlaku untuk bidang wajib yang kosong, gunakan :user-invalid (yang memperhitungkan interaksi pengguna) atau gabungkan :invalid:not(:placeholder-shown) sebagai solusi sementara pada peramban lama.
Atur appearance: none, hapus panah bawaan, lalu tambahkan panah Anda sendiri menggunakan gambar latar belakang atau elemen wrapping dengan panah pseudo-element. Daftar opsi di dalamnya tetap mengikuti tampilan bawaan sistem operasi dan tidak dapat dikustomisasi menggunakan CSS.
Keduanya. Validasi HTML (required, type, pattern) hanya cocok untuk kasus sederhana yang tidak memerlukan JavaScript. JavaScript digunakan untuk mengelola aturan kompleks, seperti kekuatan kata sandi dan ketergantungan antar bidang data. Selalu lakukan validasi di sisi server pula, validasi di sisi klien bertujuan untuk pengalaman pengguna (UX), bukan keamanan.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Penghitung FPS
Ukur FPS browser dengan requestAnimationFrame: penghalusan, frame rate minimum dan maksimum, ambang peringatan, dan grafik opsional. Berjalan lokal, tanpa unggahan dan tanpa API.
Generator Warna Acak
Buat 1 hingga 50 warna HEX acak dengan contoh warna yang bisa dipratinjau, disalin, dan dipakai di CSS, pengujian, atau eksplorasi palet.
Pemilih Warna HEX
Pilih atau masukkan warna HEX untuk mendapatkan RGB, HSL, perkiraan CMYK, luminans relatif, serta kontras terhadap putih dan hitam.