diff --git a/packages/ui/src/lib/components/Modal.svelte b/packages/ui/src/lib/components/Modal.svelte
new file mode 100644
index 00000000..da694f05
--- /dev/null
+++ b/packages/ui/src/lib/components/Modal.svelte
@@ -0,0 +1,51 @@
+
+
+{#if show}
+
+
+
(show = false)}
+ in:fade={{ duration: 300 }}
+ out:fade={{ delay: 200, duration: 200 }}
+ />
+
+
+
+
+
+
+
+{/if}
diff --git a/packages/ui/src/lib/index.ts b/packages/ui/src/lib/index.ts
index f40631a3..2fc5dcdd 100644
--- a/packages/ui/src/lib/index.ts
+++ b/packages/ui/src/lib/index.ts
@@ -13,6 +13,7 @@ export { default as Confirm, type ConfirmVariants } from './components/Confirm.s
export { default as CollapsibleSection } from './components/CollapsibleSection.svelte';
export { default as Footer } from './components/Footer.svelte';
export { default as IconButton } from './components/IconButton.svelte';
+export { default as Modal } from './components/Modal.svelte';
export { default as Pagination } from './components/Pagination.svelte';
export { default as ProgressBar, type ProgressBarVariants } from './components/ProgressBar.svelte';
export { default as Select } from './components/Select.svelte';