Skip to content

shadcn.io is an independent project built on shadcn/ui

Free

Profile with Stats Skeleton for Vue

A profile placeholder with a large avatar, three lines, three bordered stat boxes and a button.

UI library: Ark UI

A large avatar sits beside three lines, then three bordered boxes for stats, then a button across the card. The border is on the box, not on the bar.

Use it when a profile leads with its counts. If one number is updating and the layout is already there, a Spinner in that box is enough. In Vue, Ark UI does not calculate the stats.

Preview

Preview width

Installation

MCP · Pro
Make your AI a shadcn expert
Your agent installs components, builds pages and restyles your app from one prompt, in Claude Code, Cursor or VS Code.
Part of Pro

Anatomy

Skeleton anatomy: avatar, title, description, media

Usage

<div class="flex w-full max-w-md flex-col gap-6 rounded-md border p-6">
  <div class="flex items-start gap-4">
    <Skeleton class="size-20 shrink-0 rounded-full" />
    <div class="flex flex-1 flex-col gap-2">
      <Skeleton class="h-6 w-40" />
      <Skeleton class="h-4 w-32" />
      <Skeleton class="h-4 w-48" />
    </div>
  </div>
  <div class="grid grid-cols-3 gap-4">
    <div class="flex flex-col items-center gap-2 rounded-md border p-3">
      <Skeleton class="h-8 w-16" />
      <Skeleton class="h-3 w-12" />
    </div>
    <div class="flex flex-col items-center gap-2 rounded-md border p-3">
      <Skeleton class="h-8 w-16" />
      <Skeleton class="h-3 w-12" />
    </div>
    <div class="flex flex-col items-center gap-2 rounded-md border p-3">
      <Skeleton class="h-8 w-16" />
      <Skeleton class="h-3 w-12" />
    </div>
  </div>
  <Skeleton class="h-10 w-full" />
</div>

FAQ

What wraps this profile?

flex w-full max-w-md flex-col gap-6 rounded-md border p-6. A header, three stat boxes, then a button.

How is the header aligned?

flex items-start gap-4. The circle is size-20 shrink-0 rounded-full. Beside it, gap-2 stacks h-6 w-40, h-4 w-32 and h-4 w-48.

How are the stat boxes built?

grid grid-cols-3 gap-4. Each box is flex flex-col items-center gap-2 rounded-md border p-3, with h-8 w-16 over h-3 w-12.

What is the bar under the stats?

h-10 w-full, so it spans the card. The stat numbers stay w-16 inside their boxes.

Does the avatar use the default skeleton radius?

rounded-full replaces the style's default radius on the size-20 circle. The stat boxes get their border from the div, and the bars inside keep bg-muted.

Should this profile skeleton be announced?

Set aria-hidden on each Skeleton when nearby text already says the profile is loading. A text status should carry that message.

API Reference

Skeleton

No extra props in this demo. The rest is on the Skeleton page.