Files
fizzy/app/assets/stylesheets/comments.css
T

180 lines
4.2 KiB
CSS

@layer components {
.comments {
--avatar-size: 2.33em;
--comment-padding-block: var(--block-space-half);
--comment-padding-inline: var(--inline-space-double);
--comment-max: 70ch;
--reaction-size: 1.6875rem;
display: flex;
flex-direction: column;
padding-inline: var(--inline-space);
place-items: center;
text-align: center;
@media (min-width: 160ch) {
padding-inline: var(--tray-size);
}
}
.comments__subscribers {
max-inline-size: var(--comment-max);
padding-inline: calc(var(--comment-padding-block) + var(--inline-space-double));
}
.comment {
display: flex;
margin-inline: auto;
max-inline-size: var(--comment-max);
position: relative;
house-md-toolbar {
margin-block-start: calc(var(--comment-padding-block) * -0.5);
}
.house-md-content {
padding: var(--comment-padding-block) 0 0;
}
}
.comment__author {
.btn {
font-weight: inherit;
}
}
.comment__avatar {
margin: calc(var(--comment-padding-block) * 0.75) calc(var(--comment-padding-inline) * -0.75);
z-index: 0;
}
.comment__body {
text-align: start;
.action-text-content {
> action-text-attachment:first-child figure {
margin-block-start: 0.5ch;
}
> :last-child {
margin-block-end: 0;
}
}
&:not:has(lexxy-editor) {
padding-inline-end: var(--reaction-size);
}
}
.comment__content {
--btn-icon-size: 1.2rem;
--btn-size: var(--reaction-size);
--comment-bg-color: var(--color-ink-lightest);
--lexxy-bg-color: var(--comment-bg-color);
background-color: var(--comment-bg-color);
border-radius: 0.2em;
padding:
var(--comment-padding-block)
calc(var(--comment-padding-inline) / 2)
calc(var(--comment-padding-block) * 1.5)
var(--comment-padding-inline);
word-wrap: break-word;
}
.comment__edit {
background-color: var(--color-ink-lightest);
}
.comment__history {
background-color: var(--color-ink-lightest);
display: none;
inset: calc(var(--comment-padding-inline) / 2.5) calc(var(--comment-padding-inline) / 1.5) auto auto; margin-inline-end: calc(var(--comment-padding-inline) / -2.5);
position: absolute;
}
.comment--system {
--comment-padding-block: var(--block-space-half);
display: none;
max-inline-size: var(--comment-max);
text-align: center;
transition: var(--dialog-duration) allow-discrete;
transition-property: display;
.comments--system-expanded & {
display: flex;
}
&:nth-last-child(1 of &):not(:has(~ * &) *):not(:has(~ &) *):not(:has(~ * &)):not(:has(&)) {
/* This unholy selector targets the last system comment in the document */
/* Hat-tip, https://css-tip.com/last-element-dom/ */
display: flex;
.comment__history {
display: grid;
}
}
&:nth-child(1 of &):not(:has(&) ~ * *):not(:has(&) ~ *):not(& ~ * *):not(& *) {
/* Targets the first system comment in the document to effectively */
/* hide the "Show history" button if there's only one entry */
.comment__history {
display: none;
}
}
&::before {
/* Make up space for lack of avatar */
content: "";
display: flex;
inline-size: calc(var(--comment-padding-inline) * 0.75);
}
.comment__avatar {
display: none;
}
.comment__author {
a {
margin: 0 auto;
}
h3 {
margin-inline: auto;
}
strong {
display: none;
}
}
.comment__body {
padding: 0;
text-align: center;
}
.comment__content {
--stripe-color: var(--color-ink-lightest);
background-image: repeating-linear-gradient(
45deg in srgb,
var(--color-canvas) 0 1px,
var(--stripe-color) 1px 10px);
padding-inline: var(--comment-padding-inline);
.comments--system-expanded .comment--system & {
--stripe-color: color-mix(in srgb, var(--card-color) 10%, var(--color-canvas));
}
.comment__history {
background-color: var(--stripe-color);
}
}
.reactions {
display: none !important;
}
}
}