Spinner
Yuklanish belgisi: role="status", matn rangini oladi, 3 o'lcham.
YuklanmoqdaYuklanmoqdaYuklanmoqda
'use client';
import { Spinner } from '@akhatmirzo/ui';
export default function SpinnerSizes() {
return (
<div className="flex flex-wrap items-center gap-4 text-text-muted">
<Spinner size="sm" />
<Spinner size="md" />
<Spinner size="lg" />
</div>
);
}
Import
import { Spinner } from '@akhatmirzo/ui';Qachon ishlatish
- Qisqa, davomiyligi noma'lum kutishlar uchun — so'rov yuborilganda, kichik blok yuklanayotganda.
- Tugmada spinner qo'lda qo'ymang —
ButtonvaIconButtondaloadingprop'i bor. - Kontentning shakli ma'lum bo'lsa — ro'yxat, karta, jadval —
Skeletonyaxshiroq: sahifa "sakramaydi". - Bir ekranda bitta spinner. O'nlab aylanayotgan belgi foydalanuvchini charchatadi.
O'lchamlar
sm — 16px, md (standart) — 20px, lg — 24px.
Rang
Spinner currentColor bilan chiziladi — ota elementning matn rangini oladi. Rangni
className="text-primary" kabi semantik tokenlar bilan bering.
YuklanmoqdaYuklanmoqdaYuklanmoqdaYuklanmoqdaYuklanmoqda
'use client';
import { Spinner } from '@akhatmirzo/ui';
export default function SpinnerColors() {
return (
<div className="flex flex-wrap items-center gap-4">
<Spinner className="text-text" />
<Spinner className="text-primary" />
<Spinner className="text-success" />
<Spinner className="text-danger" />
<span className="inline-flex size-10 items-center justify-center rounded-lg bg-primary text-primary-foreground">
<Spinner size="sm" />
</span>
</div>
);
}
Matn bilan
Yonida ko'rinadigan matn bo'lsa, spinnerni aria-hidden bilan yashiring — aks holda ekran
o'quvchi ikki marta o'qiydi. Yolg'iz spinner uchun esa label ga aniq matn bering.
Buyurtmalar yuklanmoqda...
Jadval yuklanmoqda
'use client';
import { Spinner } from '@akhatmirzo/ui';
export default function SpinnerWithText() {
return (
<div className="flex w-full max-w-sm flex-col gap-3">
<span className="inline-flex items-center gap-2 text-sm text-text-muted">
<Spinner size="sm" aria-hidden="true" />
Buyurtmalar yuklanmoqda...
</span>
<div className="flex h-32 items-center justify-center rounded-lg border border-border bg-surface text-text-muted">
<Spinner size="lg" label="Jadval yuklanmoqda" />
</div>
</div>
);
}
Props
Spinner qolgan barcha <span> atributlarini qabul qiladi (children dan tashqari).
| Prop | Tip | Standart | Tavsif |
|---|---|---|---|
size | 'sm' | 'md' | 'lg' | 'md' | O'lcham: 16 / 20 / 24px |
label | string | 'Yuklanmoqda' | Ekran o'quvchi uchun yashirin matn |
Ildiz elementda data-size atributi bor. Aylanadigan doira klasslari spinnerVariants sifatida
eksport qilinadi.
Accessibility
role="status"— ekran o'quvchi yashirinlabelmatnini o'qiydi; aylanadigan doiraning o'ziaria-hidden.- Kamaytirilgan harakat. Tizimda "reduce motion" yoqilgan bo'lsa, spinner to'xtamaydi, lekin sekinroq (1.5s) aylanadi — kutish holati baribir ko'rinadi.