CSS Yükleyici Oluşturucu

Sonraki

Spinner, kullanıcıya bir şeylerin olduğunu gösterir. Bu oluşturucu tek bir dairesel CSS spinner üretir: çapı, kenarlık kalınlığını, vurgu rengini ve dönüş hızını ayarlayın, canlı önizlemeyi izleyin ve CSS kodunu kopyalayın. Her şey saf CSS; SVG yok, JavaScript yok ve harici kütüphane yok.

Oluşturucu nasıl kullanılır

  1. 1

    Boyutu ayarlayın

    Spinnerın piksel cinsinden çapı. 40-80 px, çoğu düğmeye ve içerik alanına uyar.

  2. 2

    Kenarlık kalınlığını ayarlayın

    Halka, bir daire üzerine çizilen kenarlıktır. Daha kalın kenarlık daha belirgin bir yay oluşturur; 60 px için 4-8 px iyi görünür.

  3. 3

    Rengi seçin

    Dönen yayın vurgu rengi. Halkanın geri kalanı açık gri kalır, böylece yay öne çıkar.

  4. 4

    Hızı ayarlayın ve CSS kodunu kopyalayın

    Bir tam turun saniye cinsinden süresi. Genellikle 1 saniye en uygunudur; 500 ms altı telaşlı, 2 saniye üstü ağır hissettirir.

Üretilen CSS nasıl çalışır

.loader {
  width: 60px;
  height: 60px;
  border: 6px solid #eee;
  border-top-color: #10b981;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

Spinner, kalın bir kenarlıkla çizilen bir dairedir. border-top-color kuralı halkanın yalnızca üst kısmını vurgu rengiyle boyar, böylece halka bir yay gibi görünür; @keyframes spin kuralı da onu merkezi etrafında döndürür. transform: rotate() ile döndürmek animasyonu hafif tutar, çünkü tarayıcı öğeyi kare kare yeniden çizmek yerine kompozitörde hareket ettirir.

Sayfada göstermek için bir öğe ekleyin ve CSS dosyasını yükleyin:

<div class="loader" role="status" aria-label="Yükleniyor"></div>

Erişilebilir hale getirin

  • role="status" ekleyin, böylece ekran okuyucular spinneri seslendirir.
  • aria-label değerine durum metnini yazın, örneğin “Yükleniyor”.
  • İçeriği birkaç saniyeden uzun süre spinnerin arkasında gizlemeyin, zaman aşımı için bir yedek olmadan.
  • prefers-reduced-motion tercihine saygı gösterin. Animasyonları kapatmış kullanıcılar için dönme animasyonunu basit bir solma efektiyle ya da statik bir “Yükleniyor…” metniyle değiştirin:
@media (prefers-reduced-motion: reduce) {
  .loader { animation: none; background: currentColor; opacity: .4; }
}

Ne zaman spinner, ne zaman iyimser arayüz

  • 100 ms altında yanıt: spinnera gerek yok; insan gözü gecikmeyi neredeyse fark etmez.
  • 100 ms – 1 s: ince bir spinner (küçük halka, “Yükleniyor…” düğme metni) çift tıklamaları önler.
  • 1 s – 10 s: belirgin bir spinner, ölçülebiliyorsa ideal olarak ilerlemeyle birlikte.
  • > 10 s: bu bir spinner sorunu değildir; neyin yavaş olduğunu bulup düzeltin.

Form gönderimleri ve düğme tıklamaları için düğmenin içindeki bir spinner, genellikle tüm sayfayı kaplayan bir katmandan daha iyidir.

Sık Sorulan Sorular

Basit, tek öğeli spinnerlar için CSS (dört kenarlığı döndürme numarası). Sivrilen bir ize, birden çok stroke-dasharray animasyonuna ya da fırça darbesi gibi görünen dolgulu parçalara ihtiyaç duyduğunuzda SVG. CSS daha küçük ve basittir; SVG daha esnektir.

Muhtemelen büyük bir öğeyi döndürdüğünüz ya da kompozit edilmeyen bir özelliği animasyonladığınız için. Spinnerı küçük tutun, top/margin yerine transform: rotate() kullanın ve diğer ağır animasyonlar çalışırken onu tetiklemekten kaçının.

Neredeyse her zaman saat yönünde. Saat yönünün tersine dönenler hafiften yanlış hissettirir; çünkü gerçek dünyadaki dönüş ipuçlarının çoğu (saatler, yel değirmenleri) saat yönünde döner. Belirli bir nedeniniz yoksa bu geleneğe uyun.

JavaScript’te yükleyici sınıfını ekleyen bir setTimeout(..., 300) ve işlem daha önce biterse çalışan bir clearTimeout ile. Bu, gerçek gecikmeleri gizlemeden hızlı yanıtlarda titremeyi önler.

İlgili Araçlar

Araç diğer dillerde mevcuttur