webapp/src/components/Article/Comment.module.scss
Igor Lobanov 75c3d5faea
expo pages (#111)
* layout pages

* lint

* code review, lint, build fix

* lint
2023-06-16 16:47:24 +02:00

240 lines
3.7 KiB
SCSS

.comment {
margin: 0.5em 0;
padding: 1rem;
transition: background-color 0.3s;
position: relative;
list-style: none;
&.isNew {
border-radius: 6px;
background: rgb(38 56 217 / 5%);
}
@include media-breakpoint-down(sm) {
margin-right: -1.2rem;
}
.comment {
&::before,
&::after {
content: '';
left: 0;
position: absolute;
}
&::before {
border-bottom: 2px solid #ccc;
border-left: 2px solid #ccc;
border-radius: 0 0 0 1.2rem;
top: -1rem;
height: 2.4rem;
width: 1.2rem;
}
&::after {
background: #ccc;
height: 100%;
top: 0;
width: 2px;
}
&:last-child::after {
display: none;
}
}
.shout-body {
@include font-size(1.5rem);
margin-bottom: 1em;
*:last-child {
margin-bottom: 0;
}
}
.author {
align-items: center;
margin-bottom: 1.4rem;
}
}
.commentContent {
&:hover {
.commentControlReply,
.commentControlShare,
.commentControlDelete,
.commentControlEdit,
.commentControlComplain {
opacity: 1;
}
}
}
.commentControls {
@include font-size(1.2rem);
margin-bottom: 0.5em;
}
.commentControlReply,
.commentControlShare,
.commentControlDelete,
.commentControlEdit,
.commentControlComplain {
@include media-breakpoint-up(md) {
// opacity: 0;
transition: opacity 0.3s;
}
}
.commentControlReply,
.commentControlShare,
.commentControlDelete,
.commentControlEdit {
.icon {
line-height: 1.2;
width: 1.2rem;
}
}
.commentControl {
border: none;
color: #696969;
cursor: pointer;
display: inline-flex;
line-height: 1.2;
margin-right: 0.8rem;
padding: 0.2em 0.3em;
transition: opacity 0.2s, color 0.3s, background-color 0.3s;
vertical-align: top;
&:hover {
background: #000;
color: #fff;
.icon {
filter: invert(1);
opacity: 1;
}
}
.icon {
filter: invert(0);
margin-right: 0.3em;
opacity: 0.6;
transition: filter 0.3s, opacity 0.2s;
img {
margin-bottom: -0.1em;
}
}
}
.commentControlReply {
.icon {
height: 1.2em;
width: 1.2em;
}
}
.commentBody {
@include font-size(1.5rem);
line-height: 1.47;
blockquote {
margin-left: 0;
padding-left: 10px;
font-style: italic;
font-weight: 400;
color: #9fa1a7;
border-left: 2px solid #696969;
p,
.paragraph {
margin-bottom: 0;
}
}
}
.commentAuthor,
.commentRating {
@include font-size(1.2rem);
}
.articleAuthor {
color: #2638d9;
font-size: 12px;
margin-right: 12px;
}
.articleLink {
@include font-size(1.2rem);
flex: 0 0 50%;
margin-right: 2em;
@include media-breakpoint-down(md) {
margin: 0.3em 0 0.5em;
}
@include media-breakpoint-up(md) {
line-clamp: 1;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
.articleLinkIcon {
display: inline-block;
margin-right: 1em;
vertical-align: middle;
width: 1em;
}
.commentDates {
flex: 1;
display: flex;
gap: 1rem;
align-items: center;
justify-content: flex-start;
font-size: 1.2rem;
margin: 0 1em 4px 0;
color: rgb(0 0 0 / 30%);
@include font-size(1.2rem);
.date {
.icon {
line-height: 1;
width: 1rem;
display: inline-block;
opacity: 0.6;
margin-right: 0.5rem;
vertical-align: middle;
}
}
}
.commentDetails {
padding: 1rem 0.2rem 0;
margin-bottom: 1.2rem;
@include media-breakpoint-up(md) {
align-items: start;
display: flex;
}
}
.compactUserpic {
height: 28px;
width: 28px;
min-width: 28px;
display: inline-block;
vertical-align: bottom;
}