refactor progress
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
@media (hover: hover) {
|
||||
.deleteButton:hover {
|
||||
background-color: var(--status-danger);
|
||||
color: white;
|
||||
color: var(--text-on-brand-primary);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
border: 1px solid var(--background-modifier-accent);
|
||||
background-color: var(--background-secondary);
|
||||
padding: 0.75rem;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.iconContainer {
|
||||
@@ -114,8 +113,8 @@
|
||||
flex-shrink: 0;
|
||||
border-radius: 8px;
|
||||
background-color: var(--brand-primary);
|
||||
color: white;
|
||||
transition: background-color 150ms ease;
|
||||
color: var(--text-on-brand-primary);
|
||||
transition: background-color 0.1s ease;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@@ -148,3 +147,147 @@
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
.textualPreview {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
border-radius: var(--radius-md);
|
||||
background-color: var(--background-secondary);
|
||||
border: 1px solid var(--border-color);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.previewContent {
|
||||
position: relative;
|
||||
background-color: var(--bg-code-block);
|
||||
min-height: 5rem;
|
||||
}
|
||||
|
||||
.previewContentInner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
padding: 0.75rem;
|
||||
}
|
||||
|
||||
.previewContentLoading {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 6rem;
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.codeBlock {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.75rem;
|
||||
line-height: 1rem;
|
||||
white-space: pre;
|
||||
color: var(--text-code);
|
||||
overflow-x: auto;
|
||||
scrollbar-width: thin;
|
||||
}
|
||||
|
||||
.wrapMode {
|
||||
white-space: pre-wrap !important;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.previewTruncationNote {
|
||||
color: var(--text-tertiary);
|
||||
font-size: 0.75rem;
|
||||
line-height: 1rem;
|
||||
font-family: var(--font-mono);
|
||||
}
|
||||
|
||||
.previewFooter {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 0.75rem;
|
||||
padding: 0.5rem 0.75rem;
|
||||
background-color: var(--background-secondary);
|
||||
border-top: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.previewFooterLeft {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.15rem;
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.previewFilename {
|
||||
font-size: 0.875rem;
|
||||
font-weight: 500;
|
||||
color: var(--text-primary);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.previewFileSize {
|
||||
font-size: 0.75rem;
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.previewControls {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.25rem;
|
||||
}
|
||||
|
||||
.previewControlButton {
|
||||
border: none;
|
||||
background: transparent;
|
||||
color: var(--text-secondary);
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
border-radius: 4px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
transition:
|
||||
background-color 0.1s ease,
|
||||
color 0.1s ease;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
.previewControlButton:hover {
|
||||
background-color: var(--background-modifier-hover);
|
||||
color: var(--text-primary);
|
||||
}
|
||||
}
|
||||
|
||||
.previewError {
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.45rem;
|
||||
color: var(--status-danger);
|
||||
}
|
||||
|
||||
.previewLoadingState {
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 0.5rem;
|
||||
color: var(--text-tertiary);
|
||||
}
|
||||
|
||||
.srOnly {
|
||||
position: absolute;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
padding: 0;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
border: 0;
|
||||
}
|
||||
|
||||
178
fluxer_app/src/styles/AttachmentGridItem.module.css
Normal file
178
fluxer_app/src/styles/AttachmentGridItem.module.css
Normal file
@@ -0,0 +1,178 @@
|
||||
/*
|
||||
* Copyright (C) 2026 Fluxer Contributors
|
||||
*
|
||||
* This file is part of Fluxer.
|
||||
*
|
||||
* Fluxer is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Fluxer is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Fluxer. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
.gridItem {
|
||||
position: relative;
|
||||
background-color: var(--background-secondary);
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
text-align: inherit;
|
||||
line-height: inherit;
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
min-height: 1px;
|
||||
min-width: 1px;
|
||||
overflow: hidden;
|
||||
border-radius: var(--media-border-radius);
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.clickableButton {
|
||||
cursor: pointer;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border: 0;
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.mediaContainer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.loadingOverlay {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.placeholderImage {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
min-width: 100%;
|
||||
min-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.mediaImage {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
min-width: 100%;
|
||||
min-height: 100%;
|
||||
max-width: 100%;
|
||||
transition: opacity 0.2s;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.mediaImageHidden {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.mediaBlurred {
|
||||
filter: blur(12px);
|
||||
opacity: 0.15;
|
||||
}
|
||||
|
||||
.nsfwOverlay {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: var(--spoiler-overlay-color);
|
||||
backdrop-filter: blur(12px);
|
||||
z-index: 3;
|
||||
padding: 0.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.playButtonOverlay {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
pointer-events: none;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.playButton {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
border-radius: 50%;
|
||||
background-color: rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.playButton svg {
|
||||
color: var(--text-on-brand-primary);
|
||||
}
|
||||
|
||||
.audioPlaceholder {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
max-width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: linear-gradient(135deg, var(--background-tertiary) 0%, var(--background-secondary-alt) 100%);
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.audioPlaceholder svg {
|
||||
width: 40%;
|
||||
height: 40%;
|
||||
max-width: 80px;
|
||||
max-height: 80px;
|
||||
opacity: 0.6;
|
||||
color: var(--text-tertiary);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.gifIndicator {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
left: 8px;
|
||||
z-index: 10;
|
||||
border-radius: 4px;
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
padding: 4px 8px;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 600;
|
||||
color: var(--text-on-brand-primary);
|
||||
line-height: 1;
|
||||
}
|
||||
191
fluxer_app/src/styles/AttachmentLayoutGrid.module.css
Normal file
191
fluxer_app/src/styles/AttachmentLayoutGrid.module.css
Normal file
@@ -0,0 +1,191 @@
|
||||
/*
|
||||
* Copyright (C) 2026 Fluxer Contributors
|
||||
*
|
||||
* This file is part of Fluxer.
|
||||
*
|
||||
* Fluxer is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Fluxer is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Fluxer. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
.twoImageGrid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.threeImageGrid {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
grid-template-rows: auto auto;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.threeImageGrid > :first-child {
|
||||
grid-row: 1 / 3;
|
||||
}
|
||||
|
||||
.fourImageGrid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
grid-template-rows: auto auto;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.fiveImageGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(6, 1fr);
|
||||
grid-template-rows: auto auto;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.fiveImageGrid > :nth-child(1) {
|
||||
grid-column: 1 / 4;
|
||||
grid-row: 1;
|
||||
}
|
||||
|
||||
.fiveImageGrid > :nth-child(2) {
|
||||
grid-column: 4 / 7;
|
||||
grid-row: 1;
|
||||
}
|
||||
|
||||
.fiveImageGrid > :nth-child(3) {
|
||||
grid-column: 1 / 3;
|
||||
grid-row: 2;
|
||||
}
|
||||
|
||||
.fiveImageGrid > :nth-child(4) {
|
||||
grid-column: 3 / 5;
|
||||
grid-row: 2;
|
||||
}
|
||||
|
||||
.fiveImageGrid > :nth-child(5) {
|
||||
grid-column: 5 / 7;
|
||||
grid-row: 2;
|
||||
}
|
||||
|
||||
.sixImageGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sevenImageContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sevenHero {
|
||||
display: grid;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.sevenGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.eightImageContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.eightTopRow {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.eightBottomGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(2, 1fr);
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nineImageGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(3, 1fr);
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.tenImageContainer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.tenHero {
|
||||
display: grid;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.tenGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-template-rows: repeat(3, 1fr);
|
||||
gap: 4px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.twoImageGrid,
|
||||
.threeImageGrid,
|
||||
.fourImageGrid,
|
||||
.fiveImageGrid,
|
||||
.sixImageGrid,
|
||||
.sevenImageContainer,
|
||||
.sevenHero,
|
||||
.sevenGrid,
|
||||
.eightImageContainer,
|
||||
.eightTopRow,
|
||||
.eightBottomGrid,
|
||||
.nineImageGrid,
|
||||
.tenImageContainer,
|
||||
.tenHero,
|
||||
.tenGrid {
|
||||
max-width: 100%;
|
||||
min-width: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.twoImageGrid > *,
|
||||
.threeImageGrid > *,
|
||||
.fourImageGrid > *,
|
||||
.fiveImageGrid > *,
|
||||
.sixImageGrid > *,
|
||||
.sevenGrid > *,
|
||||
.eightTopRow > *,
|
||||
.eightBottomGrid > *,
|
||||
.nineImageGrid > *,
|
||||
.tenGrid > * {
|
||||
aspect-ratio: 1 / 1 !important;
|
||||
}
|
||||
}
|
||||
@@ -134,9 +134,9 @@
|
||||
|
||||
.oneByOneGrid {
|
||||
width: 100%;
|
||||
max-width: 550px;
|
||||
max-height: 400px;
|
||||
overflow: visible;
|
||||
max-width: min(100%, var(--message-media-max-width, var(--attachment-media-max-width, 550px)));
|
||||
max-height: var(--attachment-media-max-height, 400px);
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
display: flex;
|
||||
}
|
||||
@@ -195,10 +195,10 @@
|
||||
|
||||
.mosaicContainerWrapper {
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 550px;
|
||||
max-width: min(100%, var(--message-media-max-width, var(--attachment-media-max-width, 550px)));
|
||||
}
|
||||
|
||||
.mosaicExpiryBadge {
|
||||
@@ -325,7 +325,7 @@
|
||||
}
|
||||
|
||||
.playButton svg {
|
||||
color: white;
|
||||
color: var(--text-on-brand-primary);
|
||||
}
|
||||
|
||||
.audioPlaceholder {
|
||||
@@ -362,7 +362,7 @@
|
||||
}
|
||||
|
||||
.oneByOneGrid {
|
||||
max-height: 300px;
|
||||
max-height: min(var(--attachment-media-max-height, 400px), 300px);
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
@@ -392,9 +392,10 @@
|
||||
}
|
||||
|
||||
.mosaicContainer {
|
||||
height: 100%;
|
||||
max-width: 550px;
|
||||
max-width: min(100%, var(--message-media-max-width, var(--attachment-media-max-width, 550px)));
|
||||
width: 100%;
|
||||
height: auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.clickableButton {
|
||||
@@ -415,7 +416,7 @@
|
||||
padding: 4px 8px;
|
||||
font-size: 0.875rem;
|
||||
font-weight: 600;
|
||||
color: white;
|
||||
color: var(--text-on-brand-primary);
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
|
||||
63
fluxer_app/src/styles/AttachmentSingleMedia.module.css
Normal file
63
fluxer_app/src/styles/AttachmentSingleMedia.module.css
Normal file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (C) 2026 Fluxer Contributors
|
||||
*
|
||||
* This file is part of Fluxer.
|
||||
*
|
||||
* Fluxer is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Fluxer is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Fluxer. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
.relativeWrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
max-width: min(100%, var(--message-media-max-width, var(--attachment-media-max-width, 550px)));
|
||||
}
|
||||
|
||||
.singleMediaContainer {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
max-width: min(100%, var(--message-media-max-width, var(--attachment-media-max-width, 550px)));
|
||||
max-height: var(--attachment-media-max-height, 400px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.cropIndicator {
|
||||
position: absolute;
|
||||
top: 8px;
|
||||
right: 8px;
|
||||
padding: 4px 8px;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
color: var(--text-on-brand-primary);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
border-radius: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 4px;
|
||||
z-index: 10;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.cropIndicator svg {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.relativeWrapper,
|
||||
.singleMediaContainer {
|
||||
max-width: 100%;
|
||||
max-height: min(var(--attachment-media-max-height, 400px), 300px);
|
||||
}
|
||||
}
|
||||
@@ -281,10 +281,11 @@
|
||||
}
|
||||
|
||||
.searchResultItem {
|
||||
--message-media-max-width: 100%;
|
||||
position: relative;
|
||||
margin-bottom: 12px;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
overflow: visible;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
background-color: var(--background-modifier-hover);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
.markup {
|
||||
font-size: inherit;
|
||||
line-height: 1.5;
|
||||
color: var(--text-chat);
|
||||
color: inherit;
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
hyphens: none;
|
||||
@@ -86,30 +86,30 @@
|
||||
}
|
||||
|
||||
.markup h1 {
|
||||
font-size: 1.75rem;
|
||||
font-size: 1.375rem;
|
||||
letter-spacing: -0.02em;
|
||||
padding-bottom: 0.25rem;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.markup h2 {
|
||||
font-size: 1.5rem;
|
||||
font-size: 1.25rem;
|
||||
letter-spacing: -0.015em;
|
||||
padding-bottom: 0.25rem;
|
||||
border-bottom: 1px solid var(--border-color);
|
||||
}
|
||||
|
||||
.markup h3 {
|
||||
font-size: 1.25rem;
|
||||
font-size: 1.125rem;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
.markup h4 {
|
||||
font-size: 1.125rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.markup h5 {
|
||||
font-size: 1rem;
|
||||
font-size: 0.9375rem;
|
||||
}
|
||||
|
||||
.markup h6 {
|
||||
@@ -137,9 +137,10 @@
|
||||
|
||||
.markup ul,
|
||||
.markup ol {
|
||||
margin: 0.25rem 0 0 0;
|
||||
margin-block: 0.25rem 0;
|
||||
margin-inline: 1rem 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
list-style-position: outside;
|
||||
}
|
||||
|
||||
.markup li {
|
||||
@@ -150,32 +151,13 @@
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.markup ul > li {
|
||||
position: relative;
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
.markup ul > li::before {
|
||||
content: '•';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
.markup ol {
|
||||
counter-reset: list-counter;
|
||||
list-style-type: decimal;
|
||||
margin-inline-start: calc(0.4em + var(--totalCharacters, 1) * 0.6em);
|
||||
}
|
||||
|
||||
.markup ol > li {
|
||||
position: relative;
|
||||
padding-left: 1.25em;
|
||||
counter-increment: list-counter;
|
||||
}
|
||||
|
||||
.markup ol > li::before {
|
||||
content: counter(list-counter) '.';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
.markup ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
.markup li > ul,
|
||||
@@ -184,37 +166,20 @@
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.markup ul ul > li::before,
|
||||
.markup ol ul > li::before {
|
||||
content: '◦';
|
||||
.markup ul ul {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
.markup ul ul ul > li::before {
|
||||
content: '▪';
|
||||
.markup ul ul ul {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
.markup ol ol {
|
||||
counter-reset: nested-counter;
|
||||
}
|
||||
|
||||
.markup ol ol > li {
|
||||
counter-increment: nested-counter;
|
||||
}
|
||||
|
||||
.markup ol ol > li::before {
|
||||
content: counter(nested-counter, lower-alpha) '.';
|
||||
list-style-type: lower-alpha;
|
||||
}
|
||||
|
||||
.markup ol ol ol {
|
||||
counter-reset: deep-counter;
|
||||
}
|
||||
|
||||
.markup ol ol ol > li {
|
||||
counter-increment: deep-counter;
|
||||
}
|
||||
|
||||
.markup ol ol ol > li::before {
|
||||
content: counter(deep-counter, lower-roman) '.';
|
||||
list-style-type: lower-roman;
|
||||
}
|
||||
|
||||
.markup code.inline {
|
||||
@@ -243,6 +208,26 @@
|
||||
box-sizing: border-box;
|
||||
border: 1px solid var(--border-color);
|
||||
padding: 0.75rem;
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
.markup .codeContainer:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.markup .codeContainer:has(+ h1),
|
||||
.markup .codeContainer:has(+ h2),
|
||||
.markup .codeContainer:has(+ h3),
|
||||
.markup .codeContainer:has(+ h4),
|
||||
.markup .codeContainer:has(+ h5),
|
||||
.markup .codeContainer:has(+ h6),
|
||||
.markup .codeContainer:has(+ .blockquoteContainer),
|
||||
.markup .codeContainer:has(+ .alert),
|
||||
.markup .codeContainer:has(+ .tableContainer),
|
||||
.markup .codeContainer:has(+ .latexCodeBlock),
|
||||
.markup .codeContainer:has(+ ul),
|
||||
.markup .codeContainer:has(+ ol) {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.markup pre {
|
||||
@@ -493,8 +478,8 @@
|
||||
}
|
||||
|
||||
.markup .mention {
|
||||
border-radius: var(--radius-md);
|
||||
padding: 0 0.25rem;
|
||||
border-radius: var(--radius-sm);
|
||||
padding: 0 0.2rem;
|
||||
font-weight: 500;
|
||||
unicode-bidi: plaintext;
|
||||
color: var(--markup-mention-text);
|
||||
@@ -504,7 +489,7 @@
|
||||
background-color var(--transition-fast),
|
||||
color var(--transition-fast),
|
||||
border-color var(--transition-fast);
|
||||
display: inline;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: baseline;
|
||||
@@ -512,9 +497,9 @@
|
||||
}
|
||||
|
||||
.markup .mention svg {
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
margin-right: 0.1em;
|
||||
width: 0.95em;
|
||||
height: 0.95em;
|
||||
margin-right: 0.08em;
|
||||
margin-top: -0.1em;
|
||||
flex-shrink: 0;
|
||||
display: inline-block;
|
||||
@@ -523,16 +508,27 @@
|
||||
|
||||
.markup .mention.interactive {
|
||||
cursor: pointer;
|
||||
display: inline;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.markup .mention.interactive:hover,
|
||||
.markup .mention.interactive:focus-visible {
|
||||
.markup .mention.interactive:hover {
|
||||
background-color: var(--markup-interactive-hover-fill);
|
||||
color: var(--markup-interactive-hover-text);
|
||||
}
|
||||
|
||||
@supports (background-color: color-mix(in srgb, #000 50%, transparent)) {
|
||||
.markup .mention {
|
||||
background-color: color-mix(in srgb, var(--markup-mention-fill) 70%, transparent);
|
||||
border-color: color-mix(in srgb, var(--markup-mention-border) 65%, transparent);
|
||||
}
|
||||
|
||||
.markup .mention.interactive:hover {
|
||||
background-color: color-mix(in srgb, var(--markup-interactive-hover-fill) 70%, transparent);
|
||||
border-color: color-mix(in srgb, var(--markup-interactive-hover-fill) 60%, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
.markup .timestamp {
|
||||
background-color: var(--background-modifier-hover);
|
||||
border-radius: 3px;
|
||||
@@ -586,11 +582,6 @@
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.markup .spoiler:focus-visible {
|
||||
outline: 2px solid var(--text-link);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.markup .blockSpoiler {
|
||||
padding: 0.5rem;
|
||||
display: block;
|
||||
@@ -787,7 +778,7 @@
|
||||
background: transparent;
|
||||
color: var(--text-code);
|
||||
overflow-x: auto;
|
||||
padding: 0;
|
||||
padding: 0.25rem 0;
|
||||
}
|
||||
|
||||
:global(.theme-light) .markup .hljs {
|
||||
@@ -836,23 +827,19 @@
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.markup h1 {
|
||||
font-size: 1.5rem;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.markup h2 {
|
||||
font-size: 1.35rem;
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
.markup h3 {
|
||||
font-size: 1.2rem;
|
||||
font-size: 1.0625rem;
|
||||
}
|
||||
|
||||
.markup h4 {
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
.markup pre {
|
||||
padding: 0.25rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.markup .tableContainer {
|
||||
@@ -869,6 +856,10 @@
|
||||
.markup .alert {
|
||||
padding: 0.375rem 0.5rem 0.375rem calc(0.5rem + 3px);
|
||||
}
|
||||
|
||||
.markup .codeContainer {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
|
||||
@@ -30,6 +30,6 @@
|
||||
}
|
||||
|
||||
.channelIcon {
|
||||
height: 1rem;
|
||||
width: 1rem;
|
||||
height: 0.9rem;
|
||||
width: 0.9rem;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
--message-gutter: 16px;
|
||||
--message-spacing-y: 0.125rem;
|
||||
--message-line-height: 1.375rem;
|
||||
--message-timestamp-color: var(--text-tertiary);
|
||||
--message-timestamp-color: var(--text-primary-muted);
|
||||
--message-timestamp-font-size: 0.75rem;
|
||||
--message-timestamp-compact-font-size: 0.6875rem;
|
||||
--message-timestamp-compact-height: 1.25rem;
|
||||
@@ -78,48 +78,56 @@
|
||||
--message-unknown-warning-color: #ff9933;
|
||||
|
||||
--message-transition-highlight: 200ms ease-in-out;
|
||||
|
||||
--message-avatar-align-offset: clamp(
|
||||
0px,
|
||||
calc((var(--message-line-height) * 2 - var(--message-avatar-size)) / 2),
|
||||
0.5rem
|
||||
);
|
||||
}
|
||||
|
||||
.message {
|
||||
text-align: left;
|
||||
display: grid;
|
||||
grid-template-columns: var(--chat-horizontal-padding, var(--message-gutter)) var(--message-avatar-size) var(
|
||||
--message-gutter
|
||||
) minmax(0, 1fr);
|
||||
grid-template-rows: auto auto auto;
|
||||
grid-template-areas:
|
||||
'. . . reply'
|
||||
'gutter-left avatar gutter-right content'
|
||||
'. . . container';
|
||||
padding-top: var(--message-spacing-y);
|
||||
padding-bottom: var(--message-spacing-y);
|
||||
padding-right: var(--chat-horizontal-padding, var(--message-gutter));
|
||||
padding-left: 0;
|
||||
position: relative;
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
touch-action: pan-y;
|
||||
word-break: break-word;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
margin-left: calc(-1 * var(--message-mobile-margin));
|
||||
margin-right: calc(-1 * var(--message-mobile-margin));
|
||||
display: grid;
|
||||
grid-template-columns:
|
||||
var(--chat-horizontal-padding, var(--message-gutter))
|
||||
var(--message-avatar-size)
|
||||
var(--message-gutter)
|
||||
minmax(0, 1fr);
|
||||
grid-template-rows: auto auto auto;
|
||||
grid-template-areas:
|
||||
'. . . reply'
|
||||
'gutter-left avatar gutter-right content'
|
||||
'. . . container';
|
||||
padding-block: var(--message-spacing-y);
|
||||
padding-inline-end: var(--chat-horizontal-padding, var(--message-gutter));
|
||||
padding-inline-start: 0;
|
||||
margin-inline: calc(-1 * var(--message-mobile-margin));
|
||||
}
|
||||
|
||||
.messagePreviewSpacing {
|
||||
margin-top: var(--message-group-spacing, 0);
|
||||
}
|
||||
|
||||
.messagePreview {
|
||||
--message-media-max-width: 100%;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.message {
|
||||
margin-left: calc(-1 * var(--chat-horizontal-padding, var(--message-gutter)));
|
||||
margin-right: calc(-1 * var(--chat-horizontal-padding, var(--message-gutter)));
|
||||
padding-right: calc(var(--chat-horizontal-padding, var(--message-gutter)) + var(--message-action-bar-offset));
|
||||
margin-inline: calc(-1 * var(--chat-horizontal-padding, var(--message-gutter)));
|
||||
padding-inline-end: calc(var(--chat-horizontal-padding, var(--message-gutter)) + var(--message-action-bar-offset));
|
||||
}
|
||||
|
||||
.messagePreview {
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
padding-right: var(--chat-horizontal-padding, var(--message-gutter));
|
||||
margin-inline: 0;
|
||||
padding-inline-end: var(--chat-horizontal-padding, var(--message-gutter));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,28 +191,32 @@
|
||||
'. . . reply'
|
||||
'gutter-left timestamp gutter-right content'
|
||||
'. . . container';
|
||||
|
||||
grid-template-columns:
|
||||
var(--chat-horizontal-padding, var(--message-gutter))
|
||||
var(--message-avatar-size)
|
||||
var(--message-gutter)
|
||||
minmax(0, 1fr);
|
||||
}
|
||||
|
||||
.messageCompact {
|
||||
display: block;
|
||||
position: relative;
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
word-break: break-word;
|
||||
text-align: left;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
padding-top: var(--message-spacing-y);
|
||||
padding-bottom: var(--message-spacing-y);
|
||||
padding-left: calc(var(--chat-horizontal-padding, var(--message-gutter)) + var(--message-compact-indent));
|
||||
padding-right: var(--chat-horizontal-padding, var(--message-gutter));
|
||||
display: block;
|
||||
position: relative;
|
||||
padding-block: var(--message-spacing-y);
|
||||
padding-inline-start: calc(var(--chat-horizontal-padding, var(--message-gutter)) + var(--message-compact-indent));
|
||||
padding-inline-end: var(--chat-horizontal-padding, var(--message-gutter));
|
||||
text-indent: calc(-1 * var(--message-compact-indent));
|
||||
margin-left: calc(-1 * var(--chat-horizontal-padding, var(--message-gutter)));
|
||||
margin-right: calc(-1 * var(--chat-horizontal-padding, var(--message-gutter)));
|
||||
margin-inline: calc(-1 * var(--chat-horizontal-padding, var(--message-gutter)));
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.messageCompact {
|
||||
padding-right: calc(var(--chat-horizontal-padding, var(--message-gutter)) + var(--message-action-bar-offset));
|
||||
padding-inline-end: calc(var(--chat-horizontal-padding, var(--message-gutter)) + var(--message-action-bar-offset));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,9 +241,18 @@
|
||||
opacity: var(--message-sending-link-opacity);
|
||||
}
|
||||
|
||||
.messageFailed {
|
||||
color: var(--status-danger);
|
||||
}
|
||||
|
||||
.messageFailed,
|
||||
.messageFailed * {
|
||||
opacity: var(--message-failed-opacity);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.messageFailed .link,
|
||||
.messageFailed a {
|
||||
color: var(--status-danger) !important;
|
||||
}
|
||||
|
||||
.mobileFailedIndicator {
|
||||
@@ -255,9 +276,8 @@
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
inset-block: 0;
|
||||
inset-inline-start: 0;
|
||||
width: var(--message-highlight-bar-width);
|
||||
background-color: transparent;
|
||||
pointer-events: none;
|
||||
@@ -296,27 +316,45 @@
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-top: var(--message-highlight-bar-width);
|
||||
align-self: start;
|
||||
margin-block-start: calc(var(--message-spacing-y) + var(--message-avatar-align-offset));
|
||||
transform: none;
|
||||
inline-size: var(--message-avatar-size);
|
||||
block-size: var(--message-avatar-size);
|
||||
}
|
||||
|
||||
.messageAvatar:active {
|
||||
transform: translateY(1px);
|
||||
.messageNoText .messageAvatar,
|
||||
.messageNoText.messageGrouped .messageAvatar {
|
||||
margin-block-start: var(--message-spacing-y);
|
||||
}
|
||||
|
||||
.messageContent {
|
||||
grid-area: content;
|
||||
min-width: 0;
|
||||
overflow-wrap: break-word;
|
||||
align-self: start;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-inline-size: 0;
|
||||
}
|
||||
|
||||
.messageAuthorInfo {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
margin: 0;
|
||||
min-height: var(--message-line-height);
|
||||
overflow: hidden;
|
||||
white-space: break-spaces;
|
||||
color: var(--text-chat-muted);
|
||||
line-height: var(--message-line-height);
|
||||
color: var(--text-chat-muted);
|
||||
font-size: 1rem;
|
||||
display: block;
|
||||
min-inline-size: 0;
|
||||
}
|
||||
|
||||
.messageAuthorRow {
|
||||
display: flex;
|
||||
align-items: baseline;
|
||||
max-inline-size: 100%;
|
||||
white-space: nowrap;
|
||||
line-height: var(--message-line-height);
|
||||
min-inline-size: 0;
|
||||
}
|
||||
|
||||
.messageNoText {
|
||||
@@ -334,26 +372,49 @@
|
||||
}
|
||||
|
||||
.messageUsername {
|
||||
display: inline;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
font-weight: 500;
|
||||
color: var(--text-primary);
|
||||
line-height: var(--message-line-height);
|
||||
max-height: var(--message-line-height);
|
||||
vertical-align: baseline;
|
||||
min-inline-size: 0;
|
||||
max-inline-size: min(32ch, 100%);
|
||||
overflow: hidden;
|
||||
vertical-align: bottom;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.contextMenuUnderline {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.messageAuthorPart {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
vertical-align: baseline;
|
||||
line-height: var(--message-line-height);
|
||||
min-inline-size: 0;
|
||||
max-inline-size: 100%;
|
||||
flex: 0 1 auto;
|
||||
}
|
||||
|
||||
.messageAuthorPart > * {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.messageTimeoutIndicator {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.25rem;
|
||||
margin-right: 0.35rem;
|
||||
vertical-align: middle;
|
||||
align-self: center;
|
||||
color: var(--text-danger);
|
||||
}
|
||||
|
||||
.messageTimeoutIndicator svg {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (hover: hover) {
|
||||
.messageUsername:hover {
|
||||
text-decoration: underline;
|
||||
@@ -362,7 +423,6 @@
|
||||
|
||||
.messageTimestamp,
|
||||
.messageTimestampCompact {
|
||||
display: inline-block;
|
||||
cursor: default;
|
||||
vertical-align: baseline;
|
||||
font-weight: 400;
|
||||
@@ -371,10 +431,47 @@
|
||||
}
|
||||
|
||||
.messageTimestamp {
|
||||
margin-left: 0;
|
||||
display: inline;
|
||||
font-size: var(--message-timestamp-font-size);
|
||||
position: relative;
|
||||
top: -0.05em;
|
||||
line-height: var(--message-line-height);
|
||||
opacity: 0.6;
|
||||
margin-inline-start: 0.15rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.copyOnly {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: visible;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
vertical-align: middle;
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.textSeparator {
|
||||
display: inline;
|
||||
vertical-align: baseline;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
margin: 0 0.2rem;
|
||||
padding: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.authorDashSeparator {
|
||||
display: inline;
|
||||
vertical-align: baseline;
|
||||
color: transparent;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
white-space: nowrap;
|
||||
margin: 0 0.15rem;
|
||||
padding: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.messageTimestampHover,
|
||||
@@ -398,6 +495,7 @@
|
||||
white-space: nowrap;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
transform: translateX(8px);
|
||||
}
|
||||
|
||||
.message:hover .messageTimestampHover {
|
||||
@@ -414,46 +512,46 @@
|
||||
|
||||
.messageAuthorInfoCompact {
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: baseline;
|
||||
display: inline;
|
||||
min-height: var(--message-line-height);
|
||||
overflow: hidden;
|
||||
color: var(--text-chat-muted);
|
||||
line-height: var(--message-line-height);
|
||||
white-space: nowrap;
|
||||
text-indent: 0;
|
||||
vertical-align: baseline;
|
||||
margin-right: var(--message-compact-username-gap);
|
||||
margin: 0;
|
||||
margin-inline-end: var(--message-compact-username-gap);
|
||||
}
|
||||
|
||||
.messageTimestampCompact {
|
||||
margin-right: var(--message-compact-gap);
|
||||
margin-inline-end: var(--message-compact-gap);
|
||||
width: var(--message-compact-timestamp-width);
|
||||
height: var(--message-timestamp-compact-height);
|
||||
font-size: var(--message-timestamp-compact-font-size);
|
||||
text-align: right;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: var(--message-line-height);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.messageAvatarCompact {
|
||||
margin-right: var(--message-compact-gap);
|
||||
display: inline-flex;
|
||||
align-self: center;
|
||||
margin-inline-end: var(--message-compact-gap);
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.messageAvatarCompact:active {
|
||||
transform: translateY(1px);
|
||||
}
|
||||
|
||||
.messageTimestampCompactHover {
|
||||
margin-right: var(--message-compact-gap);
|
||||
display: inline-block;
|
||||
margin-inline-end: var(--message-compact-gap);
|
||||
width: var(--message-compact-timestamp-width);
|
||||
height: var(--message-timestamp-compact-height);
|
||||
font-size: var(--message-timestamp-compact-font-size);
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: var(--message-line-height);
|
||||
cursor: default;
|
||||
vertical-align: baseline;
|
||||
text-align: right;
|
||||
flex-shrink: 0;
|
||||
opacity: 0;
|
||||
@@ -476,10 +574,11 @@
|
||||
position: relative;
|
||||
user-select: text;
|
||||
-webkit-user-select: text;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
line-height: var(--message-line-height);
|
||||
white-space: break-spaces;
|
||||
word-break: break-word;
|
||||
min-inline-size: 0;
|
||||
}
|
||||
|
||||
.message .buttons,
|
||||
@@ -530,8 +629,8 @@
|
||||
|
||||
.container {
|
||||
grid-area: container;
|
||||
display: grid;
|
||||
height: fit-content;
|
||||
display: grid;
|
||||
grid-auto-flow: row;
|
||||
row-gap: var(--message-container-gap);
|
||||
grid-template-columns: repeat(auto-fill, minmax(100%, 1fr));
|
||||
@@ -539,8 +638,7 @@
|
||||
min-height: 0;
|
||||
min-width: 0;
|
||||
max-width: 100%;
|
||||
padding-top: var(--message-container-padding-y);
|
||||
padding-bottom: var(--message-container-padding-y);
|
||||
padding-block: var(--message-container-padding-y);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@@ -554,7 +652,7 @@
|
||||
}
|
||||
|
||||
.messageNoText .container {
|
||||
padding-top: 0;
|
||||
padding-block-start: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--message-container-padding-y);
|
||||
@@ -590,9 +688,9 @@
|
||||
bottom: var(--spine-gap);
|
||||
right: 100%;
|
||||
left: calc(-1 * (0.5 * var(--avatar-size) + var(--gutter)));
|
||||
margin-right: var(--reply-spacing);
|
||||
margin-top: calc(-0.5 * var(--spine-width));
|
||||
margin-left: calc(-0.5 * var(--spine-width));
|
||||
margin-inline-end: var(--reply-spacing);
|
||||
margin-block-start: calc(-0.5 * var(--spine-width));
|
||||
margin-inline-start: calc(-0.5 * var(--spine-width));
|
||||
border-color: var(--text-chat-muted);
|
||||
border-width: var(--spine-width) 0 0 var(--spine-width);
|
||||
border-style: solid;
|
||||
@@ -601,8 +699,8 @@
|
||||
|
||||
.repliedMessageCompact {
|
||||
text-indent: 0;
|
||||
padding-left: 0;
|
||||
margin-left: 0;
|
||||
padding-inline-start: 0;
|
||||
margin-inline-start: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@@ -616,10 +714,10 @@
|
||||
box-sizing: border-box;
|
||||
top: 50%;
|
||||
bottom: calc(-1 * (var(--reply-spacing) + var(--message-line-height) * 0.25));
|
||||
left: -1.5rem;
|
||||
inset-inline-start: -1.5rem;
|
||||
right: calc(100% - var(--avatar-size) / 2 + var(--spine-gap) + var(--message-reply-spine-width));
|
||||
margin-top: calc(-0.5 * var(--spine-width));
|
||||
margin-left: calc(-0.5 * var(--spine-width));
|
||||
margin-block-start: calc(-0.5 * var(--spine-width));
|
||||
margin-inline-start: calc(-0.5 * var(--spine-width));
|
||||
border-color: var(--text-chat-muted);
|
||||
border-width: var(--spine-width) 0 0 var(--spine-width);
|
||||
border-style: solid;
|
||||
@@ -636,8 +734,7 @@
|
||||
box-sizing: border-box;
|
||||
line-height: 1.5;
|
||||
min-height: 1.5rem;
|
||||
padding-top: 0.125rem;
|
||||
padding-bottom: 0.125rem;
|
||||
padding-block: 0.125rem;
|
||||
overflow-x: hidden;
|
||||
overflow-y: visible;
|
||||
}
|
||||
@@ -653,17 +750,15 @@
|
||||
}
|
||||
|
||||
.repliedAvatar {
|
||||
margin-right: var(--message-container-gap);
|
||||
margin-inline-end: var(--message-container-gap);
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.repliedAvatar:active {
|
||||
transform: translateY(1px);
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.repliedIconContainer {
|
||||
margin-right: var(--message-container-gap);
|
||||
margin-inline-end: var(--message-container-gap);
|
||||
display: flex;
|
||||
height: var(--message-icon-size-md);
|
||||
width: var(--message-icon-size-md);
|
||||
@@ -682,7 +777,7 @@
|
||||
|
||||
.repliedUsername {
|
||||
position: relative;
|
||||
margin-right: calc(var(--message-compact-username-gap) - 2px);
|
||||
margin-inline-end: calc(var(--message-compact-username-gap) - 2px);
|
||||
display: inline;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
@@ -704,7 +799,7 @@
|
||||
}
|
||||
|
||||
.repliedItalic {
|
||||
padding-right: var(--message-reply-spine-width);
|
||||
padding-inline-end: var(--message-reply-spine-width);
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@@ -738,8 +833,6 @@
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.repliedTextContent pre,
|
||||
.repliedTextContent code,
|
||||
.repliedTextContent h1,
|
||||
.repliedTextContent h2,
|
||||
.repliedTextContent h3,
|
||||
@@ -765,20 +858,37 @@
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.repliedTextContent pre,
|
||||
.repliedTextContent code {
|
||||
display: inline !important;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
border: none !important;
|
||||
background: none !important;
|
||||
font-weight: inherit !important;
|
||||
line-height: inherit !important;
|
||||
white-space: nowrap !important;
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.repliedTextContent pre::before,
|
||||
.repliedTextContent pre::after {
|
||||
content: none !important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.systemMessageFollowsSystem {
|
||||
margin-block-start: calc(var(--message-group-spacing, 16px) / 4);
|
||||
}
|
||||
|
||||
.systemMessageIconWrapper {
|
||||
grid-area: avatar;
|
||||
display: flex;
|
||||
align-self: flex-start;
|
||||
align-items: flex-start;
|
||||
justify-content: center;
|
||||
padding-top: 0.15em;
|
||||
padding-left: max(
|
||||
padding-block-start: 0.15em;
|
||||
padding-inline-start: max(
|
||||
0px,
|
||||
calc(
|
||||
(
|
||||
@@ -791,10 +901,12 @@
|
||||
2
|
||||
)
|
||||
);
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.systemMessageIconCompact {
|
||||
margin-right: var(--message-container-gap);
|
||||
margin-inline-end: var(--message-container-gap);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -802,6 +914,8 @@
|
||||
width: var(--system-message-icon-size);
|
||||
flex-shrink: 0;
|
||||
vertical-align: text-bottom;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
.systemMessageContent {
|
||||
@@ -819,7 +933,10 @@
|
||||
}
|
||||
|
||||
.systemMessageTimestamp {
|
||||
margin-left: 0.25rem;
|
||||
margin-inline-start: 0.25rem;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
color: var(--message-timestamp-color);
|
||||
}
|
||||
|
||||
.systemMessageContentWrapper {
|
||||
@@ -835,15 +952,15 @@
|
||||
.systemMessageCompactContent {
|
||||
--system-message-compact-indent: calc(var(--message-compact-indent) + var(--system-message-icon-size) + 0.5rem);
|
||||
display: block;
|
||||
padding-left: var(--system-message-compact-indent);
|
||||
margin-left: calc(-1 * var(--message-compact-indent));
|
||||
padding-inline-start: var(--system-message-compact-indent);
|
||||
margin-inline-start: calc(-1 * var(--message-compact-indent));
|
||||
text-indent: calc(-1 * var(--system-message-compact-indent));
|
||||
color: var(--text-tertiary);
|
||||
line-height: var(--message-line-height);
|
||||
}
|
||||
|
||||
.systemMessageCompactContent .messageTimestampCompact {
|
||||
margin-right: var(--message-compact-gap);
|
||||
margin-inline-end: var(--message-compact-gap);
|
||||
display: inline-block;
|
||||
width: var(--message-compact-timestamp-width);
|
||||
vertical-align: baseline;
|
||||
@@ -851,7 +968,7 @@
|
||||
}
|
||||
|
||||
.systemMessageContent .container {
|
||||
margin-left: var(--message-compact-container-margin);
|
||||
margin-inline-start: var(--message-compact-container-margin);
|
||||
}
|
||||
|
||||
.systemMessageCompactContent .container {
|
||||
@@ -902,33 +1019,25 @@
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.authorContainer {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 0.15rem;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
|
||||
.messageAuthorInfoCompact .authorContainer {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.messageAuthorInfoCompact .messageUsername {
|
||||
margin-right: 0;
|
||||
margin-inline-end: 0;
|
||||
}
|
||||
|
||||
.userTagOffset {
|
||||
position: relative;
|
||||
margin-left: 0.25rem;
|
||||
margin-inline-start: 0.35rem;
|
||||
vertical-align: middle;
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.userTagCompact {
|
||||
margin-right: var(--message-compact-gap);
|
||||
margin-inline-end: var(--message-compact-gap);
|
||||
flex-shrink: 0;
|
||||
vertical-align: middle;
|
||||
display: inline-flex;
|
||||
}
|
||||
|
||||
.editedTimestamp {
|
||||
margin-left: 1px;
|
||||
margin-inline-start: 1px;
|
||||
display: inline-block;
|
||||
height: var(--message-timestamp-compact-height);
|
||||
cursor: default;
|
||||
@@ -979,7 +1088,7 @@
|
||||
pointer-events: auto;
|
||||
grid-column: 1 / -1;
|
||||
justify-self: flex-start;
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
transform: translateY(calc(50% + var(--typing-floating-offset, 0px)));
|
||||
}
|
||||
|
||||
@@ -1000,11 +1109,11 @@
|
||||
.typingAvatarContainer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: var(--message-typing-avatar-margin);
|
||||
margin-inline-end: var(--message-typing-avatar-margin);
|
||||
}
|
||||
|
||||
.typingText {
|
||||
margin-left: var(--message-typing-avatar-margin);
|
||||
margin-inline-start: var(--message-typing-avatar-margin);
|
||||
min-width: 0;
|
||||
flex: 0 1 auto;
|
||||
overflow: hidden;
|
||||
@@ -1015,6 +1124,7 @@
|
||||
|
||||
.compactContentWrapper {
|
||||
line-height: var(--message-line-height);
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.compactInlineContent {
|
||||
@@ -1027,24 +1137,22 @@
|
||||
}
|
||||
|
||||
.compactInlineContent * {
|
||||
/* messageCompact uses negative text-indent for the author line;
|
||||
block containers inside the body must not inherit it */
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
.compactInlineContent > div {
|
||||
display: block;
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
|
||||
.compactInlineContent :global(ul),
|
||||
.compactInlineContent :global(ol) {
|
||||
margin-left: var(--message-compact-container-margin);
|
||||
margin-inline-start: var(--message-compact-container-margin);
|
||||
}
|
||||
|
||||
.compactInlineContent :global(li) > :global(ul),
|
||||
.compactInlineContent :global(li) > :global(ol) {
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
|
||||
.compactInlineContent :global(h1),
|
||||
@@ -1064,32 +1172,30 @@
|
||||
:global([class*='alert']:not([class*='alertTitle']):not([class*='alertContent']):not([class*='alertIcon'])),
|
||||
.compactInlineContent :global([class*='blockSpoilerWrapper']) {
|
||||
display: block;
|
||||
margin-left: var(--message-compact-container-margin);
|
||||
margin-inline-start: var(--message-compact-container-margin);
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
.compactInlineContent :global(small:not(.inlineFormat)) {
|
||||
display: block;
|
||||
margin-left: var(--message-compact-container-margin);
|
||||
margin-inline-start: var(--message-compact-container-margin);
|
||||
text-indent: 0;
|
||||
}
|
||||
|
||||
.compactInlineContent :global([class*='blockquoteContainer']) {
|
||||
margin-left: var(--message-compact-container-margin);
|
||||
margin-inline-start: var(--message-compact-container-margin);
|
||||
text-indent: 0;
|
||||
gap: 0.25rem;
|
||||
}
|
||||
|
||||
.compactInlineContent :global([class*='blockquoteDivider']) {
|
||||
margin-right: 0.35rem;
|
||||
margin-inline-end: 0.35rem;
|
||||
}
|
||||
|
||||
.compactInlineContent
|
||||
:global([class*='alert']:not([class*='alertTitle']):not([class*='alertContent']):not([class*='alertIcon'])) {
|
||||
padding-left: 0.75rem;
|
||||
padding-right: 0.75rem;
|
||||
padding-top: 0.35rem;
|
||||
padding-bottom: 0.35rem;
|
||||
padding-inline: 0.75rem;
|
||||
padding-block: 0.35rem;
|
||||
}
|
||||
|
||||
.compactInlineContent :global(.blockquoteContent) {
|
||||
@@ -1101,7 +1207,7 @@
|
||||
}
|
||||
|
||||
.compactInlineContent :global(.blockquoteContent) :global(p) {
|
||||
margin-left: 0;
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
|
||||
.compactInlineContent
|
||||
@@ -1128,26 +1234,30 @@
|
||||
)
|
||||
)
|
||||
~ * {
|
||||
margin-left: var(--message-compact-container-margin);
|
||||
margin-inline-start: var(--message-compact-container-margin);
|
||||
}
|
||||
|
||||
.messageCompact .container {
|
||||
text-indent: 0;
|
||||
margin-left: var(--message-compact-container-margin);
|
||||
margin-inline-start: var(--message-compact-container-margin);
|
||||
}
|
||||
|
||||
.messageCompact .compactContentWrapper:not(:has(.compactInlineContent)) + .container {
|
||||
padding-top: 0;
|
||||
padding-block-start: 0;
|
||||
}
|
||||
|
||||
.messageCompact .systemMessageCompactContent .container {
|
||||
margin-left: calc(var(--message-compact-container-margin) - var(--system-message-icon-size) - 0.5rem);
|
||||
margin-inline-start: calc(var(--message-compact-container-margin) - var(--system-message-icon-size) - 0.5rem);
|
||||
}
|
||||
|
||||
.contextMenuActive {
|
||||
background-color: var(--background-modifier-hover) !important;
|
||||
}
|
||||
|
||||
:global(html.reduced-motion) .contextMenuActive {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.contextMenuActive .buttons {
|
||||
opacity: 1 !important;
|
||||
pointer-events: auto !important;
|
||||
@@ -1164,6 +1274,10 @@
|
||||
}
|
||||
|
||||
.contextMenuActive.messageMentioned {
|
||||
background-color: var(--message-mention-bg-hover) !important;
|
||||
}
|
||||
|
||||
:global(html.reduced-motion) .contextMenuActive.messageMentioned {
|
||||
background-color: var(--message-mention-bg) !important;
|
||||
}
|
||||
|
||||
@@ -1172,6 +1286,11 @@
|
||||
background-color: var(--message-reply-bg) !important;
|
||||
}
|
||||
|
||||
:global(html.reduced-motion) .contextMenuActive.messageReplying,
|
||||
:global(html.reduced-motion) .contextMenuActive.messageHighlight {
|
||||
background-color: var(--message-reply-bg) !important;
|
||||
}
|
||||
|
||||
.keyboardFocused {
|
||||
background-color: var(--background-modifier-hover);
|
||||
}
|
||||
@@ -1225,7 +1344,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--message-container-gap);
|
||||
padding: var(--message-container-gap) 0;
|
||||
padding-block: var(--message-container-gap);
|
||||
color: var(--text-tertiary);
|
||||
font-size: var(--message-timestamp-font-size);
|
||||
}
|
||||
@@ -1250,12 +1369,11 @@
|
||||
}
|
||||
|
||||
.silentMessageIcon {
|
||||
margin-left: 0.25rem;
|
||||
margin-inline-start: 0.25rem;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
color: var(--text-chat-muted);
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
position: relative;
|
||||
top: -1px;
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
@@ -33,18 +33,9 @@ html,
|
||||
line-height: 1.5;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
tab-size: 4;
|
||||
font-family: --theme(
|
||||
--default-font-family,
|
||||
ui-sans-serif,
|
||||
system-ui,
|
||||
sans-serif,
|
||||
'Apple Color Emoji',
|
||||
'Segoe UI Emoji',
|
||||
'Segoe UI Symbol',
|
||||
'Noto Color Emoji'
|
||||
);
|
||||
font-feature-settings: --theme(--default-font-feature-settings, normal);
|
||||
font-variation-settings: --theme(--default-font-variation-settings, normal);
|
||||
font-family: var(--font-sans);
|
||||
font-feature-settings: normal;
|
||||
font-variation-settings: normal;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
|
||||
@@ -69,34 +60,13 @@ h6 {
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
-webkit-text-decoration: inherit;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
code,
|
||||
kbd,
|
||||
samp,
|
||||
pre {
|
||||
font-family: --theme(
|
||||
--default-mono-font-family,
|
||||
ui-monospace,
|
||||
SFMono-Regular,
|
||||
Menlo,
|
||||
Monaco,
|
||||
Consolas,
|
||||
'Liberation Mono',
|
||||
'Courier New',
|
||||
monospace
|
||||
);
|
||||
font-feature-settings: --theme(--default-mono-font-feature-settings, normal);
|
||||
font-variation-settings: --theme(--default-mono-font-variation-settings, normal);
|
||||
font-family: var(--font-mono);
|
||||
font-feature-settings: normal;
|
||||
font-variation-settings: normal;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
@@ -127,7 +97,7 @@ table {
|
||||
}
|
||||
|
||||
:-moz-focusring {
|
||||
outline: auto;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
progress {
|
||||
@@ -157,11 +127,15 @@ object {
|
||||
}
|
||||
|
||||
img,
|
||||
video {
|
||||
video:not([data-embed-media]) {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
img {
|
||||
-webkit-touch-callout: none;
|
||||
}
|
||||
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
|
||||
Reference in New Issue
Block a user