diff --git a/src/components/ui/Snackbar.vue b/src/components/ui/Snackbar.vue
new file mode 100644
index 0000000..9eb3fad
--- /dev/null
+++ b/src/components/ui/Snackbar.vue
@@ -0,0 +1,12 @@
+
+
+
+
+ {{ title }}
+ {{ message }}
+
+
diff --git a/src/composables/useSnackbar.ts b/src/composables/useSnackbar.ts
new file mode 100644
index 0000000..3019189
--- /dev/null
+++ b/src/composables/useSnackbar.ts
@@ -0,0 +1,22 @@
+import { reactive, toRefs } from 'vue';
+
+interface Snackbar {
+ visible: boolean;
+ color: '' | 'error' | 'success';
+ title: string;
+ message: string;
+}
+
+const snackbar = reactive({
+ color: '',
+ title: '',
+ message: '',
+ visible: false
+});
+
+export function useSnackbar() {
+ const showSnackbar = (options: Omit) =>
+ Object.assign(snackbar, { ...options, visible: true });
+
+ return { ...toRefs(snackbar), showSnackbar };
+}