diff --git a/resources/qml/Avatar.qml b/resources/qml/Avatar.qml
index 09529fcda89f5084abbd413160455cb26b471ce3..069f639a2b5bb6ead2f92f23da81eb5fc3459a7f 100644
--- a/resources/qml/Avatar.qml
+++ b/resources/qml/Avatar.qml
@@ -79,9 +79,9 @@ AbstractButton {
         function updatePresence() {
             switch (Presence.userPresence(userid)) {
             case "online":
-                return "#00cc66";
+                return Nheko.theme.green;
             case "unavailable":
-                return "#ff9933";
+                return Nheko.theme.red;
             case "offline":
             default:
                 // return "#a82353" don't show anything if offline, since it is confusing, if presence is disabled
diff --git a/resources/qml/EncryptionIndicator.qml b/resources/qml/EncryptionIndicator.qml
index 7455149ddc98cb0e3eec0f727ab5e78b5a95177d..0bbdffc6419b2a28e75f2487a0da23c55a2dfe50 100644
--- a/resources/qml/EncryptionIndicator.qml
+++ b/resources/qml/EncryptionIndicator.qml
@@ -40,7 +40,7 @@ Image {
         if (encrypted) {
             switch (trust) {
             case Crypto.Verified:
-                return sourceUrl + "green";
+                return sourceUrl + Nheko.theme.green;
             case Crypto.TOFU:
                 return sourceUrl + Nheko.colors.buttonText;
             default:
diff --git a/resources/qml/dialogs/UserProfile.qml b/resources/qml/dialogs/UserProfile.qml
index d218e8fedfe1adb51a68ce55cec545dd5bf17176..e57d4de5d1689d31447f91fe0fd13c0b69df444e 100644
--- a/resources/qml/dialogs/UserProfile.qml
+++ b/resources/qml/dialogs/UserProfile.qml
@@ -313,13 +313,13 @@ ApplicationWindow {
                         source: {
                             switch (verificationStatus) {
                             case VerificationStatus.VERIFIED:
-                                return "image://colorimage/:/icons/icons/ui/shield-filled-checkmark.svg?green";
+                                return "image://colorimage/:/icons/icons/ui/shield-filled-checkmark.svg?" + Nheko.theme.green;
                             case VerificationStatus.UNVERIFIED:
-                                return "image://colorimage/:/icons/icons/ui/shield-filled-exclamation-mark.svg?#d6c020";
+                                return "image://colorimage/:/icons/icons/ui/shield-filled-exclamation-mark.svg?" + Nheko.theme.orange;
                             case VerificationStatus.SELF:
-                                return "image://colorimage/:/icons/icons/ui/checkmark.svg?green";
+                                return "image://colorimage/:/icons/icons/ui/checkmark.svg?" + Nheko.theme.green;
                             default:
-                                return "image://colorimage/:/icons/icons/ui/shield-filled-cross.svg?#d6c020";
+                                return "image://colorimage/:/icons/icons/ui/shield-filled-cross.svg?" + Nheko.theme.orange;
                             }
                         }
                     }
@@ -394,13 +394,13 @@ ApplicationWindow {
                 source: {
                     switch (verificationStatus) {
                     case VerificationStatus.VERIFIED:
-                        return "image://colorimage/:/icons/icons/ui/shield-filled-checkmark.svg?green";
+                        return "image://colorimage/:/icons/icons/ui/shield-filled-checkmark.svg?" + Nheko.theme.green;
                     case VerificationStatus.UNVERIFIED:
-                        return "image://colorimage/:/icons/icons/ui/shield-filled-exclamation-mark.svg?#d6c020";
+                        return "image://colorimage/:/icons/icons/ui/shield-filled-exclamation-mark.svg?" + Nheko.theme.orange;
                     case VerificationStatus.SELF:
-                        return "image://colorimage/:/icons/icons/ui/checkmark.svg?green";
+                        return "image://colorimage/:/icons/icons/ui/checkmark.svg?" + Nheko.theme.green;
                     default:
-                        return "image://colorimage/:/icons/icons/ui/shield-filled.svg?red";
+                        return "image://colorimage/:/icons/icons/ui/shield-filled.svg?" + Nheko.theme.red;
                     }
                 }
             }
diff --git a/src/ui/Theme.cpp b/src/ui/Theme.cpp
index f3bd5b784cdf87371d3ecde4b91a336ef143e8e5..e6290adf83e18bfbcee3d7a73423128e49908a08 100644
--- a/src/ui/Theme.cpp
+++ b/src/ui/Theme.cpp
@@ -69,16 +69,22 @@ Theme::Theme(QStringView theme)
         sidebarBackground_ = QColor(0x23, 0x36, 0x49);
         alternateButton_   = QColor(0xcc, 0xcc, 0xcc);
         red_               = QColor(0xa8, 0x23, 0x53);
+        green_             = QColor("green");
         orange_            = QColor(0xfc, 0xbe, 0x05);
+        error_             = QColor("#dd3d3d");
     } else if (theme == u"dark") {
         sidebarBackground_ = QColor(0x2d, 0x31, 0x39);
         alternateButton_   = QColor(0x41, 0x4A, 0x59);
         red_               = QColor(0xa8, 0x23, 0x53);
+        green_             = QColor("green");
         orange_            = QColor(0xfc, 0xc5, 0x3a);
+        error_             = QColor("#dd3d3d");
     } else {
         sidebarBackground_ = p.window().color();
         alternateButton_   = p.dark().color();
         red_               = QColor(Qt::GlobalColor::red);
+        green_             = QColor("green");
         orange_            = QColor(0xff, 0xa5, 0x00); // SVG orange
+        error_             = QColor("#dd3d3d");
     }
 }
diff --git a/src/ui/Theme.h b/src/ui/Theme.h
index 2c85c61e1cda2d87373b8223bf2d9e53a5bc6d53..94c89fc58e822766e17b8d999e0c648a48d81786 100644
--- a/src/ui/Theme.h
+++ b/src/ui/Theme.h
@@ -15,6 +15,7 @@ class Theme : public QPalette
     Q_PROPERTY(QColor alternateButton READ alternateButton CONSTANT)
     Q_PROPERTY(QColor separator READ separator CONSTANT)
     Q_PROPERTY(QColor red READ red CONSTANT)
+    Q_PROPERTY(QColor green READ green CONSTANT)
     Q_PROPERTY(QColor error READ error CONSTANT)
     Q_PROPERTY(QColor orange READ orange CONSTANT)
 public:
@@ -26,9 +27,10 @@ public:
     QColor alternateButton() const { return alternateButton_; }
     QColor separator() const { return separator_; }
     QColor red() const { return red_; }
-    QColor error() const { return QColor(0xdd, 0x3d, 0x3d); }
+    QColor green() const { return green_; }
+    QColor error() const { return error_; }
     QColor orange() const { return orange_; }
 
 private:
-    QColor sidebarBackground_, separator_, red_, orange_, alternateButton_;
+    QColor sidebarBackground_, separator_, red_, green_, error_, orange_, alternateButton_;
 };