Promise-based loading

Every loading state is a promise about what will arrive and where. Keep it, and waiting feels short. Break it, and people feel cheated even when they cannot say why.

Rules

Shape the placeholder from the real component. Keep it exactly where the content will land. If the data is fast, show nothing.

The test

Throttle the network and watch the page land. If anything moves when the data arrives, the promise was broken.