// Copyright 2021 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-block: 12px; padding-inline: 16px 14px; user-select: none; width: 100%; font-size: 13px; line-height: 18px; letter-spacing: -0.0025em; font-weight: 400; .module-left-pane--width-narrow & { padding-inline-start: 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-inline-end: 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-inline-end: 18px; background-color: $color-white; -webkit-mask-size: contain; @media (forced-colors: active) { background-color: WindowText; } &--relink { -webkit-mask: url('../images/icons/v3/link/link-slash.svg') no-repeat center; } &--network { -webkit-mask: url('../images/icons/v3/wifi/wifi-error.svg') no-repeat center; } &--update { -webkit-mask: url('../images/icons/v3/refresh/refresh.svg') no-repeat center; } &--warning { -webkit-mask: url('../images/icons/v3/error/error-triangle.svg') no-repeat center; } } &__action-text { @include button-reset; text-decoration: none; color: $color-white-alpha-80; } &__close-button { @include button-reset; border-radius: 4px; float: inline-end; height: 20px; width: 20px; &::before { -webkit-mask: url('../images/icons/v3/x/x.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 { max-width: 250px; h3 { @include font-body-1-bold; padding: 0px; margin: 0px; } 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; a { color: $error-text-color; } .LeftPaneDialog__action-text { 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; } } .LeftPaneDialog__action-text { color: $warning-text-color; } } &__progress { &--container { background: $color-white-alpha-20; border-radius: 2px; height: 4px; max-width: 210px; overflow: hidden; width: 100%; margin-block: 10px 6px; margin-inline: 0; } &--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%; width: 100%; &:dir(ltr) { /* stylelint-disable-next-line declaration-property-value-disallowed-list */ transform: translateX(-100%); } &:dir(rtl) { /* stylelint-disable-next-line declaration-property-value-disallowed-list */ transform: translateX(100%); } transition: transform 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}; a { color: #{$error-text-color}; } } &--warning { --tooltip-text-color: #{$warning-text-color}; --tooltip-background-color: #{$warning-background-color}; } } }