diff --git a/packages/element-plus/index.ts b/packages/element-plus/index.ts
index 1aafea78f8..90645818c9 100644
--- a/packages/element-plus/index.ts
+++ b/packages/element-plus/index.ts
@@ -9,6 +9,7 @@ import ElDivider from '@element-plus/divider'
import ElTimeLine from '@element-plus/time-line'
import ElProgress from '@element-plus/progress'
import ElBreadcrumb from '@element-plus/breadcrumb'
+import ElIcon from '@element-plus/icon'
export {
ElAvatar,
@@ -21,6 +22,7 @@ export {
ElTimeLine,
ElProgress,
ElBreadcrumb,
+ ElIcon,
}
export default function install(app: App): void {
@@ -34,4 +36,5 @@ export default function install(app: App): void {
ElTimeLine(app)
ElProgress(app)
ElBreadcrumb(app)
+ ElIcon(app)
}
diff --git a/packages/element-plus/package.json b/packages/element-plus/package.json
index 27896d2f88..94d61ac221 100644
--- a/packages/element-plus/package.json
+++ b/packages/element-plus/package.json
@@ -23,6 +23,7 @@
"@element-plus/time-line": "^0.0.0",
"@element-plus/divider": "^0.0.0",
"@element-plus/progress": "^0.0.0",
- "@element-plus/breadcrumb": "^0.0.0"
+ "@element-plus/breadcrumb": "^0.0.0",
+ "@element-plus/icon": "^0.0.0"
}
}
diff --git a/packages/icon/__tests__/icon.spec.ts b/packages/icon/__tests__/icon.spec.ts
new file mode 100644
index 0000000000..d43095229a
--- /dev/null
+++ b/packages/icon/__tests__/icon.spec.ts
@@ -0,0 +1,13 @@
+import { mount } from '@vue/test-utils'
+import Icon from '../src/index.vue'
+
+describe('Icon.vue', () => {
+ test('render', () => {
+ const wrapper = mount(Icon, {
+ props: {
+ name: 'search',
+ },
+ })
+ expect(wrapper.classes()).toContain('el-icon-search')
+ })
+})
diff --git a/packages/icon/doc/basic.vue b/packages/icon/doc/basic.vue
new file mode 100644
index 0000000000..b81fb8b5b7
--- /dev/null
+++ b/packages/icon/doc/basic.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/packages/icon/doc/index.stories.ts b/packages/icon/doc/index.stories.ts
new file mode 100644
index 0000000000..2a6815aad2
--- /dev/null
+++ b/packages/icon/doc/index.stories.ts
@@ -0,0 +1,5 @@
+export { default as BasicUsage } from './basic.vue'
+
+export default {
+ title: 'Icon',
+}
diff --git a/packages/icon/index.ts b/packages/icon/index.ts
new file mode 100644
index 0000000000..9ae4194b5f
--- /dev/null
+++ b/packages/icon/index.ts
@@ -0,0 +1,5 @@
+import { App } from 'vue'
+import Icon from './src/index.vue'
+export default (app: App): void => {
+ app.component(Icon.name, Icon)
+}
diff --git a/packages/icon/package.json b/packages/icon/package.json
new file mode 100644
index 0000000000..187951cd7d
--- /dev/null
+++ b/packages/icon/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "@element-plus/icon",
+ "version": "0.0.0",
+ "main": "dist/index.js",
+ "license": "MIT",
+ "peerDependencies": {
+ "vue": "^3.0.0-rc.1"
+ },
+ "devDependencies": {
+ "@vue/test-utils": "^2.0.0-beta.0"
+ }
+}
diff --git a/packages/icon/src/index.vue b/packages/icon/src/index.vue
new file mode 100644
index 0000000000..5945b255a0
--- /dev/null
+++ b/packages/icon/src/index.vue
@@ -0,0 +1,17 @@
+
+
+
+
+