652 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			652 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
| /*
 | |
| Copyright 2024 New Vector Ltd.
 | |
| Copyright 2021 The Matrix.org Foundation C.I.C.
 | |
| 
 | |
| SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
 | |
| Please see LICENSE files in the repository root for full details.
 | |
| */
 | |
| 
 | |
| .mx_RoomView_body[data-layout="bubble"] {
 | |
|     .mx_RoomView_timeline,
 | |
|     .mx_RoomView_statusArea,
 | |
|     .mx_MessageComposer {
 | |
|         width: 100%;
 | |
|         max-width: 1200px;
 | |
|         margin: 0 auto;
 | |
|     }
 | |
| }
 | |
| 
 | |
| .mx_EventTile[data-layout="bubble"],
 | |
| .mx_GenericEventListSummary[data-layout="bubble"] {
 | |
|     --avatarSize: 32px;
 | |
|     --gutterSize: 11px;
 | |
|     --cornerRadius: 12px;
 | |
|     --maxWidth: 70%;
 | |
| 
 | |
|     /* For both event tile and event list summary */
 | |
|     --EventTile_bubble-margin-inline-start: 49px;
 | |
|     --EventTile_bubble-margin-inline-end: 60px;
 | |
| 
 | |
|     margin-inline-start: var(--EventTile_bubble-margin-inline-start);
 | |
|     margin-inline-end: var(--EventTile_bubble-margin-inline-end);
 | |
| }
 | |
| 
 | |
| .mx_EventTile[data-layout="bubble"] {
 | |
|     --EventTile_bubble_line-margin-inline-start: -9px;
 | |
|     --EventTile_bubble_line-margin-inline-end: -12px;
 | |
|     --EventTile_bubble_gap-inline: 5px;
 | |
| 
 | |
|     .mx_MessageTimestamp {
 | |
|         width: unset; /* Cancel the default width */
 | |
|         max-width: var(--MessageTimestamp-max-width);
 | |
|     }
 | |
| 
 | |
|     .mx_ThreadSummary {
 | |
|         clear: both;
 | |
|         width: fit-content;
 | |
|     }
 | |
| 
 | |
|     .mx_EventTile_content {
 | |
|         margin-right: 0;
 | |
|     }
 | |
| 
 | |
|     .mx_EventTile_avatar {
 | |
|         line-height: 0;
 | |
|         border: 4px solid $background;
 | |
|         border-radius: 50%;
 | |
|         position: absolute;
 | |
|         top: 6px;
 | |
|         z-index: 9;
 | |
|         img {
 | |
|             box-shadow: 0 0 0 3px $background;
 | |
|             border-radius: 50%;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &.mx_EventTile_highlight {
 | |
|         .mx_EventTile_avatar {
 | |
|             border-color: $event-highlight-bg-color;
 | |
|         }
 | |
|         &::before {
 | |
|             background-color: $event-highlight-bg-color;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &:hover {
 | |
|         .mx_EventTile_avatar {
 | |
|             border-color: $eventbubble-bg-hover;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /* For replies */
 | |
|     .mx_EventTile {
 | |
|         padding-top: 0;
 | |
|     }
 | |
| 
 | |
|     &::before {
 | |
|         content: "";
 | |
|         position: absolute;
 | |
|         top: -1px;
 | |
|         bottom: -1px;
 | |
|         left: calc(-1 * var(--EventTile_bubble-margin-inline-start));
 | |
|         right: calc(-1 * var(--EventTile_bubble-margin-inline-end));
 | |
|         z-index: -1;
 | |
|         border-radius: 4px;
 | |
|     }
 | |
| 
 | |
|     &:hover,
 | |
|     &.mx_EventTile_selected {
 | |
|         &::before {
 | |
|             background: $eventbubble-bg-hover;
 | |
|         }
 | |
| 
 | |
|         .mx_EventTile_avatar {
 | |
|             img {
 | |
|                 box-shadow: 0 0 0 3px $eventbubble-bg-hover;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     .mx_DisambiguatedProfile,
 | |
|     .mx_EventTile_line {
 | |
|         --EventBubbleTile_line-max-width: 70%;
 | |
| 
 | |
|         width: fit-content;
 | |
|         max-width: var(--EventBubbleTile_line-max-width); /* Align message bubble and displayName */
 | |
|         line-height: $font-18px; /* fixed line height to prevent emoji from being taller than text */
 | |
|     }
 | |
| 
 | |
|     /* other users profile on bubble layout */
 | |
|     > .mx_DisambiguatedProfile {
 | |
|         white-space: normal; /* display mxid */
 | |
| 
 | |
|         .mx_DisambiguatedProfile_displayName {
 | |
|             white-space: nowrap; /* truncate long display names */
 | |
|             margin-inline-end: 5px;
 | |
| 
 | |
|             /* For RTL displayName */
 | |
|             unicode-bidi: embed;
 | |
|             direction: ltr;
 | |
|         }
 | |
| 
 | |
|         .mx_DisambiguatedProfile_mxid {
 | |
|             margin-inline-start: 0; /* Align mxid with truncated displayName
 | |
|                 inside mx_EventTile[data-layout="bubble"] */
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /* inside mx_RoomView_MessageList, outside of mx_ReplyTile */
 | |
|     /* (on the main panel and the chat panel with a maximized widget) */
 | |
|     > .mx_DisambiguatedProfile,
 | |
|     /* inside a thread, outside of mx_ReplyTile */
 | |
|     .mx_EventTile_senderDetails > .mx_DisambiguatedProfile {
 | |
|         position: relative;
 | |
|         top: -2px;
 | |
|         left: 2px;
 | |
|         font-size: $font-15px;
 | |
|     }
 | |
| 
 | |
|     .mx_MessageActionBar {
 | |
|         top: -28px;
 | |
|         z-index: 9; /* above the avatar */
 | |
|     }
 | |
| 
 | |
|     .mx_MediaBody {
 | |
|         /* leave space for the timestamp */
 | |
|         padding-right: 48px;
 | |
|     }
 | |
| 
 | |
|     .mx_MImageBody {
 | |
|         .mx_MImageBody_thumbnail_container {
 | |
|             justify-content: center;
 | |
|             min-height: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
 | |
|             min-width: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     .mx_LegacyCallEvent {
 | |
|         background-color: unset;
 | |
| 
 | |
|         border-style: solid;
 | |
|         border-width: 1px;
 | |
|         border-color: $quinary-content;
 | |
|     }
 | |
| 
 | |
|     .mx_EventTile_footer {
 | |
|         margin: var(--cpd-space-1-5x) 0;
 | |
|         margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
 | |
|     }
 | |
| 
 | |
|     &[data-self="false"] {
 | |
|         .mx_EventTile_line {
 | |
|             border-bottom-right-radius: var(--cornerRadius);
 | |
| 
 | |
|             .mx_MImageBody .mx_MImageBody_thumbnail_container,
 | |
|             .mx_MImageBody::before,
 | |
|             .mx_MVideoBody .mx_MVideoBody_container,
 | |
|             .mx_MediaBody,
 | |
|             .mx_MLocationBody_map,
 | |
|             .mx_MBeaconBody {
 | |
|                 border-bottom-right-radius: var(--cornerRadius) !important;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         .mx_EventTile_avatar {
 | |
|             left: -36px;
 | |
|         }
 | |
| 
 | |
|         .mx_MessageActionBar {
 | |
|             inset-inline-start: calc(100% - var(--MessageActionBar-size-box));
 | |
|             right: initial; /* Reset the default value */
 | |
|         }
 | |
| 
 | |
|         .mx_ThreadSummary {
 | |
|             margin-inline-start: calc(-1 * var(--gutterSize));
 | |
|             margin-inline-end: auto;
 | |
|         }
 | |
| 
 | |
|         .mx_ReactionsRow,
 | |
|         .mx_EventTile_footer {
 | |
|             justify-content: flex-start;
 | |
|         }
 | |
| 
 | |
|         --backgroundColor: $eventbubble-others-bg;
 | |
|     }
 | |
| 
 | |
|     &[data-self="true"] {
 | |
|         .mx_EventTile_line {
 | |
|             margin-inline-start: auto;
 | |
|             border-bottom-left-radius: var(--cornerRadius);
 | |
| 
 | |
|             .mx_MImageBody .mx_MImageBody_thumbnail_container,
 | |
|             .mx_MImageBody::before,
 | |
|             .mx_MVideoBody .mx_MVideoBody_container,
 | |
|             .mx_MediaBody,
 | |
|             .mx_MLocationBody_map,
 | |
|             .mx_MBeaconBody {
 | |
|                 border-bottom-left-radius: var(--cornerRadius) !important;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         .mx_EventTile_sticker {
 | |
|             /* align timestamp with those inside bubbles */
 | |
|             margin-right: 32px;
 | |
|         }
 | |
| 
 | |
|         .mx_ThreadSummary {
 | |
|             margin-inline-start: auto;
 | |
|             margin-inline-end: calc(-1 * var(--gutterSize));
 | |
|         }
 | |
| 
 | |
|         .mx_DisambiguatedProfile {
 | |
|             display: none;
 | |
|         }
 | |
| 
 | |
|         .mx_ReplyTile .mx_DisambiguatedProfile {
 | |
|             display: block;
 | |
|             max-width: 100%;
 | |
|         }
 | |
| 
 | |
|         .mx_EventTile_footer {
 | |
|             justify-content: flex-end;
 | |
|         }
 | |
| 
 | |
|         .mx_ReactionsRow {
 | |
|             justify-content: flex-end;
 | |
| 
 | |
|             > :last-child {
 | |
|                 order: -1; /* Moving the "add reaction button" before the reactions */
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         .mx_EventTile_avatar {
 | |
|             top: -19px; /* height of the sender block */
 | |
|             right: -38px;
 | |
|         }
 | |
| 
 | |
|         .mx_MediaBody {
 | |
|             background: $eventbubble-self-bg;
 | |
|         }
 | |
| 
 | |
|         .mx_MessageActionBar {
 | |
|             inset-inline-end: 0;
 | |
|         }
 | |
| 
 | |
|         --backgroundColor: $eventbubble-self-bg;
 | |
|     }
 | |
| 
 | |
|     .mx_EventTile_line {
 | |
|         position: relative;
 | |
|         display: flex;
 | |
|         gap: 5px var(--EventTile_bubble_gap-inline);
 | |
|         margin-block: 0;
 | |
|         margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
 | |
|         border-top-left-radius: var(--cornerRadius);
 | |
|         border-top-right-radius: var(--cornerRadius);
 | |
| 
 | |
|         /* the selector here is quite weird because timestamps can appear linked & unlinked and in different places */
 | |
|         /* in the DOM depending on the specific rendering context */
 | |
|         > a, /* timestamp wrapper anchor */
 | |
|         .mx_MessageActionBar + .mx_MessageTimestamp {
 | |
|             position: absolute;
 | |
|             padding: 4px 8px;
 | |
|             bottom: 0;
 | |
|             right: 0;
 | |
|             z-index: 3; /* above media and location share maps */
 | |
|         }
 | |
| 
 | |
|         &.mx_EventTile_mediaLine {
 | |
|             /* TODO: Use a common class name instead */
 | |
|             .mx_MFileBody,
 | |
|             .mx_MAudioBody {
 | |
|                 max-width: 100%; /* avoid overflow */
 | |
|             }
 | |
| 
 | |
|             .mx_MVoiceMessageBody {
 | |
|                 /* allow the event to be collapsed, this causes the waveform to get cropped */
 | |
|                 min-width: 0;
 | |
|             }
 | |
| 
 | |
|             /* we put the timestamps for media (other than stickers) atop the media */
 | |
|             &.mx_EventTile_image {
 | |
|                 .mx_MessageTimestamp {
 | |
|                     border-radius: var(--MBody-border-radius);
 | |
|                     /* Hardcoded colours because it's the same on all themes */
 | |
|                     background-color: rgba(0, 0, 0, 0.6);
 | |
|                     color: #ffffff;
 | |
|                     padding: 0px 4px 0px 4px;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         &.mx_EventTile_sticker {
 | |
|             > a, /* timestamp wrapper anchor */
 | |
|             .mx_MessageActionBar + .mx_MessageTimestamp {
 | |
|                 /* position timestamps for stickers to the right of the un-bubbled sticker */
 | |
|                 right: unset;
 | |
|                 left: 100%;
 | |
|             }
 | |
| 
 | |
|             .mx_MStickerBody_wrapper {
 | |
|                 padding: 0;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         .mx_MImageBody {
 | |
|             width: 100%;
 | |
|             height: 100%;
 | |
| 
 | |
|             .mx_MImageBody_thumbnail.mx_MImageBody_thumbnail--blurhash {
 | |
|                 position: unset;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /* noinspection CssReplaceWithShorthandSafely */
 | |
|         .mx_MImageBody .mx_MImageBody_thumbnail_container,
 | |
|         .mx_MVideoBody .mx_MVideoBody_container,
 | |
|         .mx_MediaBody {
 | |
|             border-radius: unset;
 | |
|             border-top-left-radius: var(--cornerRadius);
 | |
|             border-top-right-radius: var(--cornerRadius);
 | |
|         }
 | |
| 
 | |
|         .mx_EventTile_e2eIcon {
 | |
|             flex-shrink: 0; /* keep it at full size */
 | |
| 
 | |
|             /* Keep height equal to text for shield alignment, additional 2px because of 1px padding on text */
 | |
|             height: calc($font-18px + 2px);
 | |
|         }
 | |
| 
 | |
|         .mx_MPollEndBody {
 | |
|             /* Prevent the poll end body from exceeding the tile width */
 | |
|             width: 100%;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &:not(.mx_EventTile_noBubble) .mx_EventTile_line:not(.mx_EventTile_mediaLine) {
 | |
|         /* make the top and bottom padding 1px smaller so that we can pad
 | |
|             .mx_EventTile_content by 1px */
 | |
|         /* to avoid anti-zalgo cutting off our larger than text emojis. */
 | |
|         padding: calc(var(--gutterSize) - 1px);
 | |
|         padding-right: 60px; /* space for the timestamp */
 | |
|         background: var(--backgroundColor);
 | |
| 
 | |
|         .mx_EventTile_content {
 | |
|             padding: 1px;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &.mx_EventTile_continuation[data-self="false"] .mx_EventTile_line {
 | |
|         border-top-left-radius: 0;
 | |
| 
 | |
|         .mx_MImageBody .mx_MImageBody_thumbnail_container,
 | |
|         .mx_MVideoBody .mx_MVideoBody_container,
 | |
|         .mx_MImageBody::before,
 | |
|         .mx_MediaBody,
 | |
|         .mx_MLocationBody_map,
 | |
|         .mx_MBeaconBody {
 | |
|             border-top-left-radius: 0;
 | |
|         }
 | |
|     }
 | |
|     &.mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line {
 | |
|         border-bottom-left-radius: var(--cornerRadius);
 | |
| 
 | |
|         .mx_MImageBody .mx_MImageBody_thumbnail_container,
 | |
|         .mx_MVideoBody .mx_MVideoBody_container,
 | |
|         .mx_MImageBody::before,
 | |
|         .mx_MediaBody,
 | |
|         .mx_MLocationBody_map,
 | |
|         .mx_MBeaconBody {
 | |
|             border-bottom-left-radius: var(--cornerRadius);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &.mx_EventTile_continuation[data-self="true"] .mx_EventTile_line {
 | |
|         border-top-right-radius: 0;
 | |
| 
 | |
|         .mx_MImageBody .mx_MImageBody_thumbnail_container,
 | |
|         .mx_MVideoBody .mx_MVideoBody_container,
 | |
|         .mx_MImageBody::before,
 | |
|         .mx_MediaBody,
 | |
|         .mx_MLocationBody_map,
 | |
|         .mx_MBeaconBody {
 | |
|             border-top-right-radius: 0;
 | |
|         }
 | |
|     }
 | |
|     &.mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line {
 | |
|         border-bottom-right-radius: var(--cornerRadius);
 | |
| 
 | |
|         .mx_MImageBody .mx_MImageBody_thumbnail_container,
 | |
|         .mx_MVideoBody .mx_MVideoBody_container,
 | |
|         .mx_MImageBody::before,
 | |
|         .mx_MediaBody,
 | |
|         .mx_MLocationBody_map,
 | |
|         .mx_MBeaconBody {
 | |
|             border-bottom-right-radius: var(--cornerRadius);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &.mx_EventTile_noSender {
 | |
|         .mx_EventTile_avatar {
 | |
|             top: -19px;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &[data-has-reply="true"] {
 | |
|         > .mx_EventTile_line {
 | |
|             flex-direction: column;
 | |
|         }
 | |
| 
 | |
|         .mx_ReplyChain {
 | |
|             .mx_EventTile_reply {
 | |
|                 max-width: 90%;
 | |
|                 padding: 0;
 | |
|                 > a, /* timestamp wrapper anchor */
 | |
|                 .mx_MessageActionBar + .mx_MessageTimestamp {
 | |
|                     display: none !important;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             .mx_EventTile {
 | |
|                 display: flex;
 | |
|                 gap: var(--gutterSize);
 | |
|                 .mx_EventTile_avatar {
 | |
|                     position: static;
 | |
|                 }
 | |
|                 .mx_DisambiguatedProfile {
 | |
|                     display: none;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     .mx_MPollBody {
 | |
|         width: 550px; /* to prevent timestamp overlapping summary text */
 | |
|         max-width: 100%; /* prevent overflowing a reply tile */
 | |
| 
 | |
|         .mx_MPollBody_totalVotes {
 | |
|             /* align summary text with corner timestamp */
 | |
|             padding: 4px 0;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     &.mx_EventTile_bad {
 | |
|         &:hover {
 | |
|             &::before {
 | |
|                 background: transparent;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /* Special layout scenario for "Unable To Decrypt (UTD)" events */
 | |
|         .mx_EventTile_line {
 | |
|             display: grid;
 | |
|             grid-template:
 | |
|                 "reply reply" auto
 | |
|                 "shield body" auto
 | |
|                 / auto 1fr;
 | |
| 
 | |
|             .mx_UnknownBody,
 | |
|             .mx_ReplyChain_wrapper,
 | |
|             .mx_ViewSourceEvent {
 | |
|                 min-width: 0; /* Prevent a grid blowout */
 | |
|             }
 | |
| 
 | |
|             .mx_EventTile_e2eIcon {
 | |
|                 grid-area: shield;
 | |
|                 margin-top: auto;
 | |
|                 margin-bottom: auto;
 | |
|             }
 | |
| 
 | |
|             .mx_UnknownBody,
 | |
|             .mx_DecryptionFailureBody {
 | |
|                 grid-area: body;
 | |
|             }
 | |
| 
 | |
|             .mx_ReplyChain_wrapper {
 | |
|                 grid-area: reply;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         &.mx_EventTile_info {
 | |
|             /* "Unable To Decrypt" layout for hidden events */
 | |
|             .mx_EventTile_line {
 | |
|                 gap: 0 9px; /* 9px: margin value of E2E icon */
 | |
|                 align-items: center;
 | |
|                 grid-template:
 | |
|                     "shield source" auto
 | |
|                     / auto 1fr;
 | |
| 
 | |
|                 .mx_ViewSourceEvent {
 | |
|                     grid-area: source;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     .mx_MTextBody {
 | |
|         max-width: 100%;
 | |
|     }
 | |
| 
 | |
|     .mx_LegacyCallEvent_wrapper,
 | |
|     .mx_CallEvent_wrapper {
 | |
|         justify-content: center;
 | |
|     }
 | |
| }
 | |
| 
 | |
| .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] {
 | |
|     --backgroundColor: transparent;
 | |
| 
 | |
|     .mx_EventTile_line.mx_EventTile_emote {
 | |
|         padding-right: 60px; /* align with bubbles text */
 | |
|         font-style: italic;
 | |
| 
 | |
|         > a {
 | |
|             /* timestamp anchor wrapper */
 | |
|             align-self: center;
 | |
|             bottom: unset;
 | |
|             top: unset;
 | |
|             font-style: normal; /* undo italic above */
 | |
|         }
 | |
| 
 | |
|         .mx_MEmoteBody {
 | |
|             padding: 4px 0;
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
 | |
| .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] {
 | |
|     .mx_EventTile_line > a {
 | |
|         /* hide this timestamp as the tile will render its own */
 | |
|         display: none;
 | |
|     }
 | |
| }
 | |
| 
 | |
| .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
 | |
| .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
 | |
| .mx_EventTile.mx_EventTile_info[data-layout="bubble"] {
 | |
|     padding: 5px 0;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
|     justify-content: flex-start;
 | |
| 
 | |
|     .mx_EventTile_line,
 | |
|     .mx_EventTile_info {
 | |
|         min-width: 100%;
 | |
|         /* Preserve alignment with left edge of text in bubbles */
 | |
|         margin: 0;
 | |
|     }
 | |
| }
 | |
| 
 | |
| .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
 | |
| .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
 | |
| .mx_EventTile.mx_EventTile_info[data-layout="bubble"],
 | |
| .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] {
 | |
|     --backgroundColor: transparent;
 | |
|     --gutterSize: 0;
 | |
| 
 | |
|     .mx_EventTile_avatar {
 | |
|         position: static;
 | |
|         order: -1;
 | |
|         margin-inline-end: var(--EventTile_bubble_gap-inline); /* Same spacing between E2E icon and a hidden event */
 | |
|     }
 | |
| 
 | |
|     .mx_EventTile_e2eIcon {
 | |
|         margin-inline-start: 0; /* mx_EventTile_avatar has margin-inline-end, so margin is not needed here */
 | |
|         align-self: center;
 | |
|     }
 | |
| 
 | |
|     .mx_EventTile_line {
 | |
|         > a, /* timestamp wrapper anchor */
 | |
|         .mx_MessageActionBar + .mx_MessageTimestamp {
 | |
|             right: auto;
 | |
|             left: -77px;
 | |
|             bottom: unset;
 | |
|             align-self: center;
 | |
| 
 | |
|             .mx_MessageTimestamp,
 | |
|             &.mx_MessageTimestamp {
 | |
|                 vertical-align: middle;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| .mx_GenericEventListSummary[data-layout="bubble"] {
 | |
|     .mx_EventTile.mx_EventTile_info .mx_EventTile_line {
 | |
|         /* Avoid overflow of event info by cancelling width settings */
 | |
|         width: 100%;
 | |
|         min-width: 0;
 | |
|         max-width: 100%;
 | |
|     }
 | |
| 
 | |
|     /* increase margin between ELS and the next Event to not have our user avatar overlap the expand/collapse button */
 | |
|     &[data-expanded="false"] + .mx_EventTile[data-layout="bubble"][data-self="true"] {
 | |
|         margin-top: 20px;
 | |
|     }
 | |
| 
 | |
|     &[data-expanded="true"] .mx_EventTile_info {
 | |
|         padding: 2px 0;
 | |
|         margin-right: 0;
 | |
| 
 | |
|         .mx_MessageActionBar {
 | |
|             /* Reset .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_MessageActionBar */
 | |
|             inset-inline-start: initial;
 | |
|             inset-inline-end: 48px; /* align with that of right-column bubbles */
 | |
|         }
 | |
| 
 | |
|         .mx_ReadReceiptGroup {
 | |
|             /* match alignment to RRs of chat bubbles */
 | |
|             inset-inline-end: calc(-1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + 60px);
 | |
|         }
 | |
| 
 | |
|         &::before {
 | |
|             inset-inline-end: 0; /* match alignment of the hover background to that of chat bubbles */
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| .mx_EventTile_tileError[data-layout="bubble"] .mx_EventTile_line {
 | |
|     flex-direction: column; /* restore the centering */
 | |
| }
 |