@import "../../styles/mixins"; @mixin mobile-header-styles() { .AudioPlayer { @include header-mobile; flex-direction: row; margin-top: 0; padding: 0.25rem 0.5rem; &-content { padding: 0 0.5rem; flex-grow: 1; } > .Button, > .playback-rate-menu { margin: -0.0625rem 0 0; } > .player-close { margin-left: auto; } } } .MiddleHeader { display: flex; align-items: center; width: 100%; box-shadow: 0 2px 2px var(--color-light-shadow); background: var(--color-background); position: relative; z-index: var(--z-middle-header); padding-top: 0.5rem; padding-bottom: 0.5rem; padding-left: max(1.5rem, env(safe-area-inset-left)); padding-right: max(0.8125rem, env(safe-area-inset-right)); @media (max-width: 600px) { position: relative; padding-left: max(0.5rem, env(safe-area-inset-left)); padding-right: max(0.5rem, env(safe-area-inset-right)); } // Target: Old Firefox (Waterfox Classic) @supports not (padding-left: max(1.5rem, env(safe-area-inset-left))) { padding-left: 1.5rem; padding-right: 0.8125rem; @media (max-width: 600px) { padding-left: 0.5rem; padding-right: 0.5rem; } } .Transition { width: 100%; // https://dfmcphee.com/flex-items-and-min-width-0/ // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size min-width: 0; > .Transition_slide { display: flex; align-items: center; width: 100%; } } .back-button { margin-left: -0.5rem; margin-right: 0.5rem; position: relative; @media (max-width: 600px) { margin-left: 0; } .unread-count { min-width: 1.25rem; height: 1.25rem; padding: 0 0.375rem; border-radius: 0.625rem; font-size: 0.75rem; line-height: 1.25rem; font-weight: 500; text-align: center; position: absolute; top: -0.25rem; right: -0.5rem; background: var(--color-gray); color: white; pointer-events: none; &.active { background: var(--color-primary); } } } .chat-info-wrapper { flex-grow: 1; overflow: hidden; } .header-tools { display: flex; align-items: center; justify-content: flex-end; margin-left: auto; flex-shrink: 0; body.no-page-transitions & { &, .AudioPlayer, .HeaderActions { transition: none !important; } } body.no-right-column-animations & { &, .HeaderActions { transition: none !important; } } @media (min-width: 1276px) and (max-width: 1439px) { .HeaderActions { transform: translate3d(0, 0, 0); transition: transform var(--layer-transition); #Main.right-column-open & { transform: translate3d(calc(var(--right-column-width) * -1), 0, 0); } } } @media (min-width: 1440px) { transform: translate3d(0, 0, 0); transition: transform var(--layer-transition); #Main.right-column-open & { transform: translate3d(calc(var(--right-column-width) * -1), 0, 0); } } // @optimization #Main.right-column-animating & { pointer-events: none; } } @media (min-width: 1276px) and (max-width: 1439px) { &:not(.tools-stacked) .AudioPlayer { opacity: 1; #Main.right-column-open & { opacity: 0; } } } &.tools-stacked .AudioPlayer { @include mobile-header-styles(); @media (min-width: 1150px) { #Main.right-column-open & { padding-right: calc(0.5rem + var(--right-column-width)); } } } &.tools-stacked.animated .AudioPlayer { animation: fade-in var(--layer-transition) forwards; body.no-page-transitions & { animation: none; } } h3 { font-weight: 500; font-size: 1.125rem; line-height: 1.375rem; white-space: pre; margin: 0; overflow: hidden; text-overflow: ellipsis; unicode-bidi: plaintext; body.is-ios &, body.is-macos & { font-size: 1.0625rem; font-weight: 600; } @media (max-width: 600px) { display: block; overflow: hidden; text-overflow: ellipsis; } @media (min-width: 1275px) { #Main.right-column-open & { max-width: calc(100% - var(--right-column-width)); } } } .ChatInfo { cursor: var(--custom-cursor, pointer); display: flex; align-items: center; @media (max-width: 600px) { user-select: none; } .info { display: flex; flex-direction: column; justify-content: center; flex-grow: 1; overflow: hidden; } .title { --custom-emoji-size: 1.375rem; display: flex; align-items: center; .VerifiedIcon { width: 1.25rem; height: 1.25rem; } } .status, .typing-status { display: inline; unicode-bidi: plaintext; @media (min-width: 1275px) { #Main.right-column-open & { max-width: calc(100% - var(--right-column-width)); } } } .user-status { unicode-bidi: plaintext; overflow: hidden; text-overflow: ellipsis; @media (min-width: 1275px) { #Main.right-column-open & { max-width: calc(100% - var(--right-column-width)); } } } .custom-emoji { color: var(--color-primary); } } .Avatar, .topic-header-icon { // TODO For some reason webpack imports `Audio.scss` second time when loading calls bundle width: 2.5rem !important; height: 2.5rem !important; margin-right: 0.625rem; } .topic-header-icon { --custom-emoji-size: 2.25rem; font-size: 2.25rem; .emoji-small { width: 1.25rem; height: 1.25rem; } .topic-icon-letter { font-size: 1.25rem; } &.general-forum-icon { color: var(--color-text-secondary); } } .Avatar { font-size: 1.0625rem; } .status, .typing-status { font-size: 0.875rem; line-height: 1.125rem; margin: 0; color: var(--color-text-secondary); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: inline-block; .ellipsis { display: inline-flex; } &.online { color: var(--color-primary); } .font-emoji { line-height: 1rem; } } .Button.smaller { width: 2.5rem; height: 2.5rem; } .HeaderActions { flex-shrink: 0; margin-left: auto; display: flex; align-items: center; justify-content: flex-end; .Button { margin-left: 0.25rem; &.tiny { margin-right: 0.625rem; } } .toggle-right-pane-button { &.active { color: var(--color-primary); opacity: 1; } } .badge-button { position: relative; overflow: visible; } .badge { position: absolute; min-width: 1rem; height: 1rem; background: var(--color-primary); border-radius: 0.5rem; color: white; font-size: 0.75rem; line-height: 1rem; font-weight: 500; text-align: center; flex-shrink: 0; right: 0; top: 0; } } @media (max-width: 600px) { @include mobile-header-styles(); } } @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }