Guide · UI states

Loading-state design, explained

A loading state is what a product shows while it is fetching or working — the seconds between an action and its result. Loading states shape how fast a product feels, often more than raw performance does, and they are easy to leave out of a prototype that only shows finished screens.

Last updated

Why loading states matter

Waiting is part of every product, and how the wait is designed changes how long it feels. A blank screen feels broken; a skeleton of the content to come feels fast. Perceived performance is a design decision, not only an engineering one.

Loading states also prevent mistakes — clear feedback stops a user from tapping a button twice or assuming an action failed.

Patterns for loading

The common patterns each fit a different case. A spinner suits a short, indeterminate wait. A skeleton screen suits content that has a known shape. A progress bar suits a long, measurable task. Optimistic UI shows the likely result immediately and reconciles later.

Choosing the right pattern matters: a spinner where a skeleton belongs makes a product feel slower than it is.

Common loading mistakes

The usual failures are layout shift when content arrives, no feedback at all, blocking the whole screen for a small update, and showing a spinner for something that is effectively instant.

Koryvant draws the loading state of every screen alongside its empty, populated, and error states, so the in-between moments are designed rather than left to chance. It is the design surface, not a running app.

Try it on your own idea

Describe your product to Koryvant and get a complete clickable prototype — every screen, every state, both themes — free to generate and preview.

Questions

Do loading states really affect how fast a product feels?
Yes — often more than real speed. A skeleton screen or progress indicator makes a wait feel shorter than a blank screen does, so perceived performance is a design choice.
When should I use a skeleton versus a spinner?
Use a skeleton when the content has a known shape, and a spinner for a short, indeterminate wait. A progress bar fits a long, measurable task.
Does Koryvant design loading states?
Yes. Koryvant draws the loading state of each screen alongside its other states, so the in-between is part of the blueprint.