diff --git a/docs/app.vue b/docs/app.vue
index f4bec5e..6a619bd 100644
--- a/docs/app.vue
+++ b/docs/app.vue
@@ -5,11 +5,11 @@ provide('navigation', navigation)
-
+
-
+
diff --git a/src/runtime/components/overlays/Messages.vue b/src/runtime/components/overlays/Messages.vue
new file mode 100644
index 0000000..19d82c2
--- /dev/null
+++ b/src/runtime/components/overlays/Messages.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/runtime/types/message.d.ts b/src/runtime/types/message.d.ts
index ea3e228..fb443a5 100644
--- a/src/runtime/types/message.d.ts
+++ b/src/runtime/types/message.d.ts
@@ -7,6 +7,8 @@ export interface Message {
duration?: number
}
+export type MessageOption = Omit
+
export interface MessageApi {
info: (content: string, duration?: number) => void
success: (content: string, duration?: number) => void
diff --git a/src/runtime/ui.config/index.ts b/src/runtime/ui.config/index.ts
index e329355..e428d0c 100644
--- a/src/runtime/ui.config/index.ts
+++ b/src/runtime/ui.config/index.ts
@@ -1,2 +1,6 @@
// elements
export { default as button } from './elements/button'
+
+// overlays
+export { default as message } from './overlays/message'
+export { default as messages } from "./overlays/messages";
diff --git a/src/runtime/ui.config/overlays/message.ts b/src/runtime/ui.config/overlays/message.ts
new file mode 100644
index 0000000..b1c6ea4
--- /dev/null
+++ b/src/runtime/ui.config/overlays/message.ts
@@ -0,0 +1 @@
+export default {}
diff --git a/src/runtime/ui.config/overlays/messages.ts b/src/runtime/ui.config/overlays/messages.ts
new file mode 100644
index 0000000..993ac5c
--- /dev/null
+++ b/src/runtime/ui.config/overlays/messages.ts
@@ -0,0 +1,5 @@
+export default {
+ wrapper: "fixed flex flex-col w-full pointer-events-none z-[500]",
+ position: "bottom-0 end-0",
+ container: "px-4 sm:px-6 py-6 space-y-3 overflow-y-auto",
+};