Detail Page Loading

Use on a read-only detail/record page while the single record is being fetched. Hidden once the record is displayed.

Loading…

Loading State - Lists

Use on list/table pages while records are being fetched on page load or page change. Hidden as soon as rows render.

Loading records…

Edit Page Loading

Use on an edit page while the record is being fetched and the form is being pre-filled. Hidden as soon as the form is populated.

Loading…

Delete Page Loading

Use on the delete confirmation page while the record is being fetched so the user can see what they're about to delete. Hidden once the confirmation screen is ready.

Loading…

Form Submitting

Use on a create form or edit form while the submit is in flight. Often paired with disabling the submit button. Hidden on success

Saving…

List Empty

Use on list/table/card pages when the query returns zero records. Always pair with a clear next-step CTA (e.g. "Create your first todo"). Only shown when there are no records; hidden as soon as even one record renders.

You have no todos yet.

New Todo
List Fetch Error

Use on list/table/card pages when the records fetch fails (network error, bad query, permissions). Pair with a retry link so the user isn't stuck.

Could not load records.

Try again
Form Submit Error

Use inside a create or edit form when the save call itself fails. Distinct from list-error/edit-error because the page already loaded — only the submission failed. Hide it automatically as soon as the user edits any field or resubmits.

We couldn't save your changes. Please try again.

Single-Record Fetch Error

Use on edit, detail, or delete pages when a single record can't be loaded (missing ID, not found, no permission). Keep it as a static message — no retry needed since the user can simply reload or go back.

We couldn't load this record. It may have been deleted or you may not have access.

Form Saved

Use on a create or edit form after the record is successfully saved, before the redirect fires. Usually visible for 1–2 seconds to give the user confirmation.

Todo added. Redirecting…

Record Deleted

Use on the delete page after the record is successfully deleted, before the redirect back to the list. Same 1–2 second confirmation window as form-success.

Todo deleted. Redirecting…