client/src/app/shared/shared-video-playlist/video-playlist-element-miniature.component.scss
@use '_variables' as *;
@use '_mixins' as *;
@use '_miniature' as *;
$thumbnail-width: 130px;
$thumbnail-height: 72px;
my-timestamp-input {
width: 85px;
}
my-video-thumbnail {
@include thumbnail-size-component($thumbnail-width, $thumbnail-height);
}
.fake-thumbnail {
width: $thumbnail-width;
height: $thumbnail-height;
background-color: #ececec;
}
my-video-thumbnail,
.fake-thumbnail {
display: flex; // Avoids an issue with line-height that adds space below the element
@include margin-right(10px);
}
.video {
display: grid;
grid-template-columns: 1fr auto;
background-color: pvar(--mainBackgroundColor);
padding: 10px;
border-bottom: 1px solid $separator-border-color;
&.playing {
background-color: rgba(0, 0, 0, 0.02);
}
a {
color: pvar(--mainForegroundColor);
@include disable-default-a-behaviour;
}
> a {
display: flex;
min-width: 0;
align-items: center;
cursor: pointer;
.position {
font-weight: $font-semibold;
color: pvar(--greyForegroundColor);
min-width: 25px;
my-global-icon {
width: 17px;
position: relative;
left: -2px;
@include apply-svg-color(pvar(--greyForegroundColor));
}
}
}
.more,
my-edit-button {
justify-self: flex-end;
cursor: pointer;
min-width: 24px;
@include margin-left(auto);
}
.more {
display: flex;
align-items: center;
}
.more-button {
opacity: 0;
&::after {
border: 0;
}
my-global-icon {
@include apply-svg-color(pvar(--greyForegroundColor));
}
}
&:hover,
&:focus {
background-color: rgba(0, 0, 0, 0.05);
}
&:hover,
&:focus-within,
.show {
.more-button {
opacity: 1;
}
}
@media not all and (hover: hover) and (pointer: fine) {
.more-button {
opacity: 1 !important;
}
}
}
.video-info-name {
font-size: 18px;
font-weight: $font-semibold;
display: inline-block;
@include ellipsis;
}
.video-info {
display: flex;
flex-direction: column;
align-self: flex-start;
min-width: 0;
.video-info-header {
display: flex;
align-items: baseline;
a {
width: auto;
}
.pt-badge {
margin: 0 5px;
white-space: nowrap;
}
}
.video-info-owner,
.video-info-timestamp {
color: pvar(--greyForegroundColor);
}
}
.video-info-owner,
.video-info-timestamp,
.video-miniature-created-at-views {
font-size: 14px;
}
.dropdown-menu {
.dropdown-item {
cursor: pointer;
@include dropdown-with-icon-item;
}
.timestamp-options {
padding-top: 0;
margin-top: 5px;
margin-bottom: 15px;
@include padding-left(35px);
> div {
display: flex;
align-items: center;
margin-bottom: 5px;
}
my-peertube-checkbox {
@include margin-right(5px);
}
input {
margin-top: 10px;
@include peertube-button;
@include orange-button;
}
}
}
@mixin more-dropdown-control {
.video {
my-edit-button {
display: none;
+ .more-button {
display: inline-flex;
}
}
}
}
@mixin edit-button-control {
.video {
my-edit-button {
display: none;
}
&.playing {
my-edit-button {
display: inline-flex;
height: max-content;
margin: auto;
}
}
my-edit-button + .more-button {
display: none;
}
}
}
@mixin edit-button-in-mobile-view {
.video {
my-edit-button {
::ng-deep .action-button-edit {
padding: 0 13px;
.button-label {
display: none;
}
}
}
}
}
@media screen and (min-width: $small-view) {
:host-context(.expanded) {
@include more-dropdown-control();
}
}
@media screen and (max-width: $small-view) {
:host-context(.expanded) {
@include edit-button-control();
}
}
@media screen and (max-width: $mobile-view) {
:host-context(.expanded) {
@include edit-button-in-mobile-view();
}
}
@media screen and (min-width: #{$small-view + $menu-width}) {
:host-context(.main-col:not(.expanded)) {
@include more-dropdown-control();
}
}
@media screen and (max-width: #{$small-view + $menu-width}) {
:host-context(.main-col:not(.expanded)) {
@include edit-button-control();
}
}
@media screen and (max-width: #{$mobile-view + $menu-width}) {
:host-context(.main-col:not(.expanded)) {
@include edit-button-in-mobile-view();
}
}