CSS Form Üreticisi

Sonuçlar

Formlar, çoğu web sitesinde en çok etkileşime girilen ancak birçok sitede en az özenle tasarlanan bölümdür. Bu üretici, tutarlı bir görsel tarza sahip, tamamen stillendirilmiş bir formun CSS’ini üretir: duyarlı bir form ızgarası, etiket + giriş kutusu çiftleri, metin alanları, seçim kutuları ve belirgin odak durumları. Vurgu rengini, köşe yarıçapını ve boşluğu ayarlayın, ardından stil sayfasını kopyalayın. CSS, yerel form semantiğini koruduğu için doğrulama, klavye kullanımı ve ekran okuyucular sorunsuz çalışır.

Üretici nasıl kullanılır

  1. 1

    Vurgu rengini ayarlayın

    Vurgu rengi, her alanın odak halkasını ve kenarlık rengini belirler.

  2. 2

    Köşe yarıçapını seçin

    Yarıçap; giriş kutuları, metin alanları ve seçim kutuları için geçerlidir, böylece hepsi aynı şekli paylaşır.

  3. 3

    Boşluğu ayarlayın

    Boşluk, form ızgarasındaki alanlar arasındaki dikey aralığı kontrol eder.

  4. 4

    CSS'i kopyalayın

    HTML'inize dokunmadan yapıştırıp uyarlayabileceğiniz eksiksiz bir stil sayfası.

Temel form

<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; }

Dört yaygın stil

Stil Nedir En uygun olduğu yer
Çerçeveli Giriş alanının çevresinde kenarlık, şeffaf arka plan Masaüstü formları, yoğun düzenler
Alt çizgili Sadece alt kenarlık Minimal / editoryal arayüz
Dolgulu Gri arka plan, kenarlık yok Material Design’dan ilham alan arayüz
Yüzen etiket Etiket içte yer alır, odaklanınca veya değer girilince yukarı doğru animasyonla çıkar Mobil öncelikli, açılış sayfaları

Yüzen etiket en şık görünendir, ancak boş durumu algılamak için ek işaretleme veya JavaScript gerektirir. Çerçeveli stil ise en evrensel olanıdır.

Erişilebilirlik Kontrol Listesi

  • Her giriş alanı için görünür bir etiket. Yer tutucuyu (placeholder) tek etiket olarak kullanmayın; odaklanınca kaybolur ve kontrast açısından yetersizdir.
  • <label for> veya sarmalayan <label>. İkisi de geçerlidir; sarmalayan biçim biraz daha kolaydır.
  • Odak göstergesi: Bir alternatif koymadan asla outline: none kullanmayın. Klavye kullanıcıları için gereklidir.
  • Hata mesajları: bunları giriş alanındaki aria-describedby aracılığıyla bağlayın. Hataları yalnızca renkle belirtmeyin; bir metin mesajı veya simge ekleyin.
  • Zorunlu alanlar: required özniteliğini kullanın. Gören kullanıcılar için etikete görsel bir işaret (yıldız) ekleyin.
  • Giriş türleri: type="email", type="tel", type="url", type="number" kullanın; mobil klavyeler buna uyum sağlar.
  • autocomplete öznitelikleri: autocomplete="email", autocomplete="current-password" vb. Kullanıcıların yazma süresini önemli ölçüde azaltır.

Yerel (native) doğrulama durumları

CSS, form geçerliliği için sözde sınıflar (pseudo-class) sunar:

  • :required / :optional
  • :valid / :invalid
  • :in-range / :out-of-range (en az ve en fazla değerleri içeren sayısal girdiler için)
  • :placeholder-shown (boş; yer tutucu görünür)
  • :user-invalid ( geçersiz ve kullanıcı etkileşimde bulunmuştur, hata stilleri için doğru değer )

:user-invalid sözde sınıfı, hataları yalnızca kullanıcı bir işlem yaptıktan sonra göstermenin en temiz yoludur ve etkileşim öncesinde kırmızı kenarlıkların çıkmasını önler. Bu destek yaklaşık 2023 yılında tüm başlıca tarayıcılara geldi.

Devre dışı durum

.field input:disabled {
  background: #f3f4f6;
  color: #9ca3af;
  cursor: not-allowed;
}

Devre dışı bırakılmış giriş alanları odaklanamaz ve gönderilemez. Ekran okuyucular için bunları odaklanabilir tutmak istiyorsanız readonly kullanın; form değeri gönderir ancak kullanıcı onu düzenleyemez.

Sık Sorulan Sorular

Hayır. Yer tutucular kullanıcı yazmaya başladığı anda kaybolur; bu nedenle etiket olarak kullanılamazlar. Ayrıca yer tutucu metni genellikle düşük kontrastlıdır ve WCAG standartlarını karşılamaz. Biçim ipuçları için görünür bir etiketi isteğe bağlı bir yer tutucuyla birlikte kullanın.

Çünkü :invalid, boş zorunlu alanlara hemen uygulanır. :user-invalid (etkileşime duyarlı) kullanın veya eski tarayıcılarda geçici çözüm olarak :invalid:not(:placeholder-shown) ile birleştirin.

appearance: none ayarlayın, varsayılan oku kaldırın ve kendi okunuzu bir arka plan görüntüsüyle ya da sözde öğe (pseudo-element) oku olan bir sarmalayıcı span aracılığıyla ekleyin. İçindeki seçenek listeleri işletim sistemi stilinde kalır ve CSS ile özelleştirilemez.

Her ikisi de geçerlidir. HTML doğrulaması (required, type, pattern), JavaScript kullanılmayan basit durumları ele alır. Karmaşık kurallar ise JavaScript tarafından işlenir (şifre güvenliği, alanlar arası bağımlılıklar). Her zaman sunucu düzeyinde doğrulama yapılmalıdır; çünkü istemci tarafındaki doğrulama güvenlik açısından değil, kullanıcı deneyimi açısından önemlidir.

İlgili Araçlar

Araç diğer dillerde mevcuttur