Pattern — Loading & Skeleton
Yükleme süresine göre 3 farklı pattern: <100ms hiçbir şey, 100ms–1s spinner, >1s skeleton. Skeleton gerçek layout'u taklit eder; spinner ortada dönen yuvarlak değildir.

Spinner (inline · 100ms–1s)

Sipariş oluşturuluyor…
Buton içi: async eylem sırasında label "…liyor", buton disabled.

Sayfa skeleton (>1s)

Liste skeleton — gerçek satır iskeleti

Kural: skeleton gerçek satırın aynı yüksekliğinde olur — yoksa veri gelince layout sıçrar (CLS). Genişlikler %60-90 arası değişir; eşit uzunluk plastik durur.

Süreye göre karar matrisi

SüreUIÖrnek
<100msHiçbir gösterge — anlık hissetTab geçişi, dropdown aç
100ms–1sButon içi spinner, "…liyor" labelForm submit, sipariş onay
1s–10sSkeleton (gerçek layout)Sayfa açılış, liste yükle
>10sProgress bar + iptal seçeneğiToplu mesaj gönderimi, rapor export