designmotionhq

feedback

Skeleton Loading

Your loading spinner is making the wait feel longer

Key insights

  • A spinner tells users "something is happening" but gives zero information about what or how long. That uncertainty is what makes waits feel slow.
  • Skeleton screens preview the shape of the incoming content — avatar circle, text bars, image block — so the brain starts parsing the layout before the data arrives.
  • The shimmer sweep matters: a static skeleton reads as "broken", an animated one reads as "in progress".
  • Match the skeleton to the real content dimensions. A skeleton that jumps to a different layout on load is worse than a spinner.
  • For actions the user just performed (posting, liking), skip loading states entirely — render the result optimistically and reconcile in the background.

Do / Don't

  • Do: shape skeletons to mirror the final layout, animate them, and keep them under ~2 seconds before showing partial content.
  • Don't: use skeletons for sub-300ms loads (flash of skeleton is noise) or mix spinners and skeletons in the same view.
View on Instagram

Get the next pattern first

New breakdowns land in your inbox before anywhere else.

One new pattern breakdown per week. No spam, unsubscribe anytime.

Related patterns