UI component libraryLoading and Skeleton UI Components
Feedback components

Loading components that keep product state understandable

Find stable loading patterns for route transitions, data fetches, uploads, form actions, and generated content without causing layout shifts.

Route loadingData fetchingFile uploadsCheckoutForm submissionAI generation

Loading feedback should explain what is happening

Use immediate feedback for actions that take noticeable time. Skeletons work for predictable content layouts, progress bars work when completion can be measured, and compact spinners work for short actions with clear surrounding context.

Keep dimensions stable so loading content does not shift the page. Prevent duplicate submissions, preserve accessible status text, and provide recovery when an operation takes too long or fails.

Component FAQ

Questions about loading and skeleton ui components

Practical answers about framework fit, responsive behavior, accessibility, source access, and implementation.

Should I use a spinner or skeleton?

Use a skeleton when the final layout is predictable and takes time to populate. Use a spinner for short focused operations where a content-shaped placeholder would be misleading.

How long before loading feedback appears?

Immediate actions should feel instant, but any noticeable delay needs feedback. Avoid flashing a skeleton for very fast responses by using a short, carefully tested delay where appropriate.

Can a progress bar show estimated progress?

Only label it clearly as estimated. A determinate percentage should be based on real measurable progress so users are not misled.