Skeleton
Placeholders for loading content.
iOS
Android
Web
tsx
Default
Avatar
Button
Card
List
Table
Props
Do & Don’t
text
Don’t
Three full-width lines read as a solid block, not as a paragraph of prose.
Do
Vary the line widths and shorten the last line so it reads like real wrapped text.
avatar
Don’t
A square placeholder for a round avatar snaps shape the instant the image loads.
Do
Match the avatar's circle exactly so the photo drops in with no shift.
button
Don’t
An oversized bar overstates a button and the layout jumps when the real control mounts.
Do
Size the placeholder to the button's real height and width.
card
Don’t
A generic block that ignores the content's shape causes a jarring shift when it loads.
Do
Mirror the real layout (avatar circle, text lines) so the swap is seamless.
list
Don’t
One tall block hides the row rhythm, so the list reflows when each item appears.
Do
Repeat a per-row placeholder so the avatar-and-text rhythm matches the loaded list.
table
Don’t
A single rectangle gives no column structure; cells shift sideways once data lands.
Do
Lay placeholders out on the real column grid so each cell stays put when it fills in.