Update toast styles, improve incoming call notifications (#33043)

* Update design of incoming call notifications

* Make toast show avatars of group call participants

* Further expand test coverage for call notifications

* Update screenshots

* Update screenshots

* Delete unused variables

* Upgrade Element Call to v0.19.2

For the new group call intents.

* Consolidate some branches

* Apply Compound spacing variables a little more

* Fix lints

* Exclude Element Call assets from being re-minified to fix build
This commit is contained in:
Robin
2026-04-27 14:37:42 +00:00
committed by GitHub
parent 2ea0c4106b
commit 03b730db58
30 changed files with 350 additions and 270 deletions
@@ -1,4 +1,5 @@
/*
Copyright 2026 Element Creations Ltd.
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.
@@ -13,16 +14,16 @@ Please see LICENSE files in the repository root for full details.
z-index: 101;
padding: 4px;
display: grid;
grid-template-rows: 1fr 14px 6px;
grid-template-rows: 1fr 28px 8px;
&.mx_ToastContainer_stacked::before {
content: "";
margin: 0 4px;
grid-row: 2 / 4;
margin: 0 var(--cpd-space-1-5x);
grid-row: 2 / -1;
grid-column: 1;
background-color: $system;
box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
border-radius: 8px;
border-radius: var(--cpd-space-6x);
}
.mx_Toast_toast {
@@ -32,19 +33,19 @@ Please see LICENSE files in the repository root for full details.
color: $primary-content;
box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
border-radius: 12px;
border-radius: calc(var(--cpd-space-6x) - var(--cpd-border-width-1));
overflow: hidden;
display: grid;
grid-template-columns: 22px 1fr;
column-gap: 8px;
grid-template-columns: 20px 1fr auto;
column-gap: var(--cpd-space-2x);
row-gap: 4px;
align-items: center;
padding: var(--cpd-space-3x);
padding: calc(var(--cpd-space-5x) - var(--cpd-border-width-1));
&.mx_Toast_hasIcon {
svg {
width: 22px;
height: 22px;
width: 20px;
height: 20px;
grid-column: 1;
}
@@ -52,31 +53,18 @@ Please see LICENSE files in the repository root for full details.
grid-column: 2;
}
.mx_Toast_body {
grid-column: 2 / 4;
}
.mx_Toast_closebutton {
grid-column: 3;
}
}
&:not(.mx_Toast_hasIcon) {
padding-left: 12px;
.mx_Toast_title {
grid-column: 1 / -1;
}
}
.mx_Toast_title,
.mx_Toast_description {
padding-right: 8px;
&:not(.mx_Toast_hasIcon) .mx_Toast_title {
grid-column: 1 / -1;
}
.mx_Toast_title {
display: flex;
align-items: center;
column-gap: 8px;
column-gap: var(--cpd-space-2x);
width: 100%;
box-sizing: border-box;
@@ -89,14 +77,14 @@ Please see LICENSE files in the repository root for full details.
}
.mx_Toast_body {
grid-column: 1 / 3;
grid-column: 1 / -1;
grid-row: 2;
}
.mx_Toast_buttons {
display: flex;
justify-content: flex-end;
column-gap: 5px;
column-gap: var(--cpd-space-2x);
.mx_AccessibleButton {
min-width: 96px;
@@ -108,7 +96,7 @@ Please see LICENSE files in the repository root for full details.
max-width: 272px;
overflow: hidden;
text-overflow: ellipsis;
margin: 4px 0 11px 0;
margin: var(--cpd-space-1x) 0 11px 0;
color: $secondary-content;
font: var(--cpd-font-body-sm-regular);
@@ -9,64 +9,55 @@ Please see LICENSE files in the repository root for full details.
.mx_IncomingCallToast {
position: relative;
display: flex;
flex-direction: row;
flex-direction: column;
pointer-events: initial; /* restore pointer events so the user can accept/decline */
$closeButtonSize: var(--cpd-space-4x);
.mx_IncomingCallToast_content {
display: flex;
flex-direction: column;
gap: var(--cpd-space-4x);
padding: var(--cpd-space-3x);
width: 100%;
overflow: hidden;
.mx_IncomingCallToast_message {
font-size: var(--cpd-font-size-body-lg);
line-height: var(--cpd-font-size-heading-sm);
width: calc(100% - $closeButtonSize - 2 * var(--cpd-space-1x));
font-weight: var(--cpd-font-weight-semibold);
.mx_IncomingCallToast_title {
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: var(--cpd-space-2x);
h2 {
margin: 0;
}
.mx_IncomingCallToast_expandButton {
padding: var(--cpd-space-1x);
color: var(--cpd-color-icon-secondary);
transition: color 0.1s;
&:hover {
color: var(--cpd-color-icon-primary);
}
& > svg {
display: block;
}
}
}
.mx_IncomingCallToast_avatars {
display: inline-block;
vertical-align: top;
}
.mx_IncomingCallToast_buttons {
display: flex;
gap: var(--cpd-space-2x);
padding-block-start: var(--cpd-space-2x);
}
.mx_IncomingCallToast_actionButton {
position: relative;
align-self: flex-end;
box-sizing: border-box;
min-width: 120px;
padding: var(--cpd-space-1x) 0;
padding-right: var(--cpd-space-4x);
line-height: var(--cpd-space-6x);
}
}
.mx_IncomingCallToast_closeButton {
position: absolute;
right: 0;
display: flex;
height: $closeButtonSize;
width: $closeButtonSize;
svg {
height: inherit;
width: inherit;
color: $secondary-content;
}
}
.mx_IncomingCallToast_toggleWithLabel {
display: flex;
span {
flex-grow: 1;
min-width: 131px;
}
}
}