---
title: "Feedback"
description: "The feedback components of @arbol-ai/ui: EmptyState, Notice, ProgressBar, Skeleton, Spinner, State screens, TableSkeleton, Toast."
---

> Documentation Index
> Fetch the complete documentation index at: https://epidermis.getarbol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Feedback

- [EmptyState](https://epidermis.getarbol.com/components/feedback/empty-state/): What a list, table or panel shows with nothing to show. The default variant invites the first record; filtered says the filters hide every record, so the list reads as narrowed rather than empty; error says the records did not load and offers to try again.
- [Notice](https://epidermis.getarbol.com/components/feedback/notice/): An inline message beside the content it is about: saved, failed, heads-up, or a quiet neutral aside. Errors that just happened are read out at once; everything else is announced politely.
- [ProgressBar](https://epidermis.getarbol.com/components/feedback/progress-bar/): How far a task has gone: a bar that fills, with its label and value, or a moving bar while the share is unknown. Use UploadProgress for files on their way.
- [Skeleton](https://epidermis.getarbol.com/components/feedback/skeleton/): A placeholder in the shape of content that is still loading. It pulses gently and holds still for people who reduce motion. Mark the loading region with aria-busy.
- [Spinner](https://epidermis.getarbol.com/components/feedback/spinner/): A spinning circle for a wait of unknown length, announced to screen readers as "Loading…" or its label. It turns only for people who allow motion.
- [State screens](https://epidermis.getarbol.com/components/feedback/state-screen/): What a page or a region shows instead of its content: ErrorState when it failed, LoadingState while it loads, and FullPageMessage for a whole screen before the app’s frame exists.
- [TableSkeleton](https://epidermis.getarbol.com/components/feedback/table-skeleton/): The first paint of a table whose rows are loading: the same frame, header, row height and column shapes, announced as loading. Once rows exist, keep them and dim them with DataTable’s isUpdating instead.
- [Toast](https://epidermis.getarbol.com/components/feedback/toast/): A short message about something that just happened, called from anywhere with toast.success, toast.error, toast.info or toast.warning. Render one Toaster in the app.

Source: https://epidermis.getarbol.com/components/feedback/index.mdx
