تخطّي إلى المحتوى الرئيسي

هيكل Skeleton

عنصر نائب أثناء انتظار تحميل المحتوى.

الاستخدام الأساسي​

الاستخدام الأساسي
import { LhSkeleton } from '@lh-ui/react'

export default function Demo() {
return <LhSkeleton avatar rows={2} sx={{ w: 300 }} />
}

Skeleton Props​

الخاصيةالوصفالنوعالقيم المتاحةالافتراضي
loadingإظهار الهيكل (عند false تُعرَض العناصر الفرعية)boolean—true
rowsعدد صفوف النصnumber—3
avatarتضمين عنصر نائب دائري للصورة الرمزيةboolean—false
animatedتفعيل الحركةboolean—true
sxخصائص تخطيط سريعةSxProps——

SkeletonItem Props​

LhSkeletonItem كتلة عنصر نائب مُصدَّرة بشكل مستقل، يمكن استخدامها منفردةً لتكوين أي هيكل مرغوب.

الخاصيةالوصفالنوعالقيم المتاحةالافتراضي
variantشكل كتلة العنصر النائب'text' | 'rect' | 'circle'—'text'
animatedتفعيل الحركةboolean—true
classNameصنف مُلحَقstring——
styleأنماط مضمَّنة مُلحَقةCSSProperties——
sxخصائص تخطيط سريعةSxProps——
import { LhSkeletonItem } from '@lh-ui/react'

export default function Demo() {
return (
<div style={{ display: 'flex', gap: 16, width: 300 }}>
<LhSkeletonItem variant="circle" />
<div style={{ flex: 1 }}>
<LhSkeletonItem style={{ marginBottom: 8 }} />
<LhSkeletonItem style={{ width: '60%' }} />
</div>
</div>
)
}
خوارزمية عرض الصف

عند rows > 1 يتقلَّص الصف الأخير إلى 60% لمحاكاة تنسيق الفقرات الحقيقي؛ ويجب أن يكون للعنصر الجذري عرض محدَّد (لأن عرض الصف نسبي).

إمكانية الوصول

يُخرِج حاوية الهيكل aria-busy="true" + aria-live="polite"؛ وجميع كتل العنصر النائب aria-hidden، وعند جهوزية البيانات يُعيد قارئ الشاشة قراءة المحتوى الحقيقي. وتتدهور الحركة تلقائيًا إلى عنصر نائب ثابت تحت prefers-reduced-motion.

الأنماط​

import '@lh-ui/react/style/skeleton'