diff --git a/packages/frontend/@n8n/design-system/src/v2/components/Pagination/component-pagination.md b/packages/frontend/@n8n/design-system/src/v2/components/Pagination/component-pagination.md
new file mode 100644
index 00000000000..5a768e9606d
--- /dev/null
+++ b/packages/frontend/@n8n/design-system/src/v2/components/Pagination/component-pagination.md
@@ -0,0 +1,141 @@
+# Component specification
+
+Displays data in paged format and provides navigation between pages. Enables users to navigate through large datasets by breaking content into manageable pages with controls for moving between them.
+
+- **Component Name:** N8nPagination
+- **Element+ Component:** [ElPagination](https://element-plus.org/en-US/component/pagination.html)
+- **Reka UI Component:** [Pagination](https://reka-ui.com/docs/components/pagination)
+- **Nuxt UI Component:** [Pagination](https://ui.nuxt.com/docs/components/pagination)
+
+
+## Public API Definition
+
+**Props**
+
+- `currentPage?: number` - Current active page number (1-indexed). Supports v-model binding via `v-model:current-page`. Default: `1`
+- `pageSize?: number` - Number of items to display per page. Default: `10`
+- `total?: number` - Total number of items across all pages. Used to calculate total page count. Default: `0`
+- `pagerCount?: number` - Maximum number of page buttons to display in the pager. Must be an odd number. Default: `7`
+- `layout?: string` - Order and elements to display in the pagination. Comma-separated values: `'prev' | 'pager' | 'next'`. Default: `'prev, pager, next'`
+
+**Events**
+
+- `@update:current-page` - Emitted when the current page changes. Payload: `(value: number) => void`
+
+### Template usage example
+
+**Simple pagination (most common):**
+```typescript
+
+
+
+
+
+```
+
+**With custom pager count:**
+```typescript
+
+
+
+
+
+```
+
+**Server-side pagination (0-indexed backend):**
+```typescript
+
+
+
+
+
+
+```
+
+**Client-side pagination in data table:**
+```typescript
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+```