← Vois design previews
Pattern B · Table states

Table states

Loading, empty, and error states for a table. The real column headers stay visible in every state, so the toolbar and the user's filters survive. Each failure is shown where it happened: the table, the row, the cell, or a bulk operation.

Initial loadSTATE-LOADING
InvoiceCustomerAmount
RefetchSTATE-REFETCH
Updating
InvoiceCustomerAmount
INV-204Acme Corp$1,240
INV-205Globex$860
Empty, first useSTATE-EMPTY-FIRST
InvoiceCustomerAmount

No invoices yet

Create an invoice and it shows up here.

Empty, filteredSTATE-EMPTY-FILTERED
InvoiceCustomerAmount

No results for "invoice 204"

Try a different search or clear your filters.

Empty by natureSTATE-EMPTY-NATURE
IssueOwnerOpened

No open issues

Nothing needs your attention right now.

Empty, no accessSTATE-EMPTY-PERMISSION
InvoiceCustomerAmount

You don't have access to invoices

Ask an admin to add you to the Billing team.

Table failed to loadSTATE-LOAD-ERROR
InvoiceCustomerAmount
Row action failedERROR-ROW-ACTION
InvoiceCustomerStatus
INV-204Acme CorpOpen
INV-205Globex⚠ Couldn't archive
Cell validationERROR-CELL
ItemPrice
Wireless mouse19.99
USB-C charger Enter a price like 25.00
Import partly failedERROR-BULK-PARTIAL
Row statusNameEmailRole
✓Robert Choirobert@example.comChef
⚠ 1Jane Smithjane@exampleServer Email needs an @ and a domain
✓Ana Ruizana@example.comHost
⚠ 1Ben Leeben@example.comManager This role isn't available for your location