Skip to content

Skeleton ​

Kontent yuklanishidan oldin uning shakliga taqlid qiluvchi joy egallovchi yuklash indikatorlari.

Basic ​

vue
<VxSkeleton />
<VxSkeleton />
<VxSkeleton width="60%" />

Variants ​

vue
<VxSkeleton variant="text" />
<VxSkeleton variant="circular" />
<VxSkeleton variant="rectangular" :height="100" />
<VxSkeleton variant="rounded" :height="100" />

Animations ​

Wave (default)
Pulse
None
vue
<VxSkeleton animation="wave" />
<VxSkeleton animation="pulse" />
<VxSkeleton animation="none" />

Multi-line Text ​

Paragrafga o‘xshash skeleton hosil qilish uchun linesdan foydalaning. Tabiiy ko‘rinish uchun oxirgi qator avtomatik ravishda qisqaroq bo‘ladi.

vue
<VxSkeleton :lines="3" />
<VxSkeleton :lines="5" />

Custom Sizes ​

vue
<VxSkeleton variant="circular" :width="32" :height="32" />
<VxSkeleton variant="circular" :width="48" :height="48" />
<VxSkeleton variant="circular" :width="64" :height="64" />
<VxSkeleton variant="rounded" :width="200" :height="120" />

Custom Border Radius ​

vue
<VxSkeleton variant="rectangular" :width="120" :height="80" :rounded="0" />
<VxSkeleton variant="rectangular" :width="120" :height="80" :rounded="8" />
<VxSkeleton variant="rectangular" :width="120" :height="80" :rounded="24" />

Card Composition ​

Realistik yuklash joy egallovchilarini qurish uchun skeletonlarni birlashtiring.

vue
<div class="card">
  <VxSkeleton variant="rounded" :height="160" />
  <div class="card-header">
    <VxSkeleton variant="circular" :width="40" :height="40" />
    <div>
      <VxSkeleton width="60%" />
      <VxSkeleton width="40%" />
    </div>
  </div>
  <VxSkeleton :lines="3" />
</div>

Loading State ​

Skeleton va haqiqiy kontent o‘rtasida almashish uchun loading prop’dan foydalaning.

vue
<script setup>
import { ref } from 'vue'
const loaded = ref(false)
</script>

<template>
  <VxSkeleton variant="circular" :width="48" :height="48" :loading="!loaded">
    <VxAvatar size="lg" name="Jane Doe" />
  </VxSkeleton>

  <VxSkeleton width="50%" :loading="!loaded">
    <span>Jane Doe</span>
  </VxSkeleton>

  <VxSkeleton :lines="2" :loading="!loaded">
    <p>Building delightful user interfaces...</p>
  </VxSkeleton>
</template>

API ​

Props ​

PropTypeDefaultDescription
variant'text' | 'circular' | 'rectangular' | 'rounded''text'Skeleton shakli
animation'wave' | 'pulse' | 'none''wave'Animatsiya turi
widthstring | number—Moslashtirilgan kenglik (raqam px sifatida qabul qilinadi)
heightstring | number—Moslashtirilgan balandlik (raqam px sifatida qabul qilinadi)
roundedstring | number—Moslashtirilgan border radius o‘zgartirishi
loadingbooleantruetrue bo‘lsa skeleton, false bo‘lsa standart slotni ko‘rsatadi
linesnumber1Render qilinadigan matn qatorlari soni

Slots ​

SlotDescription
defaultloading false bo‘lganda ko‘rsatiladigan kontent