Merge branch 'main' into HEAD

This commit is contained in:
Scott Nonnenberg 2024-07-30 16:46:34 -07:00
commit d57d0cea19
1135 changed files with 264116 additions and 302492 deletions

View file

@ -85,6 +85,8 @@ textarea {
}
::-webkit-scrollbar-thumb {
border-radius: 4px;
@include light-theme {
background: $color-gray-25;
border: 2px solid $color-white;
@ -290,7 +292,7 @@ $loading-height: 16px;
justify-content: center;
user-select: none;
.container {
.dot-container {
display: flex;
gap: 7px;
margin-block: 6px 22px;
@ -629,6 +631,10 @@ $loading-height: 16px;
float: inline-start;
}
}
.StandaloneRegistration__error {
color: $color-accent-red;
}
}
//yellow border fix

View file

@ -12,8 +12,17 @@
}
/* Farsi (Persian) */
&:lang(fa) {
font-family: 'Vazirmatn', -apple-system, system-ui, BlinkMacSystemFont,
'Segoe UI', Tahoma, 'Noto Sans Arabic', Helvetica, Arial, sans-serif;
font-family:
'Vazirmatn',
-apple-system,
system-ui,
BlinkMacSystemFont,
'Segoe UI',
Tahoma,
'Noto Sans Arabic',
Helvetica,
Arial,
sans-serif;
}
/* Urdu */
&:lang(ur) {
@ -316,7 +325,9 @@ $rtl-icon-map: (
// Other
@mixin popper-shadow() {
box-shadow: 0px 8px 20px rgba(0, 0, 0, 0.3), 0px 0px 8px rgba(0, 0, 0, 0.05);
box-shadow:
0px 8px 20px rgba(0, 0, 0, 0.3),
0px 0px 8px rgba(0, 0, 0, 0.05);
@media (forced-colors: active) {
border: 1px solid WindowText;
@ -868,9 +879,11 @@ $rtl-icon-map: (
@include scrollbar;
&::-webkit-scrollbar-thumb {
@include light-theme {
background: $color-gray-25;
border-color: $color-gray-04;
}
@include dark-theme {
background: $color-gray-45;
border-color: $color-gray-80;
}
}
@ -882,3 +895,82 @@ $rtl-icon-map: (
-webkit-app-region: no-drag;
}
}
@mixin tooltip {
& {
@include font-body-2;
@include light-theme {
background-color: $color-gray-04;
color: $color-black;
outline: 1px solid $color-gray-20;
}
@include dark-theme {
background-color: $color-gray-80;
color: $color-gray-15;
outline: 1px solid $color-gray-62;
}
padding-block: 5px;
padding-inline: 12px;
border-radius: 6px;
filter: drop-shadow(0px 4px 3px $color-black-alpha-16);
pointer-events: none;
}
& .module-tooltip-arrow::before {
position: absolute;
content: '';
border-style: solid;
border-width: 7px;
}
&[data-placement='bottom'] .module-tooltip-arrow::before {
@include light-theme {
border-color: transparent transparent $color-gray-20 transparent;
}
@include dark-theme {
border-color: transparent transparent $color-gray-62 transparent;
}
margin-top: -14px;
/* stylelint-disable-next-line liberty/use-logical-spec */
margin-left: -7px;
}
&[data-placement='bottom'] .module-tooltip-arrow::after {
@include light-theme {
border-bottom-color: $color-gray-04;
}
@include dark-theme {
border-bottom-color: $color-gray-80;
}
}
&[data-placement='top'] .module-tooltip-arrow::before {
@include light-theme {
border-color: $color-gray-20 transparent transparent transparent;
}
@include dark-theme {
border-color: $color-gray-62 transparent transparent transparent;
}
margin-top: 0;
/* stylelint-disable-next-line liberty/use-logical-spec */
margin-left: -7px;
}
&[data-placement='top'] .module-tooltip-arrow::after {
@include light-theme {
border-top-color: $color-gray-04;
}
@include dark-theme {
border-top-color: $color-gray-80;
}
}
}

View file

@ -408,7 +408,9 @@ $message-padding-horizontal: 12px;
background: transparent;
border: 1px solid $color-gray-20;
animation: module-message__select-checkbox--fadeIn 0.2s ease-out;
transition: background 0.1s ease-out, border-color 0.1s ease-out;
transition:
background 0.1s ease-out,
border-color 0.1s ease-out;
&::before {
content: '';
@ -953,7 +955,7 @@ $message-padding-horizontal: 12px;
padding-inline: $message-padding-horizontal;
display: flex;
flex-direction: row;
align-items: flex-start;
align-items: center;
@include light-theme {
background-color: $color-gray-02;
@ -992,6 +994,7 @@ $message-padding-horizontal: 12px;
.module-message__link-preview__description {
@include font-body-2;
margin-top: 4px;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 5;
@ -1106,6 +1109,9 @@ $message-padding-horizontal: 12px;
a {
text-decoration: underline;
outline: none;
// Allow links to be broken anywhere so they don't force extra line breaks
// when surrounded by text.
word-break: break-all;
@include light-theme {
color: $color-white-alpha-90;
@ -1184,6 +1190,8 @@ $message-padding-horizontal: 12px;
&--inline {
float: inline-end;
margin-top: -14px;
position: relative;
z-index: $z-index-base;
}
}
@ -1200,6 +1208,29 @@ $message-padding-horizontal: 12px;
}
}
.module-message__metadata__sms {
width: 12px;
height: 12px;
display: inline-block;
margin-inline-start: 6px;
// High margin to leave space for the increase when we go to two checks
margin-bottom: 2px;
@include color-svg(
'../images/icons/v2/lock-unlock-outline-12.svg',
$color-white
);
}
.module-message__metadata__sms--incoming {
@include light-theme {
background-color: $color-gray-60;
}
@include dark-theme {
background-color: $color-gray-25;
}
}
.module-message__container--outgoing .module-message__metadata__edited {
color: $color-white-alpha-80;
}
@ -3714,7 +3745,6 @@ button.module-image__border-overlay:focus {
}
}
.module-ongoing-call {
$local-preview-width: 108px;
$local-preview-height: 80px;
&__remote-video-enabled {
@ -3996,8 +4026,12 @@ button.module-image__border-overlay:focus {
line-height: 0;
overflow: hidden;
border-radius: 10px;
transition: top 200ms linear, inset-inline-start 200ms linear,
transform 200ms linear, width 200ms linear, height 200ms linear;
transition:
top 200ms linear,
inset-inline-start 200ms linear,
transform 200ms linear,
width 200ms linear,
height 200ms linear;
@media (prefers-reduced-motion) {
transition: none;
@ -4211,7 +4245,7 @@ button.module-image__border-overlay:focus {
margin-inline: 0 16px;
overflow: hidden;
position: relative;
width: $local-preview-width;
width: $calling-local-preview-width;
&--active {
box-shadow: 0px 4px 14px 0px $color-black-alpha-40;
@ -4231,6 +4265,10 @@ button.module-image__border-overlay:focus {
}
}
&__controls {
z-index: $z-index-above-above-base;
}
&__controls--fadeIn {
@include module-ongoing-call__controls--fade-in;
}
@ -4244,7 +4282,6 @@ button.module-image__border-overlay:focus {
position: absolute;
top: calc(32px + var(--title-bar-drag-area-height));
inset-inline-end: 0;
z-index: $z-index-above-above-base;
display: flex;
&__button {
@ -4264,7 +4301,9 @@ button.module-image__border-overlay:focus {
backface-visibility: hidden;
background-color: $color-gray-95;
border-radius: 4px;
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.05), 0px 8px 20px rgba(0, 0, 0, 0.3);
box-shadow:
0px 0px 8px rgba(0, 0, 0, 0.05),
0px 8px 20px rgba(0, 0, 0, 0.3);
cursor: grab;
height: 158px;
position: fixed;
@ -4362,29 +4401,37 @@ button.module-image__border-overlay:focus {
flex-direction: column;
width: 320px;
height: 440px;
max-height: calc(100vh - $CallControls__height - 22px);
padding-block: 5px 0;
padding-inline: 5px;
margin-block-end: 85px;
margin-block-start: 20px;
margin-inline: auto;
background-color: $color-gray-80;
border-radius: 10px;
color: $color-white;
filter: drop-shadow(0px 4px 3px $color-black-alpha-20);
margin-inline-end: 340px;
margin-block-end: 85px;
margin-block-start: 20px;
outline: 1px solid $color-gray-62;
overflow: hidden;
padding-block: 5px 0;
padding-inline: 5px;
&__overlay {
position: absolute;
top: 0;
display: flex;
flex-direction: column;
align-items: center;
flex-direction: row;
width: 100vw;
height: 100vh;
justify-content: flex-end;
padding-inline-start: 15px;
align-items: flex-end;
inset-inline-start: 0;
z-index: $z-index-calling;
&::after {
content: '';
display: flex;
flex-shrink: 1;
flex-basis: 480px;
}
}
&__title {
@ -4392,6 +4439,7 @@ button.module-image__border-overlay:focus {
}
&__contact-icon {
margin-inline-start: 0.3em;
background-color: $color-gray-25;
}
@ -4414,17 +4462,23 @@ button.module-image__border-overlay:focus {
&__contact {
@include font-body-1;
@include button-reset;
display: flex;
align-items: center;
width: 100%;
margin-block: 2px;
padding-block: 8px;
padding-inline-start: 10px;
padding-inline-end: 2px;
list-style-type: none;
border-radius: 6px;
cursor: auto;
&:hover {
background-color: $color-gray-62;
}
&[disabled] {
cursor: auto;
}
}
&__avatar-and-name {
@ -4506,6 +4560,17 @@ button.module-image__border-overlay:focus {
$color-white
);
}
&__remove {
@include color-svg(
'../images/icons/v3/minus/minus-circle-compact.svg',
$color-white
);
}
}
button.module-calling-participants-list__contact {
cursor: pointer;
}
.module-call-need-permission-screen {
@ -4555,8 +4620,11 @@ button.module-image__border-overlay:focus {
padding-inline: 0;
}
// Center chat list icons in narrow mode by reserving scrollbar space, preventing
// scrollbar from pushing content
&--width-narrow {
padding-inline: 10px;
padding-inline: 10px 1px;
scrollbar-gutter: stable;
}
&__item {
@ -4669,10 +4737,6 @@ button.module-image__border-overlay:focus {
user-select: none;
width: 100%;
.module-conversation-list--width-narrow & {
padding-inline: 14px 0;
}
#{$unread-indicator} {
$size: 18px;
height: $size;
@ -4817,10 +4881,6 @@ button.module-image__border-overlay:focus {
align-items: stretch;
overflow: hidden;
.module-conversation-list--width-narrow & {
margin-inline-start: 0;
}
&--disabled {
opacity: 0.5;
}
@ -4948,6 +5008,22 @@ button.module-image__border-overlay:focus {
height: 36px; // two lines
}
&__blocked {
display: flex;
align-items: center;
&::before {
content: '';
display: inline-block;
width: 16px;
height: 16px;
margin-inline-end: 4px;
@include color-svg(
'../images/icons/v3/block/block.svg',
currentColor
);
}
}
&__message-request {
@include font-body-2-bold;
@ -7531,22 +7607,35 @@ button.module-image__border-overlay:focus {
.module-message__action {
@include button-reset();
margin-top: 5px;
padding: 10px;
border-radius: 30px;
margin-top: 14px;
margin-bottom: 4px;
padding: 8px;
text-align: center;
width: 100%;
@include font-body-1-bold();
border-top: 1px solid;
}
.module-message__action--outgoing {
border-top-color: rgba(255, 255, 255, 0.5);
background-color: rgba($color-white, 0.22);
&:hover {
background-color: rgba($color-white, 0.36);
}
}
.module-message__action--incoming {
@include light-theme {
border-top-color: rgba(0, 0, 0, 0.25);
color: $color-link;
background-color: $color-white-alpha-70;
&:hover {
background-color: $color-white;
}
}
@include dark-theme {
border-top-color: rgba(255, 255, 255, 0.25);
color: $color-white;
background-color: rgba($color-white, 0.07);
&:hover {
background-color: rgba($color-white, 0.17);
}
}
}
@ -7554,19 +7643,7 @@ button.module-image__border-overlay:focus {
display: flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
margin-inline-end: 12px;
background: #e5e5fe;
@include rounded-corners();
&::before {
content: '';
display: block;
width: 36px;
height: 36px;
@include color-svg(
'../images/icons/v3/video/video-display-bold.svg',
#5151f6
);
}
margin-top: 4px;
margin-bottom: 4px;
}

View file

@ -2,8 +2,18 @@
// SPDX-License-Identifier: AGPL-3.0-only
// Note: Add language-specific fallbacks in @localized-fonts mixin
$inter: Inter, 'Source Sans Pro', 'Source Han Sans', -apple-system, system-ui,
'Segoe UI', 'Noto Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
$inter:
Inter,
'Source Sans Pro',
'Source Han Sans',
-apple-system,
system-ui,
'Segoe UI',
'Noto Sans',
'Helvetica Neue',
Helvetica,
Arial,
sans-serif;
// Note: This font-family is checked for in matchMonospace, to support paste scenarios
$monospace: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo,
@ -70,6 +80,7 @@ $color-ultramarine-light: #6191f3;
$color-ultramarine-dawn: #406ec9;
$color-ultramarine-pastel: #abc4f8;
$color-ultramarine: #2c6bed;
$color-link: #315ff4;
// Flat colors
@ -259,6 +270,9 @@ $ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
$calling-background-color: $color-gray-90;
// Maintain aspect ratio 960x720 with $local-preview-height
$calling-local-preview-width: 106.67px;
// General
$z-index-negative: -1;

View file

@ -97,12 +97,17 @@
&--about {
@include about-modal-icon('../images/icons/v3/edit/edit.svg');
}
&--note {
@include about-modal-icon('../images/icons/v3/note/note.svg');
}
}
&__signal-connection {
&__button {
display: flex;
flex-direction: row;
align-items: center;
min-width: 0;
@include button-reset();
cursor: pointer;
@ -112,6 +117,7 @@
display: inline-block;
height: 20px;
width: 20px;
flex-shrink: 0;
@include color-svg(
'../images/icons/v3/chevron/chevron-right-bold.svg',
@ -125,3 +131,17 @@
cursor: pointer;
}
}
.AboutContactModal__TitleWithoutNickname {
color: $color-gray-45;
}
.AboutContactModal__OneLineEllipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.AboutContactModal__TitleWithoutNickname__Tooltip {
max-width: 300px;
}

View file

@ -5,6 +5,7 @@
display: inline-flex;
line-height: 0;
position: relative;
z-index: 0;
user-select: none;
vertical-align: middle;

View file

@ -53,7 +53,9 @@
background: $color-gray-02;
border-radius: 100%;
bottom: 4px;
box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.2);
box-shadow:
0px 4px 16px rgba(0, 0, 0, 0.12),
0px 2px 4px rgba(0, 0, 0, 0.2);
display: flex;
height: 28px;
justify-content: center;
@ -75,7 +77,9 @@
align-items: center;
background-color: $color-white;
border-radius: 100%;
box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.2);
box-shadow:
0px 4px 16px rgba(0, 0, 0, 0.12),
0px 2px 4px rgba(0, 0, 0, 0.2);
display: flex;
height: 24px;
justify-content: center;

View file

@ -60,7 +60,9 @@
align-items: center;
background-color: $color-white;
border-radius: 100%;
box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.2);
box-shadow:
0px 4px 16px rgba(0, 0, 0, 0.12),
0px 2px 4px rgba(0, 0, 0, 0.2);
display: none;
height: 20px;
justify-content: center;

View file

@ -4,7 +4,9 @@
.module-Button {
@mixin focus-box-shadow($inner-color, $outer-color) {
&:focus {
box-shadow: 0 0 0 1px $inner-color, 0 0 0 4px $outer-color;
box-shadow:
0 0 0 1px $inner-color,
0 0 0 4px $outer-color;
}
}

View file

@ -97,7 +97,9 @@
@include keyboard-mode {
&:focus {
box-shadow: 0 0 0 1px $color-gray-80, 0 0 0 3px $color-ultramarine !important;
box-shadow:
0 0 0 1px $color-gray-80,
0 0 0 3px $color-ultramarine !important;
}
}
}
@ -110,14 +112,8 @@
margin-block: -5px;
}
.CallControls__ReactButtonContainer--menu-shown .module-tooltip {
opacity: 0;
}
.CallControls__OuterSpacer {
// Defined in _modules but duplicated here for ease of refactor
$local-preview-width: 108px;
flex-basis: calc($local-preview-width + 16px);
flex-basis: calc($calling-local-preview-width + 16px);
}
.CallControls__ReactionPickerContainer {

View file

@ -0,0 +1,16 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.CallLinkAddNameModal__Row {
display: flex;
gap: 12px;
}
.CallLinkAddNameModal__SrOnly {
@include sr-only;
}
// Overriding the default styles for the input container
.CallLinkAddNameModal__Input__container.Input__container {
flex: 1;
}

View file

@ -0,0 +1,47 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.CallLinkDetails__Container {
max-width: 750px;
margin-block: 0;
margin-inline: auto;
user-select: none;
}
.CallLinkDetails__Header {
display: flex;
align-items: center;
gap: 16px;
width: 100%;
margin-bottom: 24px;
}
.CallLinkDetails__HeaderAvatar,
.CallLinkDetails__HeaderActions {
flex-shrink: 0;
}
.CallLinkDetails__HeaderDetails {
flex: 1;
}
.CallLinkDetails__HeaderTitle {
margin: 0;
@include font-title-medium;
}
.CallLinkDetails__HeaderDescription {
margin: 0;
user-select: text;
@include font-body-1;
@include light-theme {
color: $color-gray-60;
}
@include dark-theme {
color: $color-gray-25;
}
}
.CallLinkDetails__HeaderButton {
font-weight: 600;
}

View file

@ -0,0 +1,162 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Overriding default style
.module-Modal__body.CallLinkEditModal__body {
padding-inline: 12px 3px;
scrollbar-gutter: stable;
}
.CallLinkEditModal__SrOnly {
@include sr-only;
}
.CallLinkEditModal__Header {
display: flex;
gap: 16px;
align-items: center;
margin-bottom: 26px;
}
.CallLinkEditModal__Header__Details {
flex: 1;
display: flex;
flex-direction: column;
gap: 0;
min-width: 0; // fix overflow issue
}
.CallLinkEditModal__Header__Title {
@include font-body-1-bold;
}
.CallLinkEditModal__Header__CallLinkButton {
@include button-reset;
@include font-subtitle;
@include light-theme {
color: $color-gray-60;
}
@include dark-theme {
color: $color-gray-25;
}
}
.CallLinkEditModal__Header__CallLinkButton__Text {
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.CallLinkEditModal__Header__Actions {
display: flex;
gap: 14px;
align-items: center;
}
.CallLinkEditModal__JoinButton {
@include font-body-1-bold;
}
.CallLinkEditModal__Row {
display: flex;
padding: 12px;
align-items: center;
gap: 16px;
}
.CallLinkEditModal__RowButton {
@include button-reset;
width: 100%;
padding-block: 1px;
.CallLinkEditModal__Row {
border-radius: 8px;
}
&:hover,
&:focus {
.CallLinkEditModal__Row {
@include light-theme {
background: $color-gray-02;
}
@include dark-theme {
background: $color-gray-75;
}
}
}
}
.CallLinkEditModal__Row--Button {
@include font-body-2;
display: flex;
gap: 8px;
align-items: center;
width: 100%;
@include light-theme {
color: $color-black;
}
@include dark-theme {
color: $color-gray-15;
}
}
.CallLinkEditModal__RowLabel {
@include font-body-1;
flex: 1;
}
.CallLinkEditModal__RowIcon {
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
&::after {
content: '';
display: block;
width: 20px;
height: 20px;
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
}
@mixin CallLinkEditModal__RowIcon($iconPath) {
&::after {
@include light-theme {
@include color-svg($iconPath, $color-gray-75);
}
@include dark-theme {
@include color-svg($iconPath, $color-gray-15);
}
}
}
.CallLinkEditModal__RowIcon--Edit {
@include CallLinkEditModal__RowIcon('../images/icons/v3/edit/edit.svg');
}
.CallLinkEditModal__RowIcon--Approve {
@include CallLinkEditModal__RowIcon(
'../images/icons/v3/person/person-check-compact.svg'
);
}
.CallLinkEditModal__RowIcon--Copy {
@include CallLinkEditModal__RowIcon('../images/icons/v3/copy/copy.svg');
}
.CallLinkEditModal__RowIcon--Share {
@include CallLinkEditModal__RowIcon('../images/icons/v3/forward/forward.svg');
}
.CallLinkEditModal__Hr {
border: none;
height: 1px;
background: $color-black-alpha-12;
}

View file

@ -0,0 +1,7 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
// Overriding default style
.CallLinkRestrictionsSelect.module-select select {
min-width: 0;
}

View file

@ -2,23 +2,32 @@
// SPDX-License-Identifier: AGPL-3.0-only
.CallingAdhocCallInfo {
width: 100%;
flex-shrink: 0;
width: 360px;
height: auto;
margin-block-end: auto;
padding-block-end: 16px;
overflow: auto;
pointer-events: auto;
}
.CallingAdhocCallInfo__width-container {
display: flex;
flex-direction: column;
width: 360px;
flex-direction: row;
width: 100%;
max-width: none;
height: auto;
padding-block: 1px;
padding-inline: 1px;
margin-block-end: 102px;
margin-inline-start: 90px;
padding-inline-start: 15px;
margin-block-end: 80px;
overflow: hidden;
pointer-events: none;
}
.CallingAdhocCallInfo__width-container::after {
content: '';
display: flex;
flex-shrink: 1;
flex-basis: 480px;
}
.CallingAdhocCallInfo__overlay {
@ -29,11 +38,6 @@
flex-direction: column;
padding: 0;
justify-content: flex-end;
align-items: start;
}
.CallingAdhocCallInfo__Overlay {
align-items: start;
}
.CallingAdhocCallInfo__MenuItem {
@ -48,10 +52,10 @@
.CallingAdhocCallInfo__MenuItemIcon {
background: $color-gray-65;
display: flex;
width: 32px;
height: 32px;
width: 36px;
height: 36px;
margin-inline-end: 8px;
border-radius: 32px;
border-radius: 36px;
align-items: center;
justify-content: center;
}
@ -81,3 +85,59 @@
margin-inline: 10px;
border: 1px solid $color-gray-65;
}
.CallingAdhocCallInfo__RemoveClient {
@include button-reset;
width: 16px;
height: 16px;
margin-inline: 8px;
background: $color-white;
}
.CallingAdhocCallInfo__UnknownContactInfoButton {
@include button-reset;
@include color-svg('../images/icons/v3/info/info.svg', $color-white);
display: flex;
flex: none;
width: 16px;
height: 16px;
margin-inline: 8px;
}
.CallingAdhocCallInfo__UnknownContactInfoButton:focus {
@include keyboard-mode {
background: $color-ultramarine;
}
}
.CallingAdhocCallInfo__UnknownContactInfoDialog__body {
padding-block-start: 22px;
padding-block-end: 8px;
}
.CallingAdhocCallInfo__UnknownContactAvatarSet {
height: 36px;
}
.CallingAdhocCallInfo__UnknownContactAvatar {
&:not(:first-child) {
margin-inline-start: -24px;
}
.module-Avatar__contents {
outline: 2px solid;
outline-color: $color-gray-80;
}
}
.CallingAdhocCallInfo
.module-calling-participants-list__contact:hover
.CallingAdhocCallInfo__UnknownContactAvatar
.module-Avatar__contents {
// Should match background of .module-calling-participants-list__contact:hover
outline-color: $color-gray-62;
}
.CallingAdhocCallInfo__RemoveClientDialog {
width: 440px;
}

View file

@ -147,7 +147,9 @@
max-width: 64px;
margin-inline: 10px;
transition: margin-inline-start 0.3s ease-out, opacity 0.3s ease-out;
transition:
margin-inline-start 0.3s ease-out,
opacity 0.3s ease-out;
@media (prefers-reduced-motion) {
transition: none;
}

View file

@ -46,9 +46,19 @@
background: $color-black-alpha-60;
color: $color-white;
border-radius: 10px;
align-items: center;
text-align: center;
}
.CallingLobby__CallLinkNotice--join-request-pending {
@include font-body-1;
width: auto;
}
.CallingLobby__CallLinkJoinRequestPendingSpinner {
margin-inline-end: 8px;
}
.CallingLobby__Footer {
display: flex;
width: 100%;

View file

@ -0,0 +1,130 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.CallingPendingParticipants {
width: 420px;
height: auto;
margin-block-start: auto;
margin-block-end: 36px;
margin-inline-start: auto;
margin-inline-end: auto;
}
.CallingPendingParticipants--Compact {
width: 364px;
padding-inline: 0;
padding-block-start: 0;
background: $color-gray-78;
outline: 0;
}
.CallingPendingParticipants--Expanded {
padding-block-end: 2px;
}
.CallingPendingParticipants__CompactParticipant {
display: flex;
padding-block: 12px;
padding-inline: 12px;
outline: none;
align-items: center;
}
.CallingPendingParticipants__CompactParticipantNameColumn {
margin-inline-start: 8px;
}
.CallingPendingParticipants__ParticipantName {
@include font-body-1-bold;
color: $color-gray-15;
}
.CallingPendingParticipants__WouldLikeToJoin {
@include font-body-2;
color: $color-gray-20;
}
.CallingPendingParticipants__PendingActionButton {
width: 28px;
height: 28px;
flex-shrink: 0;
padding-inline: 0;
margin-inline-end: 16px;
}
.CallingPendingParticipants__PendingActionButton:first-child {
margin-inline-start: 8px;
}
.CallingPendingParticipants__PendingActionButton:last-child {
margin-inline-end: 8px;
}
.CallingPendingParticipants__PendingActionButtonIcon {
width: 16px;
height: 16px;
}
.CallingPendingParticipants--Compact {
.CallingPendingParticipants__PendingActionButton {
width: 36px;
height: 36px;
margin-inline-end: 20px;
}
.CallingPendingParticipants__PendingActionButton:last-child {
margin-inline-end: 0;
}
.CallingPendingParticipants__PendingActionButtonIcon {
width: 20px;
height: 20px;
}
}
.CallingPendingParticipants__PendingActionButtonIcon--Approve {
@include color-svg('../images/icons/v3/check/check-bold.svg', $color-white);
}
.CallingPendingParticipants__PendingActionButtonIcon--Deny {
@include color-svg('../images/icons/v3/x/x-bold.svg', $color-white);
}
.CallingPendingParticipants__ActionPanel {
padding-block: 15px;
text-align: end;
}
.CallingPendingParticipants__ActionPanelButton {
border-radius: 4px;
margin-inline-end: 16px;
}
.CallingPendingParticipants__ActionPanelButton:last-child {
margin-inline-end: 10px;
}
.CallingPendingParticipants__ShowAllRequestsButton {
@include button-reset;
@include font-body-2-bold;
display: flex;
padding-block: 5px;
padding-inline: 15px;
margin-block: 12px;
margin-inline: auto;
color: $color-white-alpha-90;
background: $color-gray-65;
border-radius: 46px;
outline: none;
}
.CallingPendingParticipants__ShowAllRequestsButton:focus {
@include keyboard-mode {
outline: 3px solid $color-ultramarine;
outline-offset: 1px;
}
}
.CallingPendingParticipants__ShowAllRequestsButtonContainer {
background: $color-black-alpha-24;
}

View file

@ -16,7 +16,7 @@
padding-block: 1px;
padding-inline: 1px;
// This should be above .CallingRaisedHandsList__Button
margin-block-end: 168px;
margin-block-end: 72px;
margin-inline-start: 8px;
overflow: hidden;
}
@ -36,17 +36,25 @@
align-items: start;
}
.CallingRaisedHandsList__TitleHint {
font-weight: normal;
}
.CallingRaisedHandsList .module-calling-participants-list__contact:last-child {
margin-block-end: 4px;
}
.CallingRaisedHandsList__Button {
@include button-reset;
position: absolute;
inset-inline-start: 16px;
inset-block-end: calc($CallControls__height + 32px);
inset-block-end: 16px;
display: flex;
padding-block: 14px;
padding-inline: 12px;
background: $color-gray-78;
background: $color-white;
border-radius: 24px;
color: $color-white;
color: $color-black;
font-size: 14px;
z-index: $z-index-above-above-base;
@ -67,7 +75,7 @@
@include color-svg(
'../images/icons/v3/raise_hand/raise_hand-light.svg',
$color-gray-15
$color-black
);
}

View file

@ -8,15 +8,6 @@
width: 100%;
}
// Reactions appear in the same space as the Raised Hands button. When they are both
// present then move Reactions up.
.CallingRaisedHandsList__Button + .CallingReactionsToasts,
.CallingRaisedHandsList__Button
+ .CallingReactionsToasts
+ .CallingReactionsBurstToasts {
inset-block-end: calc($CallControls__height + 100px);
}
// Normally the newest toasts are appended on top, like this:
// | Second |
// | First | -> | First |

View file

@ -2,11 +2,14 @@
// SPDX-License-Identifier: AGPL-3.0-only
.module-CallingScreenSharingController {
align-items: center;
display: flex;
width: 100%;
height: 100%;
padding-block: 9vh;
padding-inline: 3.3vw;
overflow: hidden;
align-items: center;
justify-content: space-between;
padding-block: 4px;
padding-inline: 16px;
@include draggable-region;
&__text {
@ -15,26 +18,32 @@
text-overflow: ellipsis;
user-select: none;
white-space: nowrap;
width: 350px;
width: 73vw;
}
&__button {
height: 82vh;
padding-block: 18vh;
padding-inline: 3.5vw;
line-height: 45.5vh;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
&__buttons {
align-items: center;
display: flex;
margin-inline-start: 6px;
margin-inline-start: 1.25vw;
-webkit-app-region: no-drag;
}
&__close {
@include button-reset;
@include color-svg('../images/icons/v3/x/x.svg', $color-gray-25);
width: 4.5vw;
height: 45.5vh;
margin-inline-start: 2.5vw;
cursor: pointer;
margin-inline-start: 12px;
height: 20px;
width: 20px;
}
}

View file

@ -104,6 +104,7 @@
@include button-reset;
flex-shrink: 0;
padding: 4px;
margin-inline-end: 8px;
border-radius: 4px;
&:not(.CallsList__ToggleFilterByMissed--pressed):hover {
@ -118,7 +119,9 @@
&:focus {
outline: none;
@include keyboard-mode {
box-shadow: 0 0 0 2px $color-white, 0 0 0 4px $color-ultramarine;
box-shadow:
0 0 0 2px $color-white,
0 0 0 4px $color-ultramarine;
}
}
@ -160,7 +163,7 @@
@include NavTabs__Scroller;
}
.CallsList__List--loading {
.CallsList__List--disableScrolling {
overflow: hidden !important;
}
@ -232,7 +235,8 @@
}
// Override .ListTile__subtitle so ellipsis is correct color
.CallsList__Item--missed .ListTile__subtitle {
.CallsList__Item--missed .ListTile__subtitle,
.CallsList__Item--declined .ListTile__subtitle {
// Need to override the themed selector specificity of .ListTile__subtitle
@include light-theme {
color: $color-accent-red;
@ -322,6 +326,65 @@
}
}
.CallsNewCall__ItemActionButton--join-call {
$background: $color-accent-green;
@include font-body-2-bold;
@include rounded-corners;
display: flex;
width: auto;
height: 26px;
padding-block: 4px;
padding-inline: 10px;
align-items: center;
background-color: $background;
color: $color-white;
outline: none;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
user-select: none;
&:before {
$icon-size: 16px;
@include color-svg(
'../images/icons/v3/video/video-compact-fill.svg',
$color-white
);
content: '';
display: block;
height: $icon-size;
margin-inline-end: 4px;
min-width: $icon-size;
width: $icon-size;
}
&:not(:disabled) {
&:hover {
@include any-theme {
background-color: darken($background, 16%);
}
}
&:focus {
@include keyboard-mode {
background-color: darken($background, 16%);
}
}
}
}
.CallsNewCall__ItemActionButton--join-call-disabled {
opacity: 0.5;
}
.CallsNewCall__ItemActionButtonTooltip {
@include tooltip;
max-width: 212px;
}
.CallsNewCall__ItemIcon {
display: block;
width: 20px;

View file

@ -82,6 +82,9 @@
&::before {
@include color-svg('../images/icons/v3/check/check.svg', $color-white);
}
&:disabled {
opacity: 0.5;
}
}
}

View file

@ -98,11 +98,16 @@
}
&--large {
max-height: calc(212px - 2 * $border-size);
min-height: calc(212px - 2 * $border-size);
$largeHeight: calc(212px - 2 * $border-size);
$largeHeightContentBox: calc($largeHeight - 2 * $padding-top);
// Explicit height needed to allow `height: 100%` on children
height: $largeHeight;
max-height: $largeHeight;
min-height: $largeHeight;
.DraftEditor-root {
height: calc(212px - 2 * $padding-top - 2 * $border-size);
height: $largeHeightContentBox;
}
}
@ -135,7 +140,9 @@
transition: opacity ease 200ms;
// The same box-shadow in popper-shadow mixin, just halved
box-shadow: 0px 4px 10px rgba(0, 0, 0, 30%), 0px 0px 4px rgba(0, 0, 0, 5%);
box-shadow:
0px 4px 10px rgba(0, 0, 0, 30%),
0px 0px 4px rgba(0, 0, 0, 5%);
@include light-theme() {
background: $color-white;

View file

@ -121,3 +121,9 @@
}
}
}
.ContactListItem__contact-icon {
width: 14px;
height: 14px;
color: currentColor;
}

View file

@ -29,6 +29,14 @@
white-space: nowrap;
}
&__name__contact-icon {
height: 22px;
width: 22px;
@include any-theme {
background-color: currentColor;
}
}
&__name__chevron {
flex-shrink: 0;
@ -107,6 +115,19 @@
width: 20px;
}
&__nickname__bubble-icon {
height: 20px;
width: 20px;
@include light-theme {
@include color-svg('../images/icons/v3/edit/edit.svg', $color-gray-75);
}
@include dark-theme {
@include color-svg('../images/icons/v3/edit/edit.svg', $color-gray-15);
}
}
&__send-message__bubble-icon {
height: 20px;
width: 20px;
@ -288,4 +309,8 @@
margin-block: 8px 5px;
}
&__tooltip {
@include tooltip;
}
}

View file

@ -153,6 +153,14 @@
}
}
&--approveAllMembers {
&::after {
@include details-icon(
'../images/icons/v3/person/person-check-compact.svg'
);
}
}
&--link {
&::after {
@include details-icon('../images/icons/v3/link/link.svg');
@ -189,6 +197,12 @@
}
}
&--forward {
&::after {
@include details-icon('../images/icons/v3/forward/forward.svg');
}
}
&--down {
border-radius: 18px;
@include light-theme {
@ -486,6 +500,15 @@
}
}
.ConversationDetails__CallHistoryGroup__ItemIcon--Adhoc {
@include light-theme {
@include color-svg('../images/icons/v3/link/link.svg', $color-black);
}
@include dark-theme {
@include color-svg('../images/icons/v3/link/link.svg', $color-gray-15);
}
}
.ConversationDetails__CallHistoryGroup__ItemLabel {
flex: 1;
}
@ -493,3 +516,42 @@
.ConversationDetails__CallHistoryGroup__ItemTimestamp {
flex-shrink: 0;
}
.ConversationDetails--nickname-actions {
@include button-reset;
width: 32px;
height: 32px;
&::before {
display: inline-block;
content: '';
width: 20px;
height: 20px;
@include light-theme {
@include color-svg(
'../images/icons/v3/chevron/chevron-down.svg',
$color-black
);
}
@include dark-theme {
@include color-svg(
'../images/icons/v3/chevron/chevron-down.svg',
$color-white
);
}
}
}
.ConversationDetails--nickname-actions-label {
@include sr-only;
}
.ConversationDetails--nickname-actions--delete {
width: 16px;
height: 16px;
@include light-theme {
@include color-svg('../images/icons/v3/trash/trash.svg', $color-black);
}
@include dark-theme {
@include color-svg('../images/icons/v3/trash/trash.svg', $color-white);
}
}

View file

@ -21,14 +21,17 @@
&__title {
@include font-title-1;
font-weight: 400;
align-items: baseline;
display: flex;
justify-content: center;
padding-bottom: 8px;
padding-top: 12px;
user-select: text;
}
&__title-contact-icon {
width: 22px;
height: 22px;
background-color: currentColor;
}
&__subtitle {
@include font-body-1;
color: $color-gray-60;
@ -50,6 +53,8 @@
&::after {
$size: 24px;
display: inline-block;
vertical-align: middle;
content: '';
height: $size;
inset-inline-start: $size + 13px;

View file

@ -156,7 +156,9 @@
margin-inline-end: var(--button-spacing);
min-width: $icon-size;
padding: 2px;
transition: margin-inline-end 200ms ease-out, opacity 200ms ease-out,
transition:
margin-inline-end 200ms ease-out,
opacity 200ms ease-out,
background 100ms ease-out;
width: $icon-size;

View file

@ -92,6 +92,14 @@
}
}
&__safety-tips-button {
border-radius: 9999px;
padding-block: 6px;
padding-inline: 14px;
margin-top: 12px;
@include font-subtitle;
}
&__membership {
@include font-body-2;
user-select: none;

View file

@ -0,0 +1,27 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.EditNicknameAndNoteModal__width-container {
max-width: 360px;
}
.EditNicknameAndNoteModal__Description {
margin-block: 12px 24px;
@include font-body-2;
@include light-theme {
color: $color-gray-75;
}
@include dark-theme {
color: $color-gray-25;
}
}
.EditNicknameAndNoteModal__Avatar {
margin-block: 0 24px;
display: flex;
justify-content: center;
}
.EditNicknameAndNoteModal__Label {
@include sr-only;
}

View file

@ -6,7 +6,7 @@
border-radius: 8px;
margin-block: 0;
margin-inline: auto;
max-height: 100%;
max-height: 80vh;
max-width: 360px;
padding: 16px;
position: relative;

View file

@ -34,3 +34,47 @@
}
}
}
.Inbox__logo {
flex-shrink: 0;
display: block;
width: 150px;
height: 150px;
margin-block: 24px;
position: relative;
.Inbox__logo__part {
width: 100%;
height: 100%;
position: absolute;
}
.Inbox__logo__part--base {
@include color-svg('../images/logo-parts/base.svg', $color-white);
z-index: 1;
}
.Inbox__logo__part--segment {
opacity: 0;
z-index: 2;
}
.Inbox__logo__part--animated {
transition:
opacity 250ms,
transform 250ms;
}
@for $i from 1 through 16 {
.Inbox__logo__part--segment:nth-child(#{$i + 1}) {
@include color-svg('../images/logo-parts/p#{$i}.svg', $color-white);
transform: rotate(#{(16 - $i) * 22.5}deg);
}
}
.Inbox__logo__part--segment:nth-child(n).Inbox__logo__part--visible {
transform: rotate(0deg);
opacity: 1;
}
}

View file

@ -76,7 +76,7 @@
height: 280px;
}
&--expandable {
&--textarea {
margin-top: 4px;
}
@ -129,5 +129,9 @@
margin: 12px;
}
&--warn {
color: $color-accent-red;
}
}
}

View file

@ -33,7 +33,7 @@
$size: 256px;
align-items: center;
border: 2px solid transparent;
border: 1.5px solid transparent;
box-sizing: content-box;
display: flex;
flex-direction: column;
@ -51,13 +51,31 @@
&--load-failed {
@include font-subtitle;
border-color: $color-gray-05;
border-radius: 4px;
border-radius: 10px;
color: $color-gray-60;
}
&__link {
@include button-reset;
@include font-body-2-bold;
display: flex;
gap: 4px;
align-items: center;
color: $color-ultramarine;
margin-block-start: 16px;
&::before {
@include color-svg(
'../images/icons/v3/refresh/refresh-bold.svg',
$color-ultramarine
);
content: '';
display: block;
height: 16px;
width: 16px;
}
}
&__code {
@ -69,6 +87,7 @@
&__error-message {
text-align: center;
@include font-body-2;
&::before {
@include color-svg(
@ -78,14 +97,39 @@
content: '';
display: block;
height: 22px;
margin-block: 8px 0;
margin-block: 0 8px;
margin-inline: auto;
width: 22px;
}
a {
color: $color-ultramarine;
text-decoration: none;
margin-inline: 24px;
}
&__error-message p {
margin-block: 0;
}
&__get-help {
@include font-body-2-bold;
display: flex;
gap: 4px;
align-items: center;
margin-block-start: 16px;
color: $color-ultramarine;
text-decoration: none;
&::before {
@include color-svg(
'../images/icons/v3/open/open-compact-bold.svg',
$color-ultramarine
);
content: '';
display: block;
height: 16px;
width: 16px;
}
}
}
@ -101,25 +145,6 @@
// We want the right link color in dark mode. This is a no-op in light mode.
color: $color-ultramarine;
}
&__android-plus {
background: $color-gray-25;
border-radius: 100%;
display: inline-block;
padding: 5px;
vertical-align: middle;
&::before {
@include color-svg(
'../images/icons/v3/plus/plus-compact.svg',
$color-white
);
content: '';
display: block;
height: 12px;
width: 12px;
}
}
}
@keyframes module-InstallScreenQrCodeNotScannedStep__slide-in {

View file

@ -107,6 +107,11 @@
-webkit-mask: url('../images/icons/v3/error/error-triangle.svg') no-repeat
center;
}
&--error {
-webkit-mask: url('../images/icons/v3/error/error-circle.svg') no-repeat
center;
}
}
&__action-text {

View file

@ -0,0 +1,35 @@
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.LocalDeleteWarningModal__width-container {
max-width: 440px;
}
.LocalDeleteWarningModal__image {
margin-block: 18px;
text-align: center;
}
.LocalDeleteWarningModal__header {
@include font-title-2;
margin-block: 18px;
margin-inline: 8px;
text-align: center;
}
.LocalDeleteWarningModal__description {
margin-block: 12px;
margin-inline: 8px;
text-align: center;
}
.LocalDeleteWarningModal__button {
display: flex;
justify-content: center;
margin-top: 49px;
button {
padding-inline: 26px;
}
}

View file

@ -0,0 +1,6 @@
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.MessageRequestActionsConfirmation__ModalHost__width-container {
min-width: 480px;
}

View file

@ -17,7 +17,9 @@
align-items: center;
border-style: solid;
border-width: 1px;
box-shadow: 0 1px 4px $color-black-alpha-05, 0 10px 16px $color-black-alpha-20;
box-shadow:
0 1px 4px $color-black-alpha-05,
0 10px 16px $color-black-alpha-20;
display: inline-flex;
flex-direction: row;
padding-block: 3px;

View file

@ -0,0 +1,224 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
$SafetyTipsModal__paddingInline: 32px;
$SafetyTipsModal__paddingBlock: 24px;
.SafetyTipsModal {
.module-Modal__headerTitle {
align-items: start;
}
.module-Modal__title {
padding-top: 20px;
@include font-title-1;
text-align: center;
}
.module-Modal__body {
padding-inline: 0;
}
.module-Modal__button-footer {
padding-block: $SafetyTipsModal__paddingBlock;
padding-inline: $SafetyTipsModal__paddingInline;
}
}
.SafetyTipsModal__width-container {
max-width: 420px;
width: 95%;
}
.SafetyTipsModal__Description {
margin: 0;
padding-inline: $SafetyTipsModal__paddingInline;
padding-bottom: 24px;
text-align: center;
@include font-body-1;
@include light-theme {
color: $color-gray-60;
}
@include dark-theme {
color: $color-gray-25;
}
}
.SafetyTipsModal__Footer {
display: flex;
gap: 16px;
}
.SafetyTipsModal__Button {
flex: 1;
}
.SafetyTipsModal__Button--Previous {
&,
&:is(:disabled, [aria-disabled='true']) {
@include any-theme {
background: transparent;
}
@include light-theme {
color: $color-accent-blue;
}
@include dark-theme {
color: $color-white;
}
}
&:is(:disabled, [aria-disabled='true']) {
opacity: 0.5;
}
&:not(:disabled):not([aria-disabled='true']) {
&:hover,
&:focus {
@include light-theme {
background: $color-gray-15;
}
@include dark-theme {
background: $color-gray-65;
}
}
&:active {
@include light-theme {
background: $color-gray-20;
}
@include dark-theme {
background: $color-gray-60;
}
}
}
}
.SafetyTipsModal__CardWrapper {
display: flex;
flex-direction: row;
gap: $SafetyTipsModal__paddingInline;
overflow: hidden;
scroll-snap-type: x mandatory;
padding-inline: $SafetyTipsModal__paddingInline;
}
.SafetyTipsModal__Card {
width: 100%;
flex-shrink: 0;
scroll-snap-align: center;
padding-block: 14px 32px;
padding-inline: 12px;
border-radius: 18px;
text-align: center;
@include light-theme {
background: $color-gray-02;
}
@include dark-theme {
background: $color-gray-75;
}
}
.SafetyTipsModal__CardImage {
width: 100%;
height: auto;
vertical-align: top;
border-radius: 12px;
@include light-theme {
background: white;
}
@include dark-theme {
background: $color-gray-65;
}
}
.SafetyTipsModal__CardTitle {
margin-block: 14px 0;
@include font-title-2;
@include light-theme {
color: $color-gray-90;
}
@include dark-theme {
color: $color-gray-05;
}
}
.SafetyTipsModal__CardDescription {
margin-block: 8px 0;
@include font-body-1;
@include light-theme {
color: $color-gray-62;
}
@include dark-theme {
color: $color-gray-20;
}
}
.SafetyTipsModal__Dots {
display: flex;
justify-content: center;
padding-block: 24px 20px;
}
.SafetyTipsModal__DotsButton {
@include button-reset;
padding: 4px;
&::before {
content: '';
display: block;
width: 8px;
height: 8px;
border-radius: 9999px;
transition: background 100ms ease;
@include light-theme {
background: rgba($color-black, 30%);
}
@include dark-theme {
background: rgba($color-white, 30%);
}
}
&:not([aria-current]) {
&:hover,
&:focus {
&::before {
@include light-theme {
background: rgba($color-black, 45%);
}
@include dark-theme {
background: rgba($color-white, 45%);
}
}
}
}
&[aria-current]::before {
@include light-theme {
background: $color-black;
}
@include dark-theme {
background: $color-white;
}
}
&:focus {
@include keyboard-mode {
&::before {
box-shadow:
0 0 0 2px $color-white,
0 0 0 4px $color-accent-blue;
}
}
@include dark-keyboard-mode {
&::before {
box-shadow:
0 0 0 2px $color-gray-80,
0 0 0 4px $color-accent-blue;
}
}
}
}
.SafetyTipsModal__DotsButtonLabel {
@include sr-only;
}

View file

@ -14,7 +14,8 @@
align-items: center;
justify-content: center;
box-shadow: 0px 0px 2px $color-black-alpha-20,
box-shadow:
0px 0px 2px $color-black-alpha-20,
0px 2px 6px $color-black-alpha-12;
@include light-theme {

View file

@ -0,0 +1,33 @@
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
.SpinnerV2 {
animation: SpinnerV2-rotate 2s linear infinite;
}
.SpinnerV2__Path {
stroke: $color-gray-15;
stroke-linecap: round;
animation: SpinnerV2-dash 1.5s ease-in-out infinite;
}
@keyframes SpinnerV2-rotate {
100% {
transform: rotate(360deg);
}
}
@keyframes SpinnerV2-dash {
0% {
stroke-dasharray: 2%, 300%;
stroke-dashoffset: 0;
}
50% {
stroke-dasharray: 180%, 300%;
stroke-dashoffset: -70%;
}
100% {
stroke-dasharray: 180%, 300%;
stroke-dashoffset: -248%;
}
}

View file

@ -43,6 +43,7 @@
&__container {
flex-grow: 1;
overflow: hidden;
outline: none;
}
&__story {

View file

@ -3,13 +3,16 @@
.StoryViewsNRepliesModal {
min-width: 320px;
min-height: min(400px, 80vh);
max-height: 80vh;
&--group {
display: flex;
flex-direction: column;
flex: 1;
min-height: min(400px, 80vh);
.StoryViewsNRepliesModal__content {
display: flex;
flex-direction: column;
flex: 1;
}
}
&__body {
@ -29,6 +32,13 @@
padding-block-start: 16px;
}
// When picking from full emoji set, compensate for for hidden quick picker
&:has(.module-emoji-picker)::before {
content: '';
display: block;
height: 52px;
}
padding-block-end: 16px;
padding-inline: 16px;
}
@ -249,8 +259,9 @@
}
.module-emoji-picker {
bottom: 55px;
position: absolute;
bottom: 55px;
max-height: calc(100vh - 100px);
}
}

View file

@ -166,6 +166,12 @@
@include system-message-icon('../images/icons/v3/refresh/refresh.svg');
}
&--icon-thread::before {
@include system-message-icon(
'../images/icons/v3/thread/thread-compact.svg'
);
}
&--icon-timer::before {
@include system-message-icon(
'../images/icons/v3/timer/timer-compact.svg'
@ -241,6 +247,18 @@
'../images/icons/v3/merge/merge-compact.svg'
);
}
&--icon-thread::before {
@include system-message-icon('../images/icons/v3/thread/thread.svg');
}
&--icon-spam::before {
@include system-message-icon('../images/icons/v3/spam/spam.svg');
}
&--icon-block::before {
@include system-message-icon('../images/icons/v3/block/block.svg');
}
}
&--error {

View file

@ -8,7 +8,9 @@
align-items: stretch;
border-radius: $border-radius-px;
box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.05), 0px 4px 12px rgba(0, 0, 0, 0.3);
box-shadow:
0px 0px 4px rgba(0, 0, 0, 0.05),
0px 4px 12px rgba(0, 0, 0, 0.3);
display: flex;
justify-content: space-between;
user-select: none;
@ -30,7 +32,7 @@
}
.ToastManager--narrow-sidebar & {
min-width: max-content;
width: max-content;
}
.ToastManager--narrow-sidebar.ToastManager--composition-area-visible & {

View file

@ -43,3 +43,7 @@
// Roughly size of composer + a bit of padding
bottom: 40px;
}
.ToastManager--full-screen-call {
bottom: calc($CallControls__height + 32px);
}

View file

@ -22,7 +22,9 @@
width: 2px;
border-radius: 2px;
transition: height 250ms, background 250ms;
transition:
height 250ms,
background 250ms;
&:not(:first-of-type) {
margin-inline-start: 2px;

View file

@ -45,10 +45,15 @@
@import './components/CallControls.scss';
@import './components/CallSettingsButton.scss';
@import './components/CallingLobby.scss';
@import './components/CallingPendingParticipants.scss';
@import './components/CallingPreCallInfo.scss';
@import './components/CallingScreenSharingController.scss';
@import './components/CallingSelectPresentingSourcesModal.scss';
@import './components/CallingToast.scss';
@import './components/CallLinkAddNameModal.scss';
@import './components/CallLinkDetails.scss';
@import './components/CallLinkEditModal.scss';
@import './components/CallLinkRestrictionsSelect.scss';
@import './components/CallingRaisedHandsList.scss';
@import './components/CallingRaisedHandsToasts.scss';
@import './components/CallingReactionsToasts.scss';
@ -87,6 +92,7 @@
@import './components/DisappearingTimerSelect.scss';
@import './components/EditConversationAttributesModal.scss';
@import './components/EditHistoryMessagesModal.scss';
@import './components/EditNicknameAndNoteModal.scss';
@import './components/EditUsernameModalBody.scss';
@import './components/ForwardMessageModal.scss';
@import './components/GradientDial.scss';
@ -110,10 +116,12 @@
@import './components/LeftPaneSearchInput.scss';
@import './components/Lightbox.scss';
@import './components/ListTile.scss';
@import './components/LocalDeleteWarningModal.scss';
@import './components/MediaEditor.scss';
@import './components/MediaQualitySelector.scss';
@import './components/MessageAudio.scss';
@import './components/MessageBody.scss';
@import './components/MessageRequestActionsConfirmation.scss';
@import './components/MessageTextRenderer.scss';
@import './components/MessageDetail.scss';
@import './components/MiniPlayer.scss';
@ -133,6 +141,7 @@
@import './components/SafetyNumberChangeDialog.scss';
@import './components/SafetyNumberOnboarding.scss';
@import './components/SafetyNumberViewer.scss';
@import './components/SafetyTipsModal.scss';
@import './components/ScrollDownButton.scss';
@import './components/SearchInput.scss';
@import './components/SearchResultsLoadingFakeHeader.scss';
@ -143,6 +152,7 @@
@import './components/ShortcutGuide.scss';
@import './components/SignalConnectionsModal.scss';
@import './components/Slider.scss';
@import './components/SpinnerV2.scss';
@import './components/StagedLinkPreview.scss';
@import './components/StickerManager.scss';
@import './components/Stories.scss';

View file

@ -0,0 +1,155 @@
/* Copyright 2013 The Chromium Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file. */
.peer-connection-dump-root {
font-size: 0.8em;
padding-bottom: 3px;
}
.update-log-container {
float: left;
width: 50em;
overflow: auto;
}
.update-log-failure {
background-color: #be2026;
}
.stats-graph-container {
clear: both;
margin: 0.5em 0 0.5em 0;
}
.stats-graph-sub-container {
float: left;
margin: 0.5em;
}
.stats-graph-sub-container > div {
float: left;
}
.stats-graph-sub-container > div:first-child {
float: none;
}
.stats-table-container {
float: left;
padding: 0 0 0 0;
overflow: auto;
}
.stats-table-container >div:first-child {
font-size: 0.8em;
font-weight: bold;
text-align: center;
padding: 0 0 1em 0;
}
.stats-table-active-connection {
font-weight: bold;
}
body {
font-family: 'Lucida Grande', sans-serif;
}
table {
border: none;
margin: 0 1em 1em 0;
}
td {
border: none;
font-size: 0.8em;
padding: 0 1em 0.5em 0;
min-width: 10em;
word-break: break-all;
}
table > tr {
vertical-align: top;
}
th {
border: none;
font-size: 0.8em;
padding: 0 0 0.5em 0;
}
.tab-head {
background-color: rgb(220, 220, 220);
margin: 10px 2px 0 2px;
text-decoration: underline;
cursor: pointer;
display: inline-block;
overflow: hidden;
width: 20em;
height: 3em;
}
.active-tab-head {
background-color: turquoise;
font-weight: bold;
}
.tab-body {
border: 1px solid turquoise;
border-top-width: 3px;
padding: 0 10px 500px 10px;
display: none;
}
.active-tab-body {
display: block;
}
.user-media-request-div-class {
background-color: lightgray;
margin: 10px 0 10px 0;
}
.user-media-request-div-class > div {
margin: 5px 0 5px 0;
}
.dumps-info {
max-width: 60em;
}
details[open] details summary {
background-color: rgb(220, 220, 220);
}
.peerconnection-deprecations {
font-weight: bold;
}
.candidategrid tr {
text-align: center;
word-break: break-word;
}
.candidategrid-active {
font-weight: bold;
}
.candidategrid-candidatepair {
background-color: #ccc;
}
.candidategrid-candidatepair td:first-of-type {
text-align: left;
}
.candidategrid-candidate {
background-color: #ddd;
}
.candidategrid-candidate td:first-of-type {
text-align: right;
}