Signal-Desktop/stylesheets/components/LeftPaneDialog.scss

262 lines
5.0 KiB
SCSS

// Copyright 2021-2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
@keyframes progress-animation {
0% {
background-position: 100%;
}
100% {
background-position: -100%;
}
}
.LeftPaneDialog {
$default-background-color: $color-ultramarine;
$default-text-color: $color-white;
$error-background-color: $color-accent-red;
$error-text-color: $default-text-color;
$warning-background-color: $color-accent-yellow;
$warning-text-color: $color-black;
align-items: center;
background: $default-background-color;
color: $default-text-color;
cursor: inherit;
display: flex;
min-height: 64px;
padding: 12px 18px;
user-select: none;
width: 100%;
.module-left-pane--width-narrow & {
padding-left: 36px;
}
&__retry {
@include button-reset;
@include font-body-1-bold;
}
&--clickable {
cursor: pointer;
}
&__container {
display: flex;
align-items: center;
flex-grow: 1;
}
&__container-close {
display: flex;
justify-content: flex-end;
.module-left-pane--width-narrow & {
display: none;
}
}
&__spinner-container {
margin-right: 18px;
}
&__spinner {
&__arc {
background-color: $color-black;
// Needed for specificity
@include dark-theme {
background-color: $color-black;
}
}
&__circle {
background-color: $color-accent-yellow;
}
}
&__icon {
width: 24px;
height: 24px;
margin-right: 18px;
background-color: $color-white;
-webkit-mask-size: contain;
@media (forced-colors: active) {
background-color: WindowText;
}
&--relink {
-webkit-mask: url('../images/icons/v2/link-broken-16.svg') no-repeat
center;
}
&--network {
-webkit-mask: url('../images/icons/v2/offline-22.svg') no-repeat center;
}
&--update {
-webkit-mask: url('../images/icons/v2/refresh-24.svg') no-repeat center;
}
&--warning {
-webkit-mask: url('../images/icons/v2/warning-outline-24.svg') no-repeat
center;
}
}
&__action-text {
@include button-reset;
text-decoration: none;
}
&__close-button {
@include button-reset;
border-radius: 4px;
float: right;
height: 24px;
width: 24px;
&::before {
-webkit-mask: url('../images/icons/v2/x-24.svg') no-repeat center;
background-color: $color-white;
content: '';
display: block;
width: 100%;
height: 100%;
@media (forced-colors: active) {
background-color: WindowText;
@include dark-theme {
background-color: WindowText;
}
}
}
&:hover,
&:focus {
background-color: $color-white-alpha-20;
}
&:active {
background-color: $color-white-alpha-20;
}
@media (forced-colors: active) {
&:hover,
&:focus,
&:active {
background-color: none;
}
@include dark-theme {
&:hover,
&:focus,
&:active {
background-color: none;
}
}
}
}
&__message {
width: 100%;
.module-left-pane--width-narrow & {
display: none;
}
}
&__message,
&__tooltip {
h3 {
@include font-body-1-bold;
padding: 0px;
margin: 0px;
margin-bottom: 8px;
}
span {
@include font-body-1;
display: inline-block;
}
a {
font-weight: bold;
text-decoration: none;
}
}
&--error {
background-color: $error-background-color;
color: $error-text-color;
}
&--warning {
background-color: $warning-background-color;
color: $warning-text-color;
a {
color: $color-black;
}
.LeftPaneDialog__icon {
background-color: $color-black;
@media (forced-colors: active) {
background-color: WindowText;
}
}
.LeftPaneDialog__close-button::before {
background-color: $color-black;
@media (forced-colors: active) {
background-color: WindowText;
}
}
}
&__progress {
&--container {
background: $color-white-alpha-20;
border-radius: 2px;
height: 4px;
max-width: 210px;
overflow: hidden;
width: 100%;
}
&--bar {
animation: progress-animation 2s linear infinite;
background: linear-gradient(
90deg,
$color-white-alpha-40,
$color-white-alpha-60,
$color-white-alpha-90,
$color-white-alpha-60,
$color-white-alpha-40
);
background-size: 200% 100%;
border-radius: 2px;
display: block;
height: 100%;
transition: width 500ms ease-out;
}
}
&__tooltip {
--tooltip-background-color: #{$default-background-color};
--tooltip-text-color: #{$default-text-color};
min-width: 280px;
text-align: inherit;
&--error {
--tooltip-text-color: #{$error-text-color};
--tooltip-background-color: #{$error-background-color};
}
&--warning {
--tooltip-text-color: #{$warning-text-color};
--tooltip-background-color: #{$warning-background-color};
}
}
}