480 lines
9.3 KiB
SCSS
480 lines
9.3 KiB
SCSS
@use "../../../styles/mixins";
|
|
|
|
.Chat {
|
|
--background-color: var(--color-background);
|
|
--thumbs-background: var(--background-color);
|
|
|
|
--z-forum-indicator: 2;
|
|
--z-badge: 4;
|
|
--z-status: 8; // Avatar stories require a higher z-index than the ripple to work
|
|
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
|
|
width: 100%;
|
|
margin: 0;
|
|
|
|
-webkit-touch-callout: none;
|
|
|
|
body.is-ios &,
|
|
body.is-macos & {
|
|
--color-text-meta: var(--color-text-meta-apple);
|
|
}
|
|
|
|
&.standalone {
|
|
position: static;
|
|
|
|
.LastMessageMeta {
|
|
margin-inline-end: 0;
|
|
}
|
|
}
|
|
|
|
&.animate-opacity {
|
|
will-change: opacity;
|
|
transition: opacity 0.2s ease-out;
|
|
}
|
|
|
|
&.animate-transform {
|
|
will-change: transform;
|
|
transition: transform 0.2s ease-out;
|
|
}
|
|
|
|
&:hover,
|
|
&.ListItem.has-menu-open {
|
|
.avatar-badge {
|
|
--_color-outline: var(--color-chat-hover);
|
|
}
|
|
|
|
.avatar-badge-wrapper {
|
|
--outline-color: var(--color-chat-hover);
|
|
}
|
|
|
|
.ChatCallStatus {
|
|
border-color: var(--color-chat-hover);
|
|
}
|
|
}
|
|
|
|
&:not(.standalone):last-of-type {
|
|
border-bottom: 0.5rem solid transparent; // `margin` does not help, and `padding` affects forum indicator height
|
|
}
|
|
|
|
&.selected-forum {
|
|
&::before {
|
|
transform: translateX(0) scaleY(1) !important;
|
|
}
|
|
}
|
|
|
|
body.is-ios &,
|
|
body.is-android & {
|
|
.ListItem-button {
|
|
border-radius: 0 !important;
|
|
}
|
|
}
|
|
|
|
&.forum {
|
|
--color-chat-username: var(--color-text);
|
|
|
|
&::before {
|
|
content: '';
|
|
|
|
position: absolute;
|
|
z-index: var(--z-forum-indicator);
|
|
top: 0.625rem;
|
|
bottom: 0.625rem;
|
|
left: -0.4375rem; // `.chat-list` left padding
|
|
transform: translateX(-0.375rem) scaleY(0.5);
|
|
|
|
width: 0.3125rem;
|
|
border-start-end-radius: var(--border-radius-default);
|
|
border-end-end-radius: var(--border-radius-default);
|
|
|
|
background: var(--color-primary);
|
|
|
|
transition: transform var(--layer-transition);
|
|
|
|
body.no-page-transitions & {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
.ListItem-button {
|
|
padding-top: 0.3125rem;
|
|
padding-bottom: 0.3125rem;
|
|
}
|
|
|
|
.title {
|
|
line-height: 1.375rem;
|
|
}
|
|
|
|
.status {
|
|
background-color: var(--background-color);
|
|
}
|
|
|
|
@media (max-width: 600px) {
|
|
&::before {
|
|
left: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
.ripple-container {
|
|
z-index: var(--z-chat-ripple);
|
|
}
|
|
|
|
.status {
|
|
position: relative;
|
|
z-index: var(--z-status);
|
|
|
|
overflow: visible !important;
|
|
display: flex;
|
|
align-items: center;
|
|
align-self: stretch;
|
|
}
|
|
|
|
.avatar-badge-wrapper {
|
|
|
|
--outline-color: var(--color-background);
|
|
|
|
position: absolute;
|
|
z-index: var(--z-badge);
|
|
right: 0.5rem;
|
|
bottom: 0;
|
|
|
|
.ChatBadge {
|
|
box-shadow: 0 0 0 2px var(--outline-color);
|
|
}
|
|
|
|
.ChatBadge-transition {
|
|
position: relative;
|
|
transition: opacity var(--layer-transition), transform var(--layer-transition);
|
|
|
|
body.no-page-transitions & {
|
|
transition: opacity var(--layer-transition);
|
|
}
|
|
}
|
|
}
|
|
|
|
.avatar-badge {
|
|
--_color-outline: var(--color-background);
|
|
|
|
position: absolute;
|
|
right: 0.0625rem;
|
|
bottom: 0.0625rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.avatar-subscription {
|
|
font-size: 0.875rem;
|
|
|
|
@include mixins.filter-outline(1px, var(--_color-outline));
|
|
}
|
|
|
|
.avatar-online {
|
|
transform: scale(0);
|
|
|
|
width: 0.875rem;
|
|
height: 0.875rem;
|
|
border: 2px solid var(--_color-outline);
|
|
border-radius: 50%;
|
|
|
|
opacity: 0.5;
|
|
background-color: #0ac630;
|
|
|
|
transition: opacity 200ms, transform 200ms;
|
|
|
|
&.avatar-online-shown {
|
|
transform: scale(1);
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.info {
|
|
transition: opacity 300ms ease, transform var(--layer-transition);
|
|
|
|
body.no-page-transitions & {
|
|
transition: opacity 300ms ease;
|
|
}
|
|
|
|
.title .custom-emoji {
|
|
color: var(--color-primary);
|
|
}
|
|
|
|
.icon-muted {
|
|
margin-left: 0.25rem;
|
|
font-size: 1.125rem;
|
|
color: var(--color-list-icon);
|
|
|
|
body.is-ios & {
|
|
margin-top: 0;
|
|
margin-right: 0.5rem;
|
|
}
|
|
}
|
|
|
|
.general-forum-icon {
|
|
font-size: 1.25rem;
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.LastMessageMeta {
|
|
body.is-ios & {
|
|
margin-right: 0;
|
|
font-size: 0.875rem;
|
|
}
|
|
}
|
|
|
|
.last-message,
|
|
.typing-status {
|
|
unicode-bidi: plaintext;
|
|
flex-grow: 1;
|
|
padding-right: 0.25rem;
|
|
color: var(--color-text-secondary);
|
|
|
|
&[dir="ltr"] {
|
|
text-align: left;
|
|
}
|
|
|
|
.sender-name {
|
|
color: var(--color-chat-username);
|
|
|
|
body.is-macos &,
|
|
body.is-ios & {
|
|
color: var(--color-text);
|
|
}
|
|
}
|
|
|
|
.draft {
|
|
color: var(--color-error);
|
|
}
|
|
}
|
|
|
|
.last-message {
|
|
overflow: hidden;
|
|
display: flex;
|
|
&-summary {
|
|
overflow: hidden;
|
|
flex: unset;
|
|
|
|
max-width: none;
|
|
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
.draft {
|
|
&::after {
|
|
content: ": ";
|
|
}
|
|
}
|
|
|
|
.colon, .chat-prefix-icon {
|
|
margin-inline-end: 0.1875rem;
|
|
}
|
|
|
|
.chat-prefix-icon {
|
|
transform: translateY(1px);
|
|
display: inline-block;
|
|
font-size: 0.875rem;
|
|
color: var(--color-list-icon);
|
|
}
|
|
|
|
.media-preview-spoiler {
|
|
filter: blur(1px);
|
|
}
|
|
|
|
.media-preview--image {
|
|
flex-shrink: 0;
|
|
|
|
width: 1.25rem;
|
|
height: 1.25rem;
|
|
margin-inline-start: 0.125rem;
|
|
margin-inline-end: 0.25rem;
|
|
border-radius: 0.125rem;
|
|
|
|
vertical-align: -0.25rem;
|
|
|
|
object-fit: cover;
|
|
|
|
body.is-ios & {
|
|
width: 1.125rem;
|
|
height: 1.125rem;
|
|
vertical-align: -0.1875rem;
|
|
}
|
|
|
|
&.round {
|
|
border-radius: 0.625rem;
|
|
}
|
|
}
|
|
|
|
.emoji-small {
|
|
width: 1rem;
|
|
height: 1rem;
|
|
vertical-align: -0.125rem;
|
|
}
|
|
|
|
.icon-play {
|
|
position: relative;
|
|
bottom: 0.0625rem;
|
|
|
|
display: inline-block;
|
|
|
|
margin-inline-start: -1.25rem;
|
|
margin-inline-end: 0.5rem;
|
|
|
|
font-size: 0.75rem;
|
|
color: #fff;
|
|
|
|
body.is-ios & {
|
|
bottom: 0;
|
|
margin-inline-start: -1.125rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
.star-amount-icon {
|
|
margin-inline: 0;
|
|
line-height: initial;
|
|
vertical-align: text-top;
|
|
}
|
|
|
|
&.has-tags {
|
|
line-height: 1.25rem;
|
|
.info-row {
|
|
height: 1.25rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
&[dir="rtl"] {
|
|
.info {
|
|
.LastMessageMeta {
|
|
margin-right: auto;
|
|
margin-left: 0;
|
|
}
|
|
|
|
.title,
|
|
.subtitle {
|
|
padding-right: 0;
|
|
padding-left: 0.125rem;
|
|
}
|
|
|
|
.icon-muted {
|
|
margin-right: 0.25rem;
|
|
margin-left: 0;
|
|
}
|
|
|
|
.last-message,
|
|
.typing-status {
|
|
unicode-bidi: plaintext;
|
|
padding-right: 0;
|
|
padding-left: 0.5rem;
|
|
text-align: right;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Super specific selector to override the same in `ListItem`
|
|
@media (min-width: 600px) {
|
|
&:not(.has-ripple):not(.is-static),
|
|
body.no-page-transitions & {
|
|
.ListItem-button:active {
|
|
--background-color: var(--color-chat-hover) !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
@media (max-width: 600px) {
|
|
&.selected {
|
|
--background-color: var(--color-chat-hover) !important;
|
|
|
|
.avatar-badge {
|
|
--_color-outline: var(--color-chat-hover);
|
|
}
|
|
|
|
.ChatCallStatus {
|
|
border-color: var(--color-chat-hover);
|
|
}
|
|
}
|
|
}
|
|
|
|
@media (min-width: 600px) {
|
|
&.selected:not(.forum),
|
|
&.selected:not(.forum):hover {
|
|
--background-color: var(--color-chat-active) !important;
|
|
|
|
.title .custom-emoji {
|
|
color: var(--color-white);
|
|
}
|
|
|
|
.VerifiedIcon, .StarIcon {
|
|
--color-fill: #fff;
|
|
--color-checkmark: var(--color-primary);
|
|
}
|
|
|
|
.avatar-badge {
|
|
--_color-outline: var(--color-chat-active) !important;
|
|
}
|
|
|
|
.avatar-online {
|
|
background-color: var(--color-white);
|
|
}
|
|
|
|
.ChatCallStatus {
|
|
border-color: var(--color-chat-active) !important;
|
|
}
|
|
|
|
.ListItem-button {
|
|
--background-color: var(--color-chat-active) !important;
|
|
--color-text: var(--color-white);
|
|
--color-text-meta-colored: var(--color-white);
|
|
--color-text-meta: var(--color-white);
|
|
--color-text-secondary: var(--color-white);
|
|
--color-error: var(--color-white);
|
|
--color-list-icon: var(--color-white);
|
|
--color-chat-username: var(--color-white);
|
|
}
|
|
|
|
.icon-muted {
|
|
color: var(--color-white) !important;
|
|
}
|
|
|
|
.general-forum-icon {
|
|
color: var(--color-white) !important;
|
|
}
|
|
|
|
.ChatBadge:not(.pinned):not(.muted) {
|
|
color: var(--color-chat-active);
|
|
background: var(--color-white);
|
|
}
|
|
|
|
.ChatBadge:not(.pinned).muted {
|
|
color: var(--color-white);
|
|
background: #FFFFFF33;
|
|
}
|
|
|
|
.avatar-badge-wrapper .ChatBadge:not(.pinned) {
|
|
--outline-color: transparent;
|
|
}
|
|
|
|
.avatar-badge-wrapper .ChatBadge:not(.pinned).muted {
|
|
background: var(--color-gray);
|
|
}
|
|
|
|
.monoforum-badge {
|
|
color: var(--color-chat-active);
|
|
background-color: #fff;
|
|
}
|
|
|
|
.ChatTags {
|
|
color: var(--color-chat-active);
|
|
background-color: #fff;
|
|
}
|
|
}
|
|
}
|
|
|
|
@media (max-width: 600px) {
|
|
.ListItem-button {
|
|
border-radius: 0 !important;
|
|
}
|
|
}
|
|
}
|