diff --git a/packages/varlet-ui/src/image/Image.vue b/packages/varlet-ui/src/image/Image.vue
new file mode 100644
index 00000000000..44cb253af0a
--- /dev/null
+++ b/packages/varlet-ui/src/image/Image.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/varlet-ui/src/image/__tests__/index.spec.js b/packages/varlet-ui/src/image/__tests__/index.spec.js
new file mode 100644
index 00000000000..30cde2af518
--- /dev/null
+++ b/packages/varlet-ui/src/image/__tests__/index.spec.js
@@ -0,0 +1,7 @@
+const Image = require('../../../cjs/image').default
+const { render } = require('@testing-library/vue')
+
+test('test image', async () => {
+ const wrapper = render(Image)
+ console.log(wrapper)
+})
diff --git a/packages/varlet-ui/src/image/docs/en_US.md b/packages/varlet-ui/src/image/docs/en_US.md
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/varlet-ui/src/image/docs/zh_CN.md b/packages/varlet-ui/src/image/docs/zh_CN.md
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/packages/varlet-ui/src/image/example/index.vue b/packages/varlet-ui/src/image/example/index.vue
new file mode 100644
index 00000000000..514b883c048
--- /dev/null
+++ b/packages/varlet-ui/src/image/example/index.vue
@@ -0,0 +1,42 @@
+
+ set
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/varlet-ui/src/image/image.less b/packages/varlet-ui/src/image/image.less
new file mode 100644
index 00000000000..ce5b8061551
--- /dev/null
+++ b/packages/varlet-ui/src/image/image.less
@@ -0,0 +1,8 @@
+.var-image {
+ display: inline-block;
+ overflow: hidden;
+
+ &__image {
+ display: block;
+ }
+}
diff --git a/packages/varlet-ui/src/image/index.ts b/packages/varlet-ui/src/image/index.ts
new file mode 100644
index 00000000000..9b340d80264
--- /dev/null
+++ b/packages/varlet-ui/src/image/index.ts
@@ -0,0 +1,8 @@
+import { App } from 'vue'
+import Image from './Image.vue'
+
+Image.install = function(app: App) {
+ app.component(Image.name, Image)
+}
+
+export default Image
diff --git a/packages/varlet-ui/src/image/props.ts b/packages/varlet-ui/src/image/props.ts
new file mode 100644
index 00000000000..e7d2260058e
--- /dev/null
+++ b/packages/varlet-ui/src/image/props.ts
@@ -0,0 +1,37 @@
+function fitValidator(fit: string) {
+ return ['fill', 'contain', 'cover', 'none', 'scale-down'].includes(fit)
+}
+
+export const props = {
+ src: {
+ type: String
+ },
+ fit: {
+ type: String,
+ validator: fitValidator,
+ default: 'fill'
+ },
+ alt: {
+ type: String
+ },
+ width: {
+ type: String
+ },
+ height: {
+ type: String
+ },
+ radius: {
+ type: String,
+ default: '0'
+ },
+ error: {
+ type: String
+ },
+ loading: {
+ type: String
+ },
+ ripple: {
+ type: Boolean,
+ default: false
+ }
+}