diff --git a/data/app.drey.PaperPlane.gschema.xml.in b/data/app.drey.PaperPlane.gschema.xml.in
index 170bed437..f3f7838c4 100644
--- a/data/app.drey.PaperPlane.gschema.xml.in
+++ b/data/app.drey.PaperPlane.gschema.xml.in
@@ -31,5 +31,10 @@
Color Scheme
The color scheme to be used in the app
+
+ '🏠'
+ Theme Name
+ The chat theme name to be used in the app
+
diff --git a/data/resources/style-dark.css b/data/resources/style-dark.css
index 815f73aea..90f6a00cb 100644
--- a/data/resources/style-dark.css
+++ b/data/resources/style-dark.css
@@ -1,3 +1,13 @@
+@define-color outgoing_message_accent_color white;
+
+label.link link {
+ color: #78aeed;
+}
+
+messagebubble.outgoing label.link link {
+ color: currentColor;
+}
+
#new-login-icon {
background-color: @dark_2;
}
@@ -19,12 +29,8 @@ messagebubble.outgoing {
background-color: #2c52ac;
}
-messagebubble.document.outgoing .file > overlay > statusindicator {
- color: white;
-}
-
.event-row {
- background-color: alpha(#404040, 0.8);
+ background-color: alpha(#404040, 0.8);style_context_remove_provider_for_display
}
.chat-list row .unread-count-muted {
@@ -64,3 +70,7 @@ messagebubble.document.outgoing .file > overlay > statusindicator {
background: #303030;
}
/* End of values for cairo renderer */
+
+themepreview {
+ color: #303030;
+}
diff --git a/data/resources/style.css b/data/resources/style.css
index 1c9574c9d..14e429c0d 100644
--- a/data/resources/style.css
+++ b/data/resources/style.css
@@ -1,3 +1,14 @@
+@define-color outgoing_message_accent_color #79c271;
+
+/* Gtk doesn't redraw links after their color changed, so it's better for it to be constant */
+label.link link {
+ color: @blue_4;
+}
+
+messagebubble.outgoing label.link link {
+ color: currentColor;
+}
+
.bold {
font-weight: bold;
}
@@ -166,11 +177,15 @@ messagebubble:not(.outgoing):dir(rtl) {
margin-left: 38px;
}
-messagebubble.outgoing link,
messagebubble.outgoing messagereply label.message {
color: @window_fg_color;
}
+messagebubble.outgoing messagereply label.caption-heading,
+messagebubble.outgoing messagereply separator {
+ color: @outgoing_message_accent_color;
+}
+
messagebubble messageindicators {
opacity: 0.7;
}
@@ -208,7 +223,7 @@ messagebubble.document .file > overlay > statusindicator {
messagebubble.document.outgoing .file > overlay > statusindicator {
/* depends on bubble color */
- color: #79c271;
+ color: @outgoing_message_accent_color;
}
messagebubble.document .file:hover > overlay > statusindicator {
@@ -314,6 +329,10 @@ messagereply label.message {
color: @window_fg_color;
}
+messagebubble.outgoing messagereply label.message {
+ color: currentColor;
+}
+
messagesticker {
border-spacing: 6px;
}
@@ -407,3 +426,41 @@ window.chat-info .main-page > list {
.small-pill {
border-radius: 18px;
}
+
+themepreview {
+ color: white;
+}
+
+themepreview .card {
+ border-radius: 6px;
+}
+
+themepreview > label {
+ text-shadow: 0 -1px rgba(0, 0, 0, 0.05), 1px 0 rgba(0, 0, 0, 0.1),
+ 0 1px rgba(0, 0, 0, 0.3), -1px 0 rgba(0, 0, 0, 0.1);
+}
+
+.theme-variants {
+ padding: 4px;
+}
+
+.theme-variants button {
+ margin: 4px;
+ background: none;
+ border-radius: 9px;
+ padding: 3px;
+ box-shadow: none;
+ outline: none;
+}
+
+.theme-variants button:checked {
+ box-shadow: 0 0 0 3px @accent_color;
+}
+
+.theme-variants button:focus:focus-visible {
+ box-shadow: 0 0 0 3px alpha(@accent_color, 0.3);
+}
+
+.theme-variants button:checked:focus:focus-visible {
+ box-shadow: 0 0 0 3px @accent_color, 0 0 0 6px alpha(@accent_color, 0.3);
+}
diff --git a/data/resources/ui/content-chat-history.ui b/data/resources/ui/content-chat-history.ui
index e869c3177..63b070f8a 100644
--- a/data/resources/ui/content-chat-history.ui
+++ b/data/resources/ui/content-chat-history.ui
@@ -3,6 +3,8 @@