1
0
Fork 0
forked from Mirrors/gomuks
nyxmuks/web/src/ui/timeline/TimelineEvent.css

199 lines
2.7 KiB
CSS

div.timeline-event {
width: 100%;
max-width: 100%;
overflow: hidden;
display: grid;
margin-top: .25rem;
grid-template:
"avatar gap sender sender" auto
"avatar gap content status" auto
/ 2.5rem .25rem 1fr 2rem;
&:hover {
background-color: #eee;
}
> div.sender-avatar {
grid-area: avatar;
width: 40px;
height: 40px;
margin-top: 2px;
}
> div.event-sender-and-time {
grid-area: sender;
display: flex;
align-items: center;
gap: .25rem;
> span.event-sender {
font-weight: bold;
}
> span.event-time, > span.event-edited {
font-size: .8rem;
}
}
> div.event-time-only {
grid-area: timestamp;
display: none;
align-items: end;
justify-content: center;
font-size: .8rem;
max-height: 1.25rem;
margin-right: .25rem;
}
> div.event-content {
grid-area: content;
overflow: hidden;
}
> div.event-send-status {
grid-area: status;
display: flex;
justify-content: right;
align-items: end;
max-height: 1.25rem;
> svg {
height: 16px;
}
&.error {
color: red;
}
&.sending, &.sent {
color: #ccc;
}
}
&.same-sender {
grid-template:
"timestamp content status" auto
/ 2.75rem 1fr 2rem;
> div.sender-avatar, > div.event-sender-and-time {
display: none;
}
> div.event-time-only {
display: flex;
}
}
&.hidden-event {
grid-template:
"timestamp avatar content status" auto
/ 2.75rem 1.5rem 1fr 2rem;
margin-top: 0;
> div.sender-avatar {
margin-top: 0;
width: 1.5rem;
height: 1.5rem;
display: flex;
align-items: center;
> img {
width: 1rem;
height: 1rem;
}
}
> div.event-sender-and-time {
display: none;
}
> div.event-time-only {
display: flex;
}
}
}
div.date-separator {
display: flex;
align-items: center;
gap: .5rem;
> hr {
flex: 1;
opacity: .2;
}
}
div.decryption-error-body {
display: flex;
align-items: center;
> svg {
height: 20px;
color: red;
}
}
div.redacted-body, div.decryption-pending-body {
display: flex;
align-items: center;
color: #888;
> svg {
height: 20px;
}
}
div.html-body {
overflow: hidden;
img[data-mx-emoticon] {
vertical-align: middle;
}
span[data-mx-spoiler] {
filter: blur(4px);
transition: filter .5s;
cursor: pointer;
&.spoiler-revealed {
filter: none;
}
&:not(.spoiler-revealed) a {
pointer-events: none;
}
}
blockquote {
border-left: 2px solid #ccc;
padding-left: .5rem;
}
pre {
width: 100%;
max-height: max(50vh, 400px);
overflow: auto;
}
h1, h2, h3, h4, h5, h6 {
margin: 0 0 .5rem;
}
p, ul, ol, dl, table, pre, blockquote {
&:not(:last-child) {
margin: 0 0 .25rem;
}
&:last-child {
margin: 0;
}
}
}
div.media-container {
> img {
max-width: 100%;
max-height: 100%;
}
}