From 34851cbd3309b90de726b9b7f7700a7537bb0d68 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Mon, 17 Nov 2025 17:10:07 +0000
Subject: [PATCH 1/7] Fix composer button visibility in contrast colour mode
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
res/css/_common.pcss | 38 ++-----------
.../context_menus/_IconizedContextMenu.pcss | 23 ++++++--
res/css/views/rooms/_EmojiButton.pcss | 4 --
res/css/views/rooms/_MessageComposer.pcss | 53 ++++--------------
.../element-icons/room/composer/attach.svg | 2 +-
res/img/element-icons/room/composer/emoji.svg | 8 +--
.../context_menus/IconizedContextMenu.tsx | 3 +
.../views/location/LocationButton.tsx | 11 ++--
.../views/rooms/CollapsibleButton.tsx | 15 +----
src/components/views/rooms/EmojiButton.tsx | 6 +-
.../views/rooms/MessageComposer.tsx | 6 +-
.../views/rooms/MessageComposerButtons.tsx | 56 +++++++++++--------
12 files changed, 91 insertions(+), 134 deletions(-)
diff --git a/res/css/_common.pcss b/res/css/_common.pcss
index 908da2bdda6..866010f84bc 100644
--- a/res/css/_common.pcss
+++ b/res/css/_common.pcss
@@ -896,9 +896,7 @@ legend {
@define-mixin composerButtonHighLight {
background: var(--cpd-color-bg-subtle-primary);
- &::before {
- background-color: var(--cpd-color-icon-primary) !important;
- }
+ color: var(--cpd-color-icon-primary) !important;
}
@define-mixin composerButton $border-radius, $hover-color, $hover-bg {
@@ -908,41 +906,17 @@ legend {
height: var(--size);
line-height: var(--size);
width: auto;
- padding-left: var(--size);
border-radius: $border-radius;
- &::before {
- content: "";
- position: absolute;
- top: 3px;
- left: 3px;
- height: 20px;
- width: 20px;
- background-color: $icon-button-color;
- mask-repeat: no-repeat;
- mask-size: contain;
- mask-position: center;
- z-index: 2;
- }
-
- &::after {
- content: "";
- position: absolute;
- left: 0;
- top: 0;
- z-index: 0;
- width: var(--size);
- height: var(--size);
- border-radius: $border-radius;
+ svg {
+ color: $icon-button-color;
}
&:hover {
- &::after {
- background: $hover-bg;
- }
+ background-color: $hover-bg;
- &::before {
- background-color: $hover-color;
+ svg {
+ color: $hover-color;
}
}
}
diff --git a/res/css/views/context_menus/_IconizedContextMenu.pcss b/res/css/views/context_menus/_IconizedContextMenu.pcss
index 853d97c9354..7292e260ab4 100644
--- a/res/css/views/context_menus/_IconizedContextMenu.pcss
+++ b/res/css/views/context_menus/_IconizedContextMenu.pcss
@@ -69,11 +69,16 @@ Please see LICENSE files in the repository root for full details.
}
img,
+ svg,
.mx_IconizedContextMenu_icon {
/* icons */
width: 16px;
min-width: 16px;
max-width: 16px;
+
+ & + .mx_IconizedContextMenu_label {
+ padding-left: 14px;
+ }
}
span.mx_IconizedContextMenu_label {
@@ -87,10 +92,6 @@ Please see LICENSE files in the repository root for full details.
white-space: nowrap;
}
- .mx_IconizedContextMenu_icon + .mx_IconizedContextMenu_label {
- padding-left: 14px;
- }
-
.mx_BetaCard_betaPill {
margin-left: 16px;
}
@@ -99,8 +100,6 @@ Please see LICENSE files in the repository root for full details.
.mx_IconizedContextMenu_icon {
position: relative;
- width: 16px;
- height: 16px;
&::before {
content: "";
@@ -119,6 +118,10 @@ Please see LICENSE files in the repository root for full details.
color: $alert !important;
}
+ svg {
+ color: var(--cpd-color-icon-critical-primary);
+ }
+
.mx_IconizedContextMenu_icon::before {
background-color: var(--cpd-color-icon-critical-primary);
}
@@ -127,6 +130,10 @@ Please see LICENSE files in the repository root for full details.
.mx_IconizedContextMenu_option_red {
color: $alert !important;
+ svg {
+ color: $alert;
+ }
+
.mx_IconizedContextMenu_icon::before {
background-color: $alert;
}
@@ -138,6 +145,10 @@ Please see LICENSE files in the repository root for full details.
color: $accent !important;
}
+ svg {
+ color: $accent;
+ }
+
.mx_IconizedContextMenu_icon::before {
background-color: $accent;
}
diff --git a/res/css/views/rooms/_EmojiButton.pcss b/res/css/views/rooms/_EmojiButton.pcss
index 16281046464..5911bf723fe 100644
--- a/res/css/views/rooms/_EmojiButton.pcss
+++ b/res/css/views/rooms/_EmojiButton.pcss
@@ -14,10 +14,6 @@ Please see LICENSE files in the repository root for full details.
@mixin composerButtonHighLight;
}
-.mx_EmojiButton_icon::before {
- mask-image: url("$(res)/img/element-icons/room/composer/emoji.svg");
-}
-
.mx_MessageComposer_wysiwyg {
.mx_EmojiButton {
@mixin composerButton 5px, $tertiary-content, $panels;
diff --git a/res/css/views/rooms/_MessageComposer.pcss b/res/css/views/rooms/_MessageComposer.pcss
index 8b92b682ec1..0afaee0a326 100644
--- a/res/css/views/rooms/_MessageComposer.pcss
+++ b/res/css/views/rooms/_MessageComposer.pcss
@@ -202,6 +202,12 @@ Please see LICENSE files in the repository root for full details.
&.mx_MessageComposer_hangup:not(.mx_AccessibleButton_disabled)::before {
background-color: $alert;
}
+
+ svg {
+ --size: 20px;
+ width: var(--size);
+ height: var(--size);
+ }
}
.mx_MessageComposer_wysiwyg {
.mx_MessageComposer_wrapper {
@@ -244,37 +250,9 @@ Please see LICENSE files in the repository root for full details.
}
}
-.mx_MessageComposer_upload::before {
- mask-image: url("$(res)/img/element-icons/room/composer/attach.svg");
-}
-
-.mx_MessageComposer_poll::before {
- mask-image: url("$(res)/img/element-icons/room/composer/poll.svg");
-}
-
-.mx_MessageComposer_voiceMessage::before {
- mask-image: url("@vector-im/compound-design-tokens/icons/mic-on-solid.svg");
-}
-
-.mx_MessageComposer_plain_text::before {
- mask-image: url("$(res)/img/element-icons/room/composer/plain_text.svg");
-}
-
-.mx_MessageComposer_rich_text::before {
- mask-image: url("@vector-im/compound-design-tokens/icons/text-formatting.svg");
-}
-
-.mx_MessageComposer_location::before {
- mask-image: url("@vector-im/compound-design-tokens/icons/location-pin-solid.svg");
-}
-
-.mx_MessageComposer_stickers::before {
- mask-image: url("$(res)/img/element-icons/room/composer/sticker.svg");
-}
-
-.mx_MessageComposer_buttonMenu::before {
- mask-image: url("@vector-im/compound-design-tokens/icons/overflow-horizontal.svg");
- mask-size: 24px;
+.mx_MessageComposer_buttonMenu svg {
+ width: 24px;
+ height: 24px;
}
.mx_MessageComposer_sendMessage {
@@ -285,20 +263,11 @@ Please see LICENSE files in the repository root for full details.
border-radius: 100%;
background-color: var(--cpd-color-icon-accent-tertiary);
- &::before {
- position: absolute;
+ svg {
height: 16px;
width: 16px;
- top: 8px;
- left: 9px;
-
- mask-image: url("@vector-im/compound-design-tokens/icons/send-solid.svg");
- mask-repeat: no-repeat;
- mask-size: contain;
- mask-position: center;
- background-color: var(--cpd-color-icon-on-solid-primary);
- content: "";
+ color: var(--cpd-color-icon-on-solid-primary);
}
}
diff --git a/res/img/element-icons/room/composer/attach.svg b/res/img/element-icons/room/composer/attach.svg
index 0cac44d29f0..e2081100b7c 100644
--- a/res/img/element-icons/room/composer/attach.svg
+++ b/res/img/element-icons/room/composer/attach.svg
@@ -1,3 +1,3 @@
diff --git a/res/img/element-icons/room/composer/emoji.svg b/res/img/element-icons/room/composer/emoji.svg
index b02cb693645..231dffbd93e 100644
--- a/res/img/element-icons/room/composer/emoji.svg
+++ b/res/img/element-icons/room/composer/emoji.svg
@@ -1,7 +1,7 @@
-