diff --git a/src/components/speeddial/SpeedDial.d.ts b/src/components/speeddial/SpeedDial.d.ts
new file mode 100644
index 0000000000..2b9fa64f01
--- /dev/null
+++ b/src/components/speeddial/SpeedDial.d.ts
@@ -0,0 +1,34 @@
+import { VNode } from 'vue';
+
+interface SpeedDialProps {
+ model?: any[];
+ visible?: boolean;
+ direction?: string;
+ transitionDelay?: number;
+ type?: string;
+ radius?: number;
+ mask?: boolean;
+ disabled?: boolean;
+ hideOnClickOutside?: boolean;
+ buttonClassName?: string;
+ maskStyle?: string;
+ maskClassName?: string;
+ showIcon?: string;
+ hideIcon?: string;
+ rotateAnimation?: boolean;
+ class?: string;
+ style?: any;
+}
+
+declare class SpeedDial {
+ $props: SpeedDialProps;
+ $emit(eventName: 'click', event: Event): this;
+ $emit(eventName: 'show'): this;
+ $emit(eventName: 'hide'): this;
+ $slots: {
+ item: VNode[];
+ button: VNode[];
+ };
+}
+
+export default SpeedDial;
diff --git a/src/components/speeddial/SpeedDial.vue b/src/components/speeddial/SpeedDial.vue
new file mode 100644
index 0000000000..d64d9f10ec
--- /dev/null
+++ b/src/components/speeddial/SpeedDial.vue
@@ -0,0 +1,378 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/speeddial/package.json b/src/components/speeddial/package.json
new file mode 100644
index 0000000000..22fac62112
--- /dev/null
+++ b/src/components/speeddial/package.json
@@ -0,0 +1,9 @@
+{
+ "main": "./speeddial.cjs.js",
+ "module": "./speeddial.esm.js",
+ "unpkg": "./speeddial.min.js",
+ "types": "./SpeedDial.d.ts",
+ "browser": {
+ "./sfc": "./SpeedDial.vue"
+ }
+ }
\ No newline at end of file