diff --git a/data/resources/resources.gresource.xml b/data/resources/resources.gresource.xml
index 23a37a07..f106321d 100644
--- a/data/resources/resources.gresource.xml
+++ b/data/resources/resources.gresource.xml
@@ -20,6 +20,7 @@
ui/context-menu-bin.ui
ui/pill.ui
ui/spinner-button.ui
+ ui/in-app-notification.ui
style.css
icons/scalable/actions/send-symbolic.svg
icons/scalable/status/welcome.svg
diff --git a/data/resources/style.css b/data/resources/style.css
index 4f385eea..8eedf99e 100644
--- a/data/resources/style.css
+++ b/data/resources/style.css
@@ -15,7 +15,7 @@
}
.app-notification .pill {
- background-color: alpha(@theme_fg_color, 0.35);
+ background-color: alpha(@theme_bg_color, 0.2);
}
/* Login */
@@ -153,3 +153,8 @@ headerbar.flat {
.invite-room-name {
font-size: 24px;
}
+
+.app-notification {
+ border-radius: 9999px;
+ padding-left: 24px;
+}
diff --git a/data/resources/ui/in-app-notification.ui b/data/resources/ui/in-app-notification.ui
new file mode 100644
index 00000000..6b695182
--- /dev/null
+++ b/data/resources/ui/in-app-notification.ui
@@ -0,0 +1,35 @@
+
+
+
+ end
+ center
+ 100
+ 24
+ 24
+
+
+
+
+
+
diff --git a/po/POTFILES.in b/po/POTFILES.in
index bcbe1a39..93ff03cc 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -16,6 +16,7 @@ data/resources/ui/content-state-row.ui
data/resources/ui/content.ui
data/resources/ui/context-menu-bin.ui
data/resources/ui/login.ui
+data/resources/ui/in-app-notification.ui
data/resources/ui/session.ui
data/resources/ui/shortcuts.ui
data/resources/ui/sidebar-category-row.ui
@@ -30,6 +31,7 @@ data/resources/ui/window.ui
src/application.rs
src/components/context_menu_bin.rs
src/components/label_with_widgets.rs
+src/components/in_app_notification.rs
src/components/mod.rs
src/components/spinner_button.rs
src/components/pill.rs
diff --git a/src/components/in_app_notification.rs b/src/components/in_app_notification.rs
new file mode 100644
index 00000000..821f4022
--- /dev/null
+++ b/src/components/in_app_notification.rs
@@ -0,0 +1,185 @@
+use crate::Error;
+use adw::subclass::prelude::*;
+use gtk::prelude::*;
+use gtk::subclass::prelude::*;
+use gtk::{gio, glib, glib::clone, CompositeTemplate};
+
+mod imp {
+ use super::*;
+ use glib::{signal::SignalHandlerId, subclass::InitializingObject};
+ use std::cell::{Cell, RefCell};
+
+ #[derive(Debug, Default, CompositeTemplate)]
+ #[template(resource = "/org/gnome/FractalNext/in-app-notification.ui")]
+ pub struct InAppNotification {
+ pub error_list: RefCell