Output Format

What boneyard generates when it snapshots your UI — the bones JSON format, where files go, and how to use them.

Generated files

Running bun boneyard-svelte build creates one .bones.json file per named <Skeleton> in your app:

src/lib/bones/ ← auto-created by the CLI
├── blog-card.bones.json ← from <Skeleton name="blog-card">
├── profile.bones.json
└── dashboard.bones.json

Each file contains responsive bone data captured at multiple viewport widths (default: 375px, 768px, 1280px).

SkeletonResult

Each breakpoint inside a .bones.json file is a SkeletonResult — a flat list of positioned rectangles that mirror your real layout pixel-for-pixel.

Bone fields

Each bone is one rounded rectangle. All values are pixel offsets from the container's top-left corner.

x
Horizontal offset from the left edge (px).
y
Vertical offset from the top edge (px).
w
Width (px).
h
Height (px).
r
Border radius. A number for pixels, or a string like "50%" for circles.
c
Container flag. When true, this bone represents a container element (card, panel) that has child bones on top.