Pseudo-Classes untuk Form: Meningkatkan Interaksi Pengguna
Formulir adalah jembatan komunikasi antara pengguna dan aplikasi Anda. Dengan pseudo-classes, Anda bisa membuat form yang "berbicara" kepada pengguna.
1. :focus (Saat Input Aktif)
Aktif ketika pengguna mengklik atau berpindah (menggunakan TAB) ke sebuah elemen input.
-
Fungsi: Memberi tahu pengguna posisi mereka saat ini dalam formulir.
-
Tips: Biasanya digunakan untuk mengubah warna border atau menambah box-shadow yang halus.
2. :disabled (Elemen Terkunci)
Digunakan untuk menata elemen input yang atribut disabled-nya aktif (tidak bisa diisi atau diklik).
-
Fungsi: Memberikan petunjuk visual bahwa input tersebut saat ini tidak tersedia atau memerlukan tindakan lain terlebih dahulu.
3. :checked (Pilihan Terpilih)
Khusus digunakan untuk elemen dan .
-
Fungsi: Mengubah tampilan label atau elemen itu sendiri saat dipilih. Sering digunakan untuk membuat kustomisasi checkbox yang cantik.
4. :valid dan :invalid (Validasi Otomatis)
CSS secara otomatis bisa mendeteksi apakah data yang dimasukkan sesuai dengan aturan (seperti type="email" atau atribut required).
-
:valid: Aktif jika input memenuhi syarat.
-
:invalid: Aktif jika input tidak sesuai syarat (misal: format email salah).
Tutorial: Membuat Form yang Responsif & Informatif
Mari kita praktikkan pada sebuah form sederhana agar terlihat lebih interaktif.
Struktur HTML
<form class="my-form"> <div class="field"> <label>Email:label> <input type="email" required placeholder="user@example.com"> <span class="msg">Format email salah!span> div&g t; <div class="field"> <label>Username (Terkunci):label> <input type="text" value="dika_antoni" disabled> div> <div class="field"> <input type="checkbox" id="agree"> <label for="agree" class="check-label">Saya setuju dengan ketentuan.label> div>
form>
Kode CSS
/* State Focus: Memberi cahaya biru saat diklik */
input:focus { outline: none; border-color: #3498db; box-shadow: 0 0 8px rgba(52, 152, 219, 0.3);
} /* State Disabled: Membuat latar belakang abu-abu dan kursor dilarang */
input:disabled { background-color: #f5f5f5; cursor: not-allowed; color: #999;
} /* State Valid & Invalid: Memberikan warna indikator */
input:focus:invalid { border-color: #e74c3c; /* Merah jika salah */
} input:focus:valid { border-color: #27ae60; /* Hijau jika benar */
} /* Sembunyikan pesan error jika masih valid */
input:valid + .msg { display: none;
} /* State Checked: Mengubah gaya label saat checkbox dicentang */
input:checked + .check-label { font-weight: bold; color: #27ae60;
}
Tips Pro untuk Developer
-
Gunakan Fokus yang Jelas: Jangan pernah menghilangkan
outlinepada:focustanpa memberikan gaya pengganti. Ini akan sangat menyulitkan pengguna yang menggunakan keyboard. -
Kombinasi dengan Atribut HTML: Pastikan Anda menggunakan atribut seperti
required,minlength, ataupatterndi HTML agar pseudo-classes:validdan:invalidbisa bekerja secara otomatis. -
User Friendly: Jangan langsung menampilkan warna merah (
:invalid) saat halaman baru dimuat. Gunakan selektorinput:focus:invalidagar warna merah hanya muncul saat user sedang mencoba mengisi namun salah.
Di proyek Kolak Pisang yang mengelola data a kta kelahiran, penggunaan :valid dan :invalid akan sangat membantu meminimalisir kesalahan input data oleh petugas sebelum dikirim ke server Laravel Anda.