diff --git a/packages/varlet-ui/src/virtual-list/VirtualList.vue b/packages/varlet-ui/src/virtual-list/VirtualList.vue
new file mode 100644
index 00000000000..4fa84e1f5ba
--- /dev/null
+++ b/packages/varlet-ui/src/virtual-list/VirtualList.vue
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/varlet-ui/src/virtual-list/__tests__/index.spec.js b/packages/varlet-ui/src/virtual-list/__tests__/index.spec.js
new file mode 100644
index 00000000000..23ed45508e2
--- /dev/null
+++ b/packages/varlet-ui/src/virtual-list/__tests__/index.spec.js
@@ -0,0 +1,8 @@
+import { createApp } from 'vue'
+import { expect, test } from 'vitest'
+import VirtualList from '..'
+
+test('virtual-list plugin', () => {
+ const app = createApp({}).use(VirtualList)
+ expect(app.component(VirtualList.name)).toBeTruthy()
+})
diff --git a/packages/varlet-ui/src/virtual-list/docs/en-US.md b/packages/varlet-ui/src/virtual-list/docs/en-US.md
new file mode 100644
index 00000000000..4328281d9f4
--- /dev/null
+++ b/packages/varlet-ui/src/virtual-list/docs/en-US.md
@@ -0,0 +1,192 @@
+# VirtualList
+
+### Intro
+
+A high-performance scrolling list for displaying large amounts of data, using virtual scrolling technology to render only elements in the visible area, greatly improving the performance of long lists.
+
+Virtual lists should only be used when dealing with large amounts of data (typically hundreds to thousands of items) to improve rendering performance. For most common scenarios, regular list rendering is sufficient.
+
+This component supports automatic handling of variable height list items. It measures and updates the actual height of each list item after rendering, ensuring accurate scroll positioning.
+
+### Basic Usage
+
+Set list data with the `data` property, set the list item height with `item-height`, and customize the list item content with the default slot.
+
+```html
+
+
+
+
+ List Item {{ item }}
+
+
+
+
+
+
+
+
+```
+
+### Variable Height Items
+
+The component automatically measures and adapts to list items with different heights. In this case, `item-height` is used as an estimated height.
+
+```html
+
+
+
+
+
List Item {{ item.id }}
+
{{ item.desc }}
+
+
+
+
+
+
+
+
+```
+
+### Set Container Height
+
+Set the container height with the `container-height` property or CSS styles.
+
+```html
+
+
+
+```
+
+### Scroll to Specified Position
+
+Scroll to a specified position using the `scrollTo` method.
+
+```html
+Scroll to Item 50
+
+
+
+
+
+```
+
+## API
+
+### Props
+
+| Prop | Description | Type | Default |
+| --- | --- | --- | --- |
+| `data` | List data | _any[]_ | `[]` |
+| `item-height` | List item height (unit: pixel), used as estimated height for variable height lists | _number \| string_ | `50` |
+| `buffer-size` | Buffer size (number of pre-rendered list items above and below) | _number_ | `5` |
+| `container-height` | Container height (unit: pixel) | _number \| string_ | `-` |
+
+### Methods
+
+| Method | Description | Parameters | Return |
+| --- | --- | --- | --- |
+| `scrollTo` | Scroll to the specified index position | `index: number` | `-` |
+
+### Events
+
+| Event | Description | Arguments |
+| --- | --- | --- |
+| `scroll` | Triggered when the list scrolls | `event: Event` |
+
+### Slots
+
+| Name | Description | SlotProps |
+| --- | --- | --- |
+| `default` | List item content | `{ item: any, index: number }` |
+
+### Style Variables
+
+Here are the CSS variables used by the component, which can be customized using [StyleProvider](#/en-US/style-provider).
+
+| Variable | Default |
+| --- | --- |
+| `--virtual-list-height` | `100%` |
+
diff --git a/packages/varlet-ui/src/virtual-list/docs/zh-CN.md b/packages/varlet-ui/src/virtual-list/docs/zh-CN.md
new file mode 100644
index 00000000000..3f8ec5873b6
--- /dev/null
+++ b/packages/varlet-ui/src/virtual-list/docs/zh-CN.md
@@ -0,0 +1,192 @@
+# 虚拟滚动列表
+
+### 介绍
+
+用于展示大量数据的高性能滚动列表,通过虚拟滚动技术只渲染可视区域内的元素,极大提高了长列表的性能。
+
+只有在处理大量数据(通常是几百到几千条)需要提高渲染性能时,才需要使用虚拟列表。对于大多数常见场景,普通的列表渲染就足够了。
+
+本组件支持自动处理不定高列表项,会在渲染后自动测量并更新每个列表项的实际高度,确保滚动位置的准确性。
+
+### 基本使用
+
+通过 `data` 属性设置列表数据,通过 `item-height` 设置列表项高度,通过默认插槽自定义列表项内容。
+
+```html
+
+
+
+