# Empty States
> Empty states are moments where there is nothing to display. This often occurs when you set up an app for the first time. Objects that can be empty are pages, cards, widgets, tables, lists, etc.

A useful empty state will let the user know what’s happening, why it’s happening, and what to do about it.

## First use

<DataList.Root orientation="vertical" emphasize="label">
  <DataList.Row>
    <DataList.Label>When to use</DataList.Label>
    <DataList.Value marginTop="spacingS">
      Occurs when setting up an app for the very first time when there is still
      nothing to show.
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Description</DataList.Label>
    <DataList.Value marginTop="spacingS">
      Show the volue logo + an empathic text to welcome the user to the product.
      <br />
      Additionally give instructions what to do to get started. E.G. importing
      data or connecting to an API.
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Behaviour</DataList.Label>
    <DataList.Value marginTop="spacingS">
      The placeholder message should be positioned in the center of the empty
      space.
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Components to use</DataList.Label>
    <DataList.Value marginTop="spacingS">
      <ul margin="none">
        <li>
          <Link href="/components/logo">Gemini Suite logo</Link>
        </li>
      </ul>
    </DataList.Value>
  </DataList.Row>
</DataList.Root>

## User cleared

<DataList.Root orientation="vertical" emphasize="label">
  <DataList.Row>
    <DataList.Label>When to use</DataList.Label>
    <DataList.Value marginTop="spacingS">
      Occurs when users complete actions such as clearing their inbox or task
      list, and the result is an empty screen.
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Description</DataList.Label>
    <DataList.Value marginTop="spacingS">
      Show a positive icon + an text to explain the current state.
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Behaviour</DataList.Label>
    <DataList.Value marginTop="spacingS">
      The placeholder message should be positioned in the center of the empty
      space.
    </DataList.Value>
  </DataList.Row>
</DataList.Root>

## Errors

<DataList.Root orientation="vertical" emphasize="label">
  <DataList.Row>
    <DataList.Label>When to use</DataList.Label>
    <DataList.Value marginTop="spacingS">
      These occur when something goes wrong, or when there are issues such as a
      mobile phone going offline due to network problems.
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Description</DataList.Label>
    <DataList.Value marginTop="spacingS">
      Show a warning icon + an text to explain the current state and if possible
      what to do to resolve the error.
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Behaviour</DataList.Label>
    <DataList.Value marginTop="spacingS">
      The placeholder message should be positioned in the center of the empty
      space.
    </DataList.Value>
  </DataList.Row>
</DataList.Root>

## No results/No data

<DataList.Root orientation="vertical" emphasize="label">
  <DataList.Row>
    <DataList.Label>When to use</DataList.Label>
    <DataList.Value marginTop="spacingS">
      No data found UI design occurs when there is nothing to show. This can
      happen if someone performs a search and the query is empty or there isn’t
      data available to show (when filtering for a date-range that has no data
      for example).
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Description</DataList.Label>
    <DataList.Value marginTop="spacingS">
      Show a subtle text placeholder, such as "na" ("not available") or "no
      data"
    </DataList.Value>
  </DataList.Row>
  <DataList.Row>
    <DataList.Label>Behaviour</DataList.Label>
    <DataList.Value marginTop="spacingS">
      The test placeholder should be positioned were the data would be shown.
    </DataList.Value>
  </DataList.Row>
</DataList.Root>
