GH GambleHub

Mikro etkileşimler ve geri bildirimler

1) Mikro etkileşim nedir

Mikro etkileşimler, sistemin kullanıcıyı duyduğunu ve sonuca doğru ilerlediğini doğrulayan kısa sinyal ↔ yanıt döngüleridir.

Klasik dört:

1. Tetik (tıklama, kaydırma, odaklama, sistem olayı).

2. Kurallar (ne değişir ve nasıl).

3. Fidbeck (görsel/ses/dokunsal/metin).

4. Döngü/meta kuralları (tekrar, son kullanma, geri alma/yineleme).

Amaç: Görevden uzaklaşmadan belirsizliği ve bilişsel yükü azaltmak.

2) Tasarım ilkeleri

Anlamı> etkisi. Etki'ne olduğunu've "sırada ne olduğunu" açıklar.
Anlık bir şey. İlk yanıt 100 ms ≤ (düğmeler/anahtarlar).
Belirsizlik. Ayırt edilebilir durumlar: hover/focus/pressed/disabled/loading.
Tasarruf. Minimum özellikler, kısa süreler, havai fişek yok.
Tutarlılık. Aynı eylemler aynı sinyallerdir.
Erişilebilirlik. Fidbek bir ekran okuyucu tarafından görülür, duyulur ve okunur; Hareket/ses için bir alternatif var.

3) Zamanlamalar ve eğriler

Hover/Odak: 120-180ms

Basılı/Geçiş: 80-120 мс

Tost/Araç ucu: giriş 180-240ms, çıkış 120-160ms

Satır içi doğrulama: Alan odağının kaybından sonra ≤ 100 ms

Varsayılan eğri 'cubic-bezier (0. 2, 0, 0. 2, 1)`; preslenmiş için - hızlandırılmış 'kübik-bezier (0. 4, 0, 1, 1)`.

4) Mikro etkileşim kataloğu

4. 1 Düğmeler ve anahtarlar

Anında yanıt: ağ tarafından sorgulandığında görsel tıklama/girinti + meşgul durumu.
İyimser güncelleme: Kullanıcı arayüzünü hemen değiştirin, hataya geri dönün (geri alma ile).
Tartışmayı çift tıklayın :/timeout yanıtlanana kadar tekrarlamayı engelleyin.

4. 2 Formların satır içi doğrulaması

Bulanıklaştırma alanlarında doğrulama; Mesajlar kısa ve yapıcıdır ('en az 8 karakter ").
Durum simgesi + renk + metin (tek renk değil).
Parolalar için - anlık bir "güç" göstergesi (girişe müdahale etmez).

4. 3 Tost/afiş/atıştırmalıklar

Engellemeyen onaylar için kullanın.
Süre 2-5 s, hover/focus'da duraklat, uygun olduğunda Geri Al düğmesi.
Önemli içerikleri ve CTA'ları kapatmayın.

4. 4 İlerleme ve iskeletler

İşlemin uzunluğu biliniyorsa, ilerleme çubuğu; Değilse, spinner yerine iskelet.
Düzen sıçraması yok: düzelt. blok yükseklikleri.

4. 5 Rozetler/sayaçlar

Rakam kontrastı ≥ 4. 5:1; Kesme '99 +'ile maksimum 99/999.
Artım animasyonları - "titreyen" düzen olmadan 40-60 ms'lik kısa adımlar.

4. 6 Araç ipucu/Yardım

Hover/focus ile görünüm; 'aria-describedby' aracılığıyla erişilebilirlik.
Kritik bilgileri yalnızca ipucunda yasaklayın.

5) Hatalar, boş durumlar, geri al

Hata: dürüst metin, sebep ve eylemin açıklaması ("Tekrar", "Kartı değiştir").
Boş durum: ne olduğu ve nasıl başlanacağı; İllüstrasyon sessiz, metin kontrastı AA/AAA.
Geri al penceresi: Geri alınabilir eylemler için 5-10 s (kaldırma, mermiden önce bahsin iptali).

6) Multimodal geri bildirim

Ses: sessiz, kısa, olay türü başına bir desen (başarı/hata/dikkat); Ayarları kapatın.
Vibro/haptika: kolay basın yanıtı/başarı; 'prefers-reduced-motion've sistem sınırlamalarına saygı gösterin.
Görsel: sadece 'transform/opacity', dizilerde ağır bulanıklık/gölgeler yok.

7) Kullanılabilirlik (A11y)

Klavye için ': focus-visible'; Bulanık olmadan odak halkası.
Ekran koruyucu: 'role =' status'/' alert '' tost için; Yaşayan bölgeler 'arya-canlı =' kibar/iddialı ''.
Ses/harekete alternatif; 'prefers-reduced-motion: reduce'.
Metin ve simge kontrastı - WCAG (normal ≥ 4. 5:1).

8) Performans

100ms ≤ yanıt verin: ağa görsel yanıt.
'Dönüştürme/opaklığı' canlandırın; Birden çok öğe üzerinde 'yükseklik/sol/kutu-gölge'den kaçının.
Ağ etkileri - prefetch ve iyimserlik ile; Retrai idempotenttir.

9) Mikro etkileşim belirteçleri (tasarım sistemi)

json
{
"micro": {
"duration": { "hover": 160, "focus": 160, "press": 90, "toastIn": 220, "toastOut": 140 },
"easing":  { "std": "cubic-bezier(0. 2,0,0. 2,1)", "acc": "cubic-bezier(0. 4,0,1,1)" },
"toast":  { "timeoutMs": 3500, "pauseOnHover": true },
"badge":  { "max": 99, "emphasisStepMs": 50 }
}
}

10) Uygulama parçacıkları

Hover ve Undo duraklama tost:
html
<div id="toast" role="status" aria-live="polite" hidden></div>
<script>
const toast = (msg, {undo, timeout=3500}={})=>{
const el = document. getElementById('toast');
el. innerHTML = undo? '$ {msg} <button> Undo </button>': msg;
el. hidden = false;
let t = setTimeout(close, timeout);
el. onmouseenter = () => clearTimeout(t);
el. onmouseleave = () => t = setTimeout(close, timeout);
if (undo) el. querySelector('button'). onclick = ()=>{ undo(); close(); };
function close(){ el. hidden = true; el. innerHTML=''; }
};
</script>
Bulanıklaştırma için satır içi doğrulama:
js const rules = { password: v => v.length>=8         "Minimum 8 characters"};
document. querySelectorAll('[data-validate]'). forEach(i=>{
i.addEventListener('blur', e=>{
const rule = rules[e. target. name]; if (!rule) return;
const ok = rule(e. target. value);
e. target. dataset. state = ok===true? 'ok': 'err';
e. target. nextElementSibling. textContent = ok===true? '': ok;
});
});
Haptica/vibro (folback):
js export const haptic = type => {
if (!('vibrate' in navigator)) return;
if (type==='success') navigator. vibrate(10);
if (type==='error') navigator. vibrate([20,40,20]);
};
"Ucuz" efektler için CSS:
css
.button{ transition: transform. 09s cubic-bezier(.4,0,1,1), box-shadow. 16s cubic-bezier(.2,0,.2,1); }
.button:active{ transform: scale(.98); }
.input[data-state="err"]{ outline: 2px solid var(--role-danger); }
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (prefers-reduced-motion: reduce){ { animation:none! important; transition-duration:.01ms! important; } }

11) Metrikler ve kalite kontrolü

INP p75 <200 ms, Uzun Görevler payı <%5.

İlk Kullanıcı Geribildirimi klik ^ vizualnyy ≤ 100ms

🚨 %3'lük bir geri dönüş ile iyimser eylemlerin oranı (aksi takdirde - güvensizlik).

UX anketleri: hata mesajlarının netliği, onayların görünürlüğü.

QA kontrol listesi

  • Her interaktif 'basılı/meşgul/devre dışı' vardır.
  • Hatalara metin ve eylemler eşlik eder (Retry/Undo).
  • Tostlar SR'de mevcuttur ve anahtar içeriği çakışmaz.
  • Satır içi doğrulama girişe müdahale etmez; Mesajlar özeldir.
  • 'prefers-reduced-motion' desteklenir; Ses/titreşim kapalı.
  • Hiçbir düzen ve strobe atlar; 'transform/opacity' üzerindeki animasyonlar.

12) iGaming'in özellikleri

Bet/purchase: anında 'preslenmiş - meşgul', Undo ile 'Kabul Edildi' tostu (düzenlemeler izin veriyorsa), idempotent anahtarları; gecikmede> 1 s - "Onay bekleniyor"....
Spin/Reveal: kısa basın geribildirimi, sonsuz yanıp sönmeden pürüzsüz başlangıç/durdurma; Win - patlama ≤ 500 ms + okunabilir metin (AAA).
Canlı katsayılar: Toplu güncellemeler, "sıçramalar" olmadan görsel diff (ok/kalınlık).
Ödemeler/sonuçlar: adım adım ilerleme (KUS - Proverka - Vyplata), reddetme nedenlerinin şeffaf metinleri.
Sorumlu oyun: dikkat dağıtıcı etkileri olmayan bildirimler; Daha yüksek kontrast, açık "Set Limit" CTA'ları.

13) Anti-desenler

Bir tıklatmaya yanıt göstermeden önce bir ağ yanıtı bekleyin.
"Şekilsiz renk": durum sadece gölgede farklılık gösterir.
Sonsuz titreşimler/yanıp sönmeler, anahtarsız keskin sesler.
Klavyeden erişilemeyen kritik içeriğe sahip araç ipucu.
Boşlukta spinner> 1-2 s ilerleme/iskelet olmadan.
Yüzlerce öğede ince gölgeler/bulanıklık (zayıf cihazlarda gecikme).

14) Tasarım sistemindeki belgeler

"Mikro belirteçler": 'süre/hareket hızı', tost/rozet/doğrulayıcıların ön ayarları.
"Desenler": düğmeler, şekiller, tostlar, ilerleme, satır içi hatalar, geri alma.
"A11y & Motion": SR/HC/reduced-motion için kurallar; ARIA örnekleri.
"Yap/Yapma": zamanlamaları olan kısa klipler, INP/İlk Geri Bildirim numaraları.

Kısa Özet

Mikro etkileşimler bir güven dilidir. ≤ 100 ms'de bir yanıt verin, anlaşılabilir durumları yakalayın, güvenli geri alma ile iyimser kullanın, yalnızca renge güvenmeyin ve ışık özelliklerini canlandırın. Kullanılabilirliğe ve performansa saygı gösterin - o zaman ürün, özellikle gerçek zamanlı senaryolarda canlı, dürüst ve güvenilir hisseder.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.