· Determinate ne zaman? Tamamlanma yüzdesini güvenle hesaplayabiliyorsan kullan; tahmin et ve düzelteceksen kullanma — geri giden progress en büyük UX hatası.
· Indeterminate ne zaman? Süre belirsiz, ama 1 saniyeden uzun. 200ms'den kısa beklemelerde hiç gösterme — flash hissi yaratır.
· Spinner button içinde ikon yerine geçer; metin imperatif → şimdiki zaman'a döner ("Gönder" → "Gönderiliyor…"). Buton hala aynı genişlikte (CLS yok).
· Track rengi her zaman --nb-color-border; fill --nb-primary. Status renkleri (warning/danger) progress'te kullanılmaz.
· Step progress 5 segmentten sonra "X / N" sayacına çevir — bar fazla bölünür, okunmaz.
· Erişilebilirlik: role="progressbar" + aria-valuenow/min/max; indeterminate'de yalnızca aria-busy. Spinner'a aria-label="Yükleniyor".
· prefers-reduced-motion: reduce'da animasyonlar duraklatılmaz ama hız 50%'ye iner; tamamen durdurma → kullanıcı yükleme bilgisini kaybeder.