20 / PERCEIVED PERFORMANCE
Skeleton Screen
The problem
A spinner tells you something is loading but nothing about what, so the wait feels longer and emptier.
The solution
Skeleton placeholders preview the layout, then swap to real content.
Experiment
Task: Reload the content and compare the wait.
NAIVE
stateloading
placeholderspinner
THOUGHTFUL
stateloading
placeholderskeleton
Play with the values
2000ms
How it works
Seen in
Feeds
Post placeholders show the layout before content streams in.
Profiles
Avatar and text blocks preview structure while data loads.
Dashboards
Card skeletons reduce layout shift as widgets populate.
Tables
Row placeholders keep the page stable during fetches.