diff --git a/src/csui/iframes/notification/Notification.vue b/src/csui/iframes/notification/Notification.vue
new file mode 100644
index 0000000..608a55a
--- /dev/null
+++ b/src/csui/iframes/notification/Notification.vue
@@ -0,0 +1,91 @@
+
+
+
Ultrawidify
+
+
+
+
+
+
{{notification.title}}
+
{{notification.description}}
+
+
+
+
+
+
Notification countdown
+
+
+
+
+
+
+
+
+
+
diff --git a/src/csui/iframes/notification/csui-notification.html b/src/csui/iframes/notification/csui-notification.html
new file mode 100644
index 0000000..2914572
--- /dev/null
+++ b/src/csui/iframes/notification/csui-notification.html
@@ -0,0 +1,12 @@
+
+
+
+
+ Ultrawidify - Content Script User Interface (in-player overlay)
+
+
+
+
+
+
+
diff --git a/src/csui/iframes/notification/csui-notification.js b/src/csui/iframes/notification/csui-notification.js
new file mode 100644
index 0000000..bccbcdb
--- /dev/null
+++ b/src/csui/iframes/notification/csui-notification.js
@@ -0,0 +1,11 @@
+import { createApp } from 'vue';
+import Notification from './Notification';
+import mdiVue from 'mdi-vue/v3';
+import * as mdijs from '@mdi/js';
+
+// NOTE — this is in-player interface for ultrawidify
+// it is injected into the page in UI.init()
+
+createApp(Notification)
+ .use(mdiVue, {icons: mdijs})
+ .mount('#app');