Component

Vue Skeleton Component

<DomSkeleton>

A token-driven loading placeholder for cards, rows, text blocks, and avatars.

Playground

Try every prop live

Skeleton playground

Adjust the props to explore sizing, content, and behaviour.

Playground.vuevue
Install
npm install @getdom/studio
vue
<script setup>
import '@getdom/studio/style.css';
import { reactive } from 'vue';
import { DomSkeleton } from '@getdom/studio';

const data = reactive({
		"as": "div",
		"variant": "text",
		"lines": 3,
		"width": "100%",
		"height": "",
		"label": "Loading",
		"animated": true
	});
</script>

<template>
	<DomSkeleton
		v-bind="data"
	/>
</template>

Reference

Props

Control props

NameTypeTSDefaultDescription
asstringstring'div'Element to render.
variant'block' | 'text' | 'circle'string'block'Placeholder shape.
linesnumbernumber1Number of text lines when variant is text.
widthstringstring''Optional CSS width.
heightstringstring''Optional CSS height.
labelstringstring'Loading'Screen reader label.
animatedbooleanbooleantruePulse while content is loading.

Auto-generated from Skeleton.props and inline _edit hints.