# Inbox Zero Notifications

> Empty state for a cleared notifications list, with an inbox icon, an all-caught-up message, and a View All Notifications link.

A shadcn/ui block from the [@7ovr](https://7ovr.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/7ovr/empty-states-1).

- Page, with a live preview: https://shadcn.exchange/r/7ovr/empty-states-1
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/7ovr/empty-states-1-light-9ead18dc47826e45.png
- Registry item: https://7ovr.com/r/empty-states-1.json
- Categories: empty-states
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://7ovr.com/r/empty-states-1.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- npm packages: `@base-ui/react`
- Registry items: `button`, `empty`

## Notes from the registry

Requires a `base-*` style in components.json (the `shadcn init` default). Legacy `new-york`/`radix-*` styles install Radix primitives, which reject the `render` prop this block uses.

## Files

### `registry/blocks/empty-states/1/empty-states-block.tsx`

```tsx
import { Button } from "@/components/ui/button"
import {
  Empty,
  EmptyContent,
  EmptyDescription,
  EmptyHeader,
  EmptyMedia,
  EmptyTitle,
} from "@/components/ui/empty"
import { IconPlaceholder } from "@/components/icons/icon-placeholder"

export default function EmptyStatesBlock() {
  return (
    <section className="flex w-full items-center justify-center bg-background px-6 py-12 text-foreground">
      <div className="w-full max-w-md">
        <Empty>
          <EmptyHeader>
            <EmptyMedia variant="icon">
              <IconPlaceholder
                lucide="Inbox"
                tabler="IconInbox"
                hugeicons="InboxIcon"
                phosphor="Tray"
                remixicon="RiInboxLine"
                className="size-4"
              />
            </EmptyMedia>
            <EmptyTitle>You&apos;re all caught up</EmptyTitle>
            <EmptyDescription>
              No new notifications right now. We&apos;ll let you know the moment
              something needs your attention.
            </EmptyDescription>
          </EmptyHeader>
          <EmptyContent>
            <Button
              variant="outline"
              render={<a href="#" />}
              nativeButton={false}
            >
              View All Notifications
            </Button>
          </EmptyContent>
        </Empty>
      </div>
    </section>
  )
}
```
