Skip to content

UiSkeleton ​

Placeholder de carga animado para contenido que está siendo obtenido.

Props ​

PropTipoDefaultDescripción
variant'text' | 'title' | 'avatar' | 'badge' | 'block''text'Forma del skeleton
widthstring(auto por variante)Ancho CSS (ej: '120px', '50%')
heightstring(auto por variante)Alto CSS
radiusstring(auto por variante)Border radius CSS

Dimensiones por variante ​

VarianteAncho defaultAlto defaultRadius default
text100%14px--radius-sm
title100%22px--radius-sm
avatar32px32px50%
badge70px20px--radius-full
block100%min 1rem--radius-sm

Ejemplos ​

vue
<!-- Skeleton de texto inline -->
<UiSkeleton variant="text" width="150px" />

<!-- Skeleton de avatar grande -->
<UiSkeleton variant="avatar" width="48px" height="48px" radius="var(--radius-lg)" />

<!-- Skeleton de bloque (card cargando) -->
<UiSkeleton variant="block" height="72px" radius="var(--radius-lg)" />

<!-- Filas de skeleton en una detail grid -->
<UiDetailGrid>
  <div v-for="n in 5" :key="n" class="info-row-skeleton">
    <UiSkeleton variant="text" width="120px" />
    <UiSkeleton variant="text" width="160px" />
  </div>
</UiDetailGrid>

Notas ​

  • Siempre aria-hidden="true" — no debe ser anunciado por lectores de pantalla
  • La animación de pulse usa background-size: 200% 100% con animation — no @keyframes pesados
  • Para skeletons en tablas, usar loading prop de UiDataTable (genera filas skeleton automáticamente)

Documentación de Kaleo — plataforma SaaS multi-tenant