scinote-web/app/assets/stylesheets/shared/comments_sidebar.scss
2022-07-25 13:38:36 +02:00

304 lines
5.7 KiB
SCSS

// scss-lint:disable SelectorDepth NestingDepth
.comments-sidebar {
--comments-sidebar-width: 280px;
animation-timing-function: $timing-function-sharp;
height: calc(100vh - var(--navbar-height));
position: fixed;
right: 0;
top: var(--navbar-height);
transition: width .3s;
width: 0;
z-index: 1000;
&.open {
width: var(--comments-sidebar-width);
}
.sidebar-content {
background: $color-concrete;
border-left: 1px solid $color-white;
display: flex;
flex-direction: column;
height: 100%;
position: relative;
width: var(--comments-sidebar-width);
.sidebar-header {
align-items: center;
border-bottom: $border-default;
display: flex;
flex-basis: 5em;
flex-shrink: 0;
flex-wrap: wrap;
padding: 1em;
.comments-subject-title {
@include font-h3;
flex-basis: calc(100% - 36px);
flex-grow: 1;
height: 2em;
line-height: 2em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.comments-subject-url {
flex-basis: 100%;
}
.close-btn {
flex-shrink: 0;
}
}
.sidebar-body {
flex-basis: calc(100% - 10em);
flex-grow: 1;
overflow: auto;
padding: 1em;
.no-comments-placeholder {
display: none;
padding: 1em;
.no-comments-image {
display: block;
margin: 0 auto;
}
.description {
@include font-main;
color: $color-silver-chalice;
}
}
.comments-list:empty + .no-comments-placeholder {
display: block;
}
}
.sidebar-footer {
border-top: $border-default;
flex-basis: 5em;
flex-grow: 1;
flex-shrink: 0;
padding: 1em;
.comment-input-container {
background: $color-white;
border-radius: $border-radius-tag;
padding-right: 2.5em;
position: relative;
.comment-input-field {
animation-timing-function: $timing-function-sharp;
border: 0;
display: block;
line-height: 1.25em;
max-height: 160px;
outline: none;
padding: .5em;
transition: height .3s;
width: 100%;
}
.send-comment {
color: $brand-primary;
cursor: pointer;
display: inline-block;
line-height: 2.5em;
position: absolute;
right: 0;
text-align: center;
top: 0;
width: 2.5em;
}
}
.update-buttons {
display: none;
margin-top: .5em;
}
.error-container {
@include font-small;
color: $brand-danger;
}
&.update {
.update-buttons {
display: block;
}
}
}
}
.comment-container {
margin: 0 1em .25em 0;
.comment-header {
align-items: center;
display: flex;
margin-bottom: .5em;
margin-top: 2em;
min-height: 1.75em;
.user-name {
margin: 0 .5em;
order: 2;
}
.user-avatar {
border-radius: 50%;
max-width: 1.75em;
}
}
.comment-body {
background: $color-white;
border-radius: $border-radius-default;
.comment-message {
@include font-main;
color: $color-volcano;
padding: .5em 1em;
}
}
.comment-footer {
align-items: center;
display: flex;
padding: 0 1em .5em;
.comment-menu-container {
margin-left: auto;
.open-dropdown-btn {
cursor: pointer;
line-height: 2em;
text-align: center;
width: 2em;
}
.comment-dropdown-menu {
@include font-button;
a {
padding: .5em 1em;
}
.fas {
margin-right: .5em;
}
}
}
.comment-create-date {
@include font-small;
color: $color-volcano;
opacity: .5;
}
}
&.current-user {
margin: 0 0 .25em 1em;
.comment-body {
background: $color-alto;
}
.comment-header {
justify-content: flex-end;
.user-avatar {
border-radius: 50%;
order: 3;
overflow: hidden;
}
}
}
}
.loading-placeholder {
display: none;
@mixin placeholder-avatar {
@include pulse-animation;
background: $color-alto;
border-radius: 50%;
content: "";
display: inline-block;
height: 1.5em;
width: 1.5em;
}
@mixin placeholder-name {
@include pulse-animation;
background: $color-alto;
content: "";
display: inline-block;
height: 1em;
margin: .25em;
width: 6em;
}
.comment-placeholder {
padding-bottom: 1em;
.comment-body-placeholder {
@include pulse-animation;
background: $color-alto;
height: 5em;
}
&.left {
margin-right: 1em;
.comment-user-placeholder {
&::before {
@include placeholder-avatar;
}
&::after {
@include placeholder-name;
}
}
}
&.right {
margin-left: 1em;
.comment-user-placeholder {
text-align: right;
&::before {
@include placeholder-name;
}
&::after {
@include placeholder-avatar;
}
}
}
}
}
&.loading {
.comments-subject-title {
@include pulse-animation;
background: $color-alto;
}
.loading-placeholder {
display: initial;
}
.sidebar-body {
.comments-list:empty + .no-comments-placeholder {
display: none;
}
}
}
}