`;
+exports[`renders ./components/avatar/demo/responsive.vue correctly 1`] = ``;
+
+exports[`renders ./components/avatar/demo/type.vue correctly 1`] = `UUSERU`;
diff --git a/components/avatar/demo/badge.vue b/components/avatar/demo/badge.vue
new file mode 100644
index 0000000000..d708d3aa04
--- /dev/null
+++ b/components/avatar/demo/badge.vue
@@ -0,0 +1,50 @@
+
+---
+order: 3
+title:
+ zh-CN: 带徽标的头像
+ en-US: With Badge
+---
+
+## zh-CN
+
+通常用于消息提示。
+
+## en-US
+
+Usually used for reminders and notifications.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/avatar/demo/basic.vue b/components/avatar/demo/basic.vue
new file mode 100644
index 0000000000..7ef6ec695b
--- /dev/null
+++ b/components/avatar/demo/basic.vue
@@ -0,0 +1,54 @@
+
+---
+order: 0
+title:
+ zh-CN: 基本
+ en-US: Basic
+---
+
+## zh-CN
+
+头像有三种尺寸,两种形状可选。
+
+## en-US
+
+Three sizes and two shapes are available.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/avatar/demo/dynamic.vue b/components/avatar/demo/dynamic.vue
new file mode 100644
index 0000000000..db2f8333ce
--- /dev/null
+++ b/components/avatar/demo/dynamic.vue
@@ -0,0 +1,56 @@
+
+---
+order: 2
+title:
+ zh-CN: 自动调整字符大小
+ en-US: Autoset Font Size
+---
+
+## zh-CN
+
+对于字符型的头像,当字符串较长时,字体大小可以根据头像宽度自动调整。
+
+## en-US
+
+For letter type Avatar, when the letters are too long to display, the font size can be automatically adjusted according to the width of the Avatar.
+
+
+
+
+ {{ avatarValue }}
+
+
+ 改变
+
+
+
+
diff --git a/components/avatar/demo/group.vue b/components/avatar/demo/group.vue
new file mode 100644
index 0000000000..3937062817
--- /dev/null
+++ b/components/avatar/demo/group.vue
@@ -0,0 +1,74 @@
+
+---
+order: 4
+title:
+ zh-CN: Avatar.Group
+ en-US: Avatar.Group
+---
+
+## zh-CN
+
+头像组合展现。
+
+## en-US
+
+Avatar group display.
+
+
+
+
+
+ K
+
+
+
+
+
+
+
+
+
+
+
+
+ K
+
+
+
+
+
+
+
+
+
+
+
+
+ K
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/avatar/demo/index.vue b/components/avatar/demo/index.vue
new file mode 100644
index 0000000000..5f84da14c1
--- /dev/null
+++ b/components/avatar/demo/index.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/avatar/demo/responsive.vue b/components/avatar/demo/responsive.vue
new file mode 100644
index 0000000000..2cfb535d6f
--- /dev/null
+++ b/components/avatar/demo/responsive.vue
@@ -0,0 +1,34 @@
+
+---
+order: 5
+title:
+ zh-CN: 响应式尺寸
+ en-US: Responsive Size
+---
+
+## zh-CN
+
+头像大小可以根据屏幕大小自动调整。
+
+## en-US
+
+Avatar size can be automatically adjusted based on the screen size.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/avatar/demo/type.vue b/components/avatar/demo/type.vue
new file mode 100644
index 0000000000..ce5ee5c76a
--- /dev/null
+++ b/components/avatar/demo/type.vue
@@ -0,0 +1,43 @@
+
+---
+order: 1
+title:
+ zh-CN: 类型
+ en-US: Type
+---
+
+## zh-CN
+
+支持三种类型:图片、Icon 以及字符,其中 Icon 和字符型可以自定义图标颜色及背景色。
+
+## en-US
+
+Image, Icon and letter are supported, and the latter two kinds avatar can have custom colors and background colors.
+
+
+
+
+
+
+
+
+ U
+ USER
+
+ U
+
+
+
+
+
+
+
+
diff --git a/components/avatar/index.en-US.md b/components/avatar/index.en-US.md
new file mode 100644
index 0000000000..864131bba8
--- /dev/null
+++ b/components/avatar/index.en-US.md
@@ -0,0 +1,33 @@
+---
+category: Components
+type: Data Display
+title: Avatar
+cover: https://gw.alipayobjects.com/zos/antfincdn/aBcnbw68hP/Avatar.svg
+---
+
+Avatars can be used to represent people or objects. It supports images, `Icon`s, or letters.
+
+## API
+
+### Avatar
+
+| Property | Description | Type | Default | Version |
+| --- | --- | --- | --- | --- |
+| icon | the `Icon` type for an icon avatar, see `Icon` Component | VNode \| slot | - |
+| shape | the shape of avatar | `circle` \| `square` | `circle` |
+| size | The size of the avatar | number \| `large` \| `small` \| `default` \| { xs: number, sm: number, ...} | `default` | 2.2.0 |
+| src | the address of the image for an image avatar | string | - |
+| srcset | a list of sources to use for different screen resolutions | string | - |
+| alt | This attribute defines the alternative text describing the image | string | - |
+| gap | Letter type unit distance between left and right sides | number | 4 | 2.2.0 |
+| draggable | Whether the picture is allowed to be dragged | boolean \| `'true'` \| `'false'` | - | 2.2.0 |
+| loadError | handler when img load error, return false to prevent default fallback behavior | () => boolean | - |
+
+### Avatar.Group (2.2.0)
+
+| Property | Description | Type | Default | Version |
+| --- | --- | --- | --- | --- |
+| maxCount | Max avatars to show | number | - | |
+| maxPopoverPlacement | The placement of excess avatar Popover | `top` \| `bottom` | `top` | |
+| maxStyle | The style of excess avatar style | CSSProperties | - | |
+| size | The size of the avatar | number \| `large` \| `small` \| `default` \| { xs: number, sm: number, ...} | `default` | |
diff --git a/components/avatar/index.ts b/components/avatar/index.ts
index 3fceeaf26c..802b0237e2 100644
--- a/components/avatar/index.ts
+++ b/components/avatar/index.ts
@@ -1,9 +1,9 @@
import type { App, Plugin } from 'vue';
import Avatar from './Avatar';
import Group from './Group';
-
-export { AvatarProps, AvatarSize, avatarProps } from './Avatar';
-export { AvatarGroupProps } from './Group';
+export { avatarProps } from './Avatar';
+export type { AvatarProps, AvatarSize } from './Avatar';
+export type { AvatarGroupProps } from './Group';
Avatar.Group = Group;
diff --git a/components/avatar/index.zh-CN.md b/components/avatar/index.zh-CN.md
new file mode 100644
index 0000000000..484e7a244b
--- /dev/null
+++ b/components/avatar/index.zh-CN.md
@@ -0,0 +1,38 @@
+---
+category: Components
+subtitle: 头像
+type: 数据展示
+title: Avatar
+cover: https://gw.alipayobjects.com/zos/antfincdn/aBcnbw68hP/Avatar.svg
+---
+
+用来代表用户或事物,支持图片、图标或字符展示。
+
+## 设计师专属
+
+安装 [Kitchen Sketch 插件 💎](https://kitchen.alipay.com),一键填充高逼格头像和文本。
+
+## API
+
+### Avatar
+
+| 参数 | 说明 | 类型 | 默认值 | 版本 |
+| --- | --- | --- | --- | --- |
+| icon | 设置头像的图标类型,可设为 Icon 的 `type` 或 VNode | VNode \| slot | - |
+| shape | 指定头像的形状 | `circle` \| `square` | `circle` | |
+| size | 设置头像的大小 | number \| `large` \| `small` \| `default` \| { xs: number, sm: number, ...} | `default` | 2.2.0 |
+| src | 图片类头像的资源地址 | string | - |
+| srcset | 设置图片类头像响应式资源地址 | string | - |
+| alt | 图像无法显示时的替代文本 | string | - |
+| gap | 字符类型距离左右两侧边界单位像素 | number | 4 | 2.2.0 |
+| draggable | 图片是否允许拖动 | boolean \| `'true'` \| `'false'` | - | 2.2.0 |
+| loadError | 图片加载失败的事件,返回 false 会关闭组件默认的 fallback 行为 | () => boolean | - |
+
+### Avatar.Group (2.2.0)
+
+| 参数 | 说明 | 类型 | 默认值 | 版本 |
+| --- | --- | --- | --- | --- |
+| maxCount | 显示的最大头像个数 | number | - | |
+| maxPopoverPlacement | 多余头像气泡弹出位置 | `top` \| `bottom` | `top` | |
+| maxStyle | 多余头像样式 | CSSProperties | - | |
+| size | 设置头像的大小 | number \| `large` \| `small` \| `default` \| { xs: number, sm: number, ...} | `default` | |
diff --git a/components/back-top/__tests__/__snapshots__/demo.test.js.snap b/components/back-top/__tests__/__snapshots__/demo.test.js.snap
index 31d2c6d54e..d0d5d736eb 100644
--- a/components/back-top/__tests__/__snapshots__/demo.test.js.snap
+++ b/components/back-top/__tests__/__snapshots__/demo.test.js.snap
@@ -1,13 +1,9 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`renders ./antdv-demo/docs/back-top/demo/basic.md correctly 1`] = `
-
- Scroll down to see the bottom-right gray button.
-
-`;
+exports[`renders ./components/back-top/demo/basic.vue correctly 1`] = ` Scroll down to see the bottom-right gray button.`;
-exports[`renders ./antdv-demo/docs/back-top/demo/custom.md correctly 1`] = `
+exports[`renders ./components/back-top/demo/custom.vue correctly 1`] = `
- Scroll down to see the bottom-right blue button.
+ Scroll down to see the bottom-right blue button.
`;
diff --git a/components/back-top/demo/basic.vue b/components/back-top/demo/basic.vue
new file mode 100644
index 0000000000..e7aef6a706
--- /dev/null
+++ b/components/back-top/demo/basic.vue
@@ -0,0 +1,23 @@
+
+---
+order: 0
+title:
+ zh-CN: 基本使用
+ en-US: Basic Usage
+---
+
+## zh-CN
+
+最简单的用法。
+
+## en-US
+
+The simplest usage.
+
+
+
+
+ Scroll down to see the bottom-right
+ gray
+ button.
+
diff --git a/components/back-top/demo/custom.vue b/components/back-top/demo/custom.vue
new file mode 100644
index 0000000000..da70dad3e3
--- /dev/null
+++ b/components/back-top/demo/custom.vue
@@ -0,0 +1,43 @@
+
+---
+order: 1
+title:
+ zh-CN: 自定义样式
+ en-US: Custom style
+---
+
+## zh-CN
+
+可以自定义回到顶部按钮的样式,限制宽高:`40px * 40px`。
+
+## en-US
+
+You can customize the style of the button, just note the size limit: no more than `40px * 40px`.
+
+
+
+
+
+
UP
+
+ Scroll down to see the bottom-right
+ blue
+ button.
+
+
+
+
diff --git a/components/back-top/demo/index.vue b/components/back-top/demo/index.vue
new file mode 100644
index 0000000000..d966a0d884
--- /dev/null
+++ b/components/back-top/demo/index.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
diff --git a/components/back-top/index.en-US.md b/components/back-top/index.en-US.md
new file mode 100644
index 0000000000..1fa126df26
--- /dev/null
+++ b/components/back-top/index.en-US.md
@@ -0,0 +1,30 @@
+---
+category: Components
+type: Other
+title: BackTop
+cover: https://gw.alipayobjects.com/zos/alicdn/tJZ5jbTwX/BackTop.svg
+---
+
+`BackTop` makes it easy to go back to the top of the page.
+
+## When To Use
+
+- When the page content is very long.
+- When you need to go back to the top very frequently in order to view the contents.
+
+## API
+
+> The distance to the bottom is set to `50px` by default, which is overridable.
+>
+> If you decide to use custom styles, please note the size limit: no more than `40px * 40px`.
+
+| Property | Description | Type | Default | Version |
+| --- | --- | --- | --- | --- |
+| target | specifies the scrollable area dom node | () => HTMLElement | () => window | |
+| visibilityHeight | the `BackTop` button will not show until the scroll height reaches this value | number | 400 | |
+
+### events
+
+| Events Name | Description | Arguments | Version |
+| --- | --- | --- | --- |
+| click | a callback function, which can be executed when you click the button | Function | |
diff --git a/components/back-top/index.zh-CN.md b/components/back-top/index.zh-CN.md
new file mode 100644
index 0000000000..743e546fc3
--- /dev/null
+++ b/components/back-top/index.zh-CN.md
@@ -0,0 +1,31 @@
+---
+category: Components
+type: 其他
+subtitle: 回到顶部
+title: BackTop
+cover: https://gw.alipayobjects.com/zos/alicdn/tJZ5jbTwX/BackTop.svg
+---
+
+返回页面顶部的操作按钮。
+
+## 何时使用
+
+- 当页面内容区域比较长时;
+- 当用户需要频繁返回顶部查看相关内容时。
+
+## API
+
+> 有默认样式,距离底部 `50px`,可覆盖。
+>
+> 自定义样式宽高不大于 40px \* 40px。
+
+| 参数 | 说明 | 类型 | 默认值 | 版本 |
+| --- | --- | --- | --- | --- |
+| target | 设置需要监听其滚动事件的元素,值为一个返回对应 DOM 元素的函数 | Function | () => window | |
+| visibilityHeight | 滚动高度达到此参数值才出现 `BackTop` | number | 400 | |
+
+### 事件
+
+| 事件名称 | 说明 | 回调参数 | 版本 |
+| -------- | ------------------ | -------- | ---- |
+| click | 点击按钮的回调函数 | Function | |
diff --git a/components/badge/__tests__/__snapshots__/demo.test.js.snap b/components/badge/__tests__/__snapshots__/demo.test.js.snap
index 3f6838167c..20a75da6cc 100644
--- a/components/badge/__tests__/__snapshots__/demo.test.js.snap
+++ b/components/badge/__tests__/__snapshots__/demo.test.js.snap
@@ -1,28 +1,28 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
-exports[`renders ./antdv-demo/docs/badge/demo/basic.md correctly 1`] = `
-