// Copyright 2021 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only .module-ConversationHeader { @mixin icon-element($icon, $margin-right: 4px) { display: flex; align-items: center; user-select: none; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; &::before { content: ''; width: 13px; height: 13px; display: block; margin-right: $margin-right; @include light-theme { @include color-svg($icon, $color-gray-60); } @include dark-theme { @include color-svg($icon, $color-gray-25); } } } --button-spacing: 24px; &.module-ConversationHeader--narrow { --button-spacing: 16px; } -webkit-app-region: var(--draggable-app-region); padding-top: var(--title-bar-drag-area-height); display: flex; flex-direction: row; align-items: center; height: calc(#{$header-height} + var(--title-bar-drag-area-height)); @include light-theme { color: $color-gray-90; background-color: $color-white; } @include dark-theme { color: $color-gray-02; background-color: $color-gray-95; } &__back-icon { $transition: 250ms ease-out; display: inline-block; width: 24px; height: 24px; min-width: 24px; margin-left: -24px; vertical-align: text-bottom; border: none; opacity: 0; transition: margin-left $transition, opacity $transition; &:disabled { cursor: default; } &--show { opacity: 1; margin-right: 6px; margin-left: 12px; } @include light-theme { @include color-svg( '../images/icons/v2/chevron-left-24.svg', $color-gray-90 ); } @include dark-theme { @include color-svg( '../images/icons/v2/chevron-left-24.svg', $color-gray-02 ); } @include keyboard-mode { &:focus { background-color: $color-ultramarine; } } @include dark-keyboard-mode { &:focus { background-color: $color-ultramarine-light; } } } &__header { $padding: 4px 12px; align-items: center; display: flex; flex-direction: row; flex-grow: 1; margin-left: 4px; margin-right: var(--button-spacing); padding: $padding; overflow: hidden; min-width: 0; transition: margin-right 200ms ease-out; &--clickable { @include button-reset; border-radius: 4px; -webkit-app-region: no-drag; // These are clobbered by button-reset: margin-left: 4px; margin-right: var(--button-spacing); padding: $padding; @include keyboard-mode { &:focus { color: $color-ultramarine; } } @include dark-keyboard-mode { &:focus { color: $color-ultramarine-light; } } } &__avatar { min-width: 32px; margin-right: 12px; padding-top: 4px; padding-bottom: 4px; } &__info { display: flex; flex-direction: column; min-width: 0; &__title { @include font-body-1-bold; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; user-select: none; &__in-contacts-icon { margin-left: 4px; } } &__subtitle { display: flex; @include font-body-2; @include light-theme { color: $color-gray-60; } @include dark-theme { color: $color-gray-25; } &__expiration { @include icon-element('../images/icons/v2/timer-outline-24.svg'); margin-right: 12px; } &__verified { @include icon-element('../images/icons/v2/check-24.svg'); } } } } &__button { $icon-size: 32px; -webkit-app-region: no-drag; @include button-reset; align-items: stretch; border-radius: 4px; border: 2px solid transparent; display: flex; height: $icon-size; margin-right: var(--button-spacing); min-width: $icon-size; opacity: 0; padding: 2px; transition: margin-right 200ms ease-out, opacity 200ms ease-out, background 100ms ease-out; width: $icon-size; &:disabled { cursor: default; } &--show { opacity: 1; } &--show-disabled { opacity: 0.5; } @include light-theme { &:hover, &:focus { background: $color-gray-02; } &:active { background: $color-gray-05; } } @include dark-theme { &:hover, &:focus { background: $color-gray-80; } &:active { background: $color-gray-75; } } @include keyboard-mode { &:focus { border-color: $color-ultramarine; } } @include dark-keyboard-mode { &:focus { border-color: $color-ultramarine-light; } } @mixin normal-button($light-icon, $dark-icon) { &::before { content: ''; display: block; flex-grow: 1; @include light-theme { @include color-svg($light-icon, $color-gray-75); &:hover, &:active, &:focus { @include color-svg($light-icon, $color-gray-90); } } @include dark-theme { @include color-svg($dark-icon, $color-gray-15); &:hover, &:active, &:focus { @include color-svg($dark-icon, $color-gray-02); } } } } &--video { @include normal-button( '../images/icons/v2/video-outline-24.svg', '../images/icons/v2/video-solid-24.svg' ); } &--audio { @include normal-button( '../images/icons/v2/phone-right-outline-24.svg', '../images/icons/v2/phone-right-solid-24.svg' ); } &--search { @include normal-button( '../images/icons/v2/search-24.svg', '../images/icons/v2/search-24.svg' ); } &--more { @include normal-button( '../images/icons/v2/chevron-down-24.svg', '../images/icons/v2/chevron-down-24.svg' ); } &--join-call { $background: $color-accent-green; @include font-body-1; @include rounded-corners; align-items: center; background-color: $background; color: $color-white; display: flex; outline: none; overflow: hidden; padding: 5px 18px; text-overflow: ellipsis; white-space: nowrap; user-select: none; width: auto; &:before { $icon-size: 24px; @include color-svg( '../images/icons/v2/video-solid-24.svg', $color-white ); content: ''; display: block; height: $icon-size; margin-right: 5px; min-width: $icon-size; width: $icon-size; } // Override hover state coming from __button above. &:hover, &:focus { background-color: darken($background, 16%); } } } &__disappearing-timer__item { padding-left: 25px; &--active { padding-left: 0px; @include icon-element('../images/icons/v2/check-24.svg', 12px); } } }