Show the screen’s structure at once, then fill it in, and let people keep working while data loads.
Best practices
- Show the screen’s structure immediately, with skeletons on first loads, then fill it in.
- Let people keep working while data loads; block only what truly depends on it.
- Known amount of work: a progress bar with what is happening and a count.
- Unknown amount of work: a spinner beside the thing that is loading, with words when it lasts.
- Short blocking work, such as signing in: an activity indicator, shown only after a short delay so fast work doesn’t flash it.
- Long jobs, such as imports, run in the background with a progress toast and a result.