diff --git a/packages/demo/src/content/components/empty-table-state.mdx b/packages/demo/src/content/components/empty-table-state.mdx
index 8b122826..7643880e 100644
--- a/packages/demo/src/content/components/empty-table-state.mdx
+++ b/packages/demo/src/content/components/empty-table-state.mdx
@@ -1,14 +1,44 @@
---
layout: "@demo/layouts/mdx-layout.astro"
heading: "Empty Table State"
-description: "Empty Table State with sizes and variants"
+description: "A placeholder shown when a table or list has no rows to display."
---
import { EmptyTableState } from "@eqtylab/equality";
import React from "react";
+## Overview
+
+---
+
+`EmptyTableState` provides a consistent placeholder for tables, lists, or other
+collections that have no content to show. It pairs an [`Icon`](/components/icon)
+with a title and optional description, and can surface a "Clear Filters" action
+when an empty result is caused by active filters.
+
+It is commonly rendered inside a [`Table`](/components/table) empty state cell,
+but works anywhere an empty collection needs to be communicated.
+
+## Usage
+
+---
+
+Import the component:
+
+```tsx
+import { EmptyTableState } from "@eqtylab/equality";
+```
+
+Basic usage with required properties:
+
+```tsx
+
+```
+
## Variants
+---
+
### Default
-### Without description
+### Without Description
+
+The `description` is optional — omit it for a more compact state.
### With Clear Button
+When an empty result is the consequence of active filters, set `showClearButton`
+and provide an `onClear` handler to let users reset their filters. The button
+only renders when both props are present.
+
{}}
/>
+
+#### Usage
+
+```tsx
+ handleClearFilters()}
+/>
+```
+
+### Elevation
+
+Use the `elevation` prop to control the elevation of the icon's background so it
+sits correctly against the surface it's placed on. It accepts the same elevation
+values as the rest of the design system and defaults to `raised`.
+
+
+
+#### Usage
+
+```tsx
+import { ELEVATION } from "@eqtylab/equality";
+
+;
+```
+
+## Props
+
+---
+
+| Name | Description | Type | Default | Required |
+| ----------------- | --------------------------------------------------------- | ------------------------------------- | -------- | -------- |
+| `icon` | Lucide icon name or a React element shown above the title | `string`, `React.ReactElement` | — | ✅ |
+| `title` | Heading text describing the empty state | `string` | — | ✅ |
+| `description` | Supporting text shown below the title | `string` | — | ❌ |
+| `elevation` | Elevation applied to the icon's background | `sunken`, `base`, `raised`, `overlay` | `raised` | ❌ |
+| `showClearButton` | Shows the "Clear Filters" button (requires `onClear`) | `boolean` | `false` | ❌ |
+| `onClear` | Callback fired when the "Clear Filters" button is clicked | `() => void` | — | ❌ |
diff --git a/packages/ui/src/components/empty-table-state/empty-table-state.tsx b/packages/ui/src/components/empty-table-state/empty-table-state.tsx
index 74cd08e2..eb6c553c 100644
--- a/packages/ui/src/components/empty-table-state/empty-table-state.tsx
+++ b/packages/ui/src/components/empty-table-state/empty-table-state.tsx
@@ -1,12 +1,14 @@
import { Button } from '@/components/button/button';
import styles from '@/components/empty-table-state/empty-table-state.module.css';
import { Icon } from '@/components/icon/icon';
+import { ELEVATION, type Elevation } from '@/lib/elevations';
import { cn } from '@/lib/utils';
interface EmptyTableStateProps {
icon: React.ReactElement | string;
title: string;
description?: string;
+ elevation?: Elevation;
showClearButton?: boolean;
onClear?: () => void;
className?: string;
@@ -16,6 +18,7 @@ const EmptyTableState = ({
icon,
title,
description,
+ elevation = ELEVATION.RAISED,
showClearButton = false,
onClear,
className,
@@ -25,7 +28,7 @@ const EmptyTableState = ({
return (