lbry-desktop/src/renderer/scss/component/_media.scss

723 lines
13 KiB
SCSS
Raw Normal View History

// M E D I A
// L A R G E
.media--large {
display: flex;
font-size: 1.5rem;
.media__actions .btn__content {
svg {
width: 1.5rem;
height: 100%;
}
}
.media__info {
margin-left: var(--spacing-vertical-large);
width: calc(100% - 20rem);
}
.media__thumb {
margin-bottom: var(--spacing-vertical-medium);
width: 40rem;
}
// Titles need adjusted styles at different
// screen widths
.media__title {
@media (min-width: 601px) {
font-size: 2.15rem;
line-height: 1.33;
margin-bottom: 0.25rem;
}
@media (max-width: 600px) {
margin-bottom: var(--spacing-vertical-small);
}
}
}
// M E D I A
// P L A C E H O L D E R
.media--placeholder {
.media__channel,
.media__date,
.media__title,
.media__properties {
min-height: 1rem;
}
// Margins for channel name and titles need to be adjusted
// for smaller screen widths
.media__channel,
.media__title {
@media (min-width: 601px) {
margin-bottom: var(--spacing-vertical-small);
}
}
.media__channel {
width: 70%;
@media (max-width: 600px) {
margin-bottom: var(--spacing-vertical-small);
}
}
.media__date {
width: 30%;
}
.media__title {
width: 100%;
}
}
// M E D I A
// P E N D I N G
.media--pending {
opacity: 0.5;
&:hover {
cursor: default;
}
}
// M E D I A
// S E A R C H R E S U L T
.media--search-result {
display: flex;
&:not(:last-of-type) {
margin-bottom: var(--spacing-vertical-large);
}
.media__actions .btn__content {
display: inline-flex;
.btn__label {
margin-left: var(--spacing-vertical-small);
}
}
.media__info {
margin-left: var(--spacing-vertical-medium);
width: calc(100% - 20rem);
}
.media__properties {
bottom: -5.5rem;
left: -20rem;
position: absolute;
}
.media__subtext {
padding-top: var(--spacing-vertical-medium);
}
.media__thumb {
width: 20rem;
}
.media__title {
font-size: 1.5rem;
}
}
// M E D I A
// S M A L L
.media--small {
display: flex;
justify-content: space-between;
&:not(:last-of-type) {
margin-bottom: var(--spacing-vertical-medium);
}
.media__info {
padding-left: var(--spacing-vertical-medium);
width: 50%;
}
.media__properties {
bottom: -1.5rem;
left: calc(-100% - 1.5rem);
position: absolute;
}
.media__thumb {
width: 50%;
}
.media__title {
line-height: 1.33;
height: 3rem;
}
}
// M E D I A
// A C T I O N S
.media__actions {
display: flex;
flex-wrap: wrap;
padding-top: var(--spacing-vertical-large);
padding-bottom: var(--spacing-vertical-large);
}
.media__actions--between {
justify-content: space-between;
}
.media__action-group {
> *:not(:last-child) {
margin-right: var(--spacing-vertical-large);
}
}
.media__action-group--large {
display: flex;
> * {
font-size: 1.15rem;
&:not(:last-child) {
margin-right: var(--spacing-vertical-large);
}
.btn__content {
display: inline-flex;
}
.btn__label {
margin-left: var(--spacing-vertical-small);
}
svg {
width: 1.5rem;
height: 1.5rem;
}
}
.btn--alt {
padding-top: 2px;
.btn__label {
padding-top: 1px;
}
}
}
// M E D I A
// C H A N N E L
.media__channel--placeholder {
@include placeholder;
}
// M E D I A
// C O N T E N T
.media__content--large {
float: left;
padding-right: var(--spacing-vertical-large);
width: calc(100% - 30rem);
}
// M E D I A
// D A T E
.media__date {
font-size: 1rem;
}
.media__date--placeholder {
@include placeholder;
}
// M E D I A
// I N F O
.media__info {
word-wrap: break-word;
html[data-theme='dark'] & {
border-color: rgba($lbry-gray-5, 0.2);
}
}
.media__info--large {
border-top: 1px solid $lbry-gray-1;
padding-top: var(--spacing-vertical-medium);
html[data-theme='dark'] & {
border-color: rgba($lbry-gray-5, 0.2);
}
}
.media__info-text {
font-size: 1.15rem;
&:not(:last-of-type) {
margin-bottom: var(--spacing-vertical-large);
}
&.media__info-text--center {
text-align: center;
}
}
.media__info-title {
font-size: 1.25rem;
font-weight: 500;
margin-bottom: var(--spacing-vertical-small);
}
// M E D I A
// M E S S A G E
.media__message {
font-size: 0.9rem;
padding: var(--spacing-vertical-medium);
white-space: normal;
}
.media__message--help {
background-color: $lbry-yellow-3;
margin: var(--spacing-vertical-medium) var(--spacing-vertical-large);
html[data-theme='dark'] & {
background-color: $lbry-yellow-4;
color: $lbry-black;
}
}
// M E D I A
// P R O P E R T I E S
.media__properties {
display: inline-block;
vertical-align: top;
> *:not(:last-child) {
margin-right: var(--spacing-vertical-small);
}
&:not(.media__properties--large) {
height: 2rem;
.badge {
position: relative;
top: 0.2rem;
}
}
svg {
height: 100%;
}
}
.media__properties--large {
.badge {
align-items: center;
position: relative;
top: 0.15rem;
> *:not(:last-child) {
margin-right: var(--spacing-vertical-small);
}
}
&:not(:empty) {
height: 2.55rem;
margin-bottom: var(--spacing-vertical-small);
padding-top: var(--spacing-vertical-miniscule);
padding-left: var(--spacing-vertical-small);
}
}
.media__properties--placeholder {
@include placeholder;
}
// M E D I A
// S U B T I T L E
.media__subtitle {
font-size: 1rem;
position: relative;
}
.media__subtitle--large {
display: block;
> button {
display: block;
}
}
.media__subtitle__channel {
font-size: 1.25rem;
font-weight: 600;
}
// M E D I A
// T E X T
.media__text {
font-size: 2.5rem;
html[data-theme='dark'] & {
color: $lbry-white;
}
}
// M E D I A
// T H U M B
.media__thumb {
@include thumbnail;
&:not(.media__thumb--nsfw):not(.media__thumb--placeholder) {
2019-01-08 17:58:05 +01:00
background-color: $lbry-gray-2;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
2019-01-08 17:58:05 +01:00
html[data-theme='dark'] & {
background-color: rgba($lbry-white, 0.1);
}
}
}
.media__thumb--nsfw {
background-color: $lbry-grape-5;
background-image: linear-gradient(to bottom right, $lbry-teal-3, $lbry-grape-5 100%);
}
.media__thumb--placeholder {
@include placeholder;
}
// M E D I A
// T I T L E
.media__title {
font-weight: 600;
white-space: normal;
}
.media__title--large {
cursor: default;
display: inline;
font-size: 2rem;
line-height: 1.33;
}
.media__title--placeholder {
@include placeholder;
}
// M E D I A
// G R O U P
.media-group--list {
.card__list {
padding-top: var(--spacing-vertical-large);
padding-bottom: var(--spacing-vertical-large);
// Depending on screen width, the amount of items in
// each row change and are auto-sized
@media (min-width: 2001px) {
grid-template-columns: repeat(auto-fill, minmax(calc(100% / 10), 1fr));
}
@media (min-width: 1801px) and (max-width: 2000px) {
grid-template-columns: repeat(auto-fill, minmax(calc(100% / 8), 1fr));
}
@media (min-width: 1551px) and (max-width: 1800px) {
grid-template-columns: repeat(auto-fill, minmax(calc(100% / 7), 1fr));
}
@media (min-width: 1051px) and (max-width: 1550px) {
grid-template-columns: repeat(auto-fill, minmax(calc(100% / 6), 1fr));
}
@media (min-width: 901px) and (max-width: 1050px) {
grid-template-columns: repeat(auto-fill, minmax(calc(100% / 5), 1fr));
}
@media (min-width: 751px) and (max-width: 900px) {
grid-template-columns: repeat(auto-fill, minmax(calc(100% / 4), 1fr));
}
@media (max-width: 750px) {
grid-template-columns: repeat(auto-fill, minmax(calc(100% / 3), 1fr));
}
}
.media-card {
display: inline-block;
margin-bottom: var(--spacing-vertical-large);
vertical-align: top;
width: 100%;
}
.media__thumb {
margin-bottom: var(--spacing-vertical-medium);
}
// Titles need adjusting at different screen widths
.media__title {
@media (min-width: 601px) {
font-size: 1.15rem;
height: 4rem;
line-height: 1.33;
}
@media (max-width: 600px) {
height: 3rem;
margin-bottom: var(--spacing-vertical-small);
}
}
}
.media-group--list-recommended {
border-left: 1px solid $lbry-gray-1;
float: right;
min-height: 50vh;
overflow: hidden;
padding-left: var(--spacing-vertical-large);
width: 30rem;
html[data-theme='dark'] & {
border-color: rgba($lbry-gray-5, 0.2);
}
> span {
border-bottom: 1px solid $lbry-gray-1;
display: block;
font-size: 1.25rem;
font-weight: 500;
justify-content: space-between;
margin-bottom: var(--spacing-vertical-large);
padding-top: var(--spacing-vertical-small);
padding-bottom: var(--spacing-vertical-medium);
html[data-theme='dark'] & {
border-color: rgba($lbry-gray-5, 0.2);
}
}
}
.media-group--row {
padding-top: var(--spacing-vertical-large);
white-space: nowrap;
width: 100%;
html[data-theme='dark'] & {
color: mix($lbry-white, $lbry-gray-3, 50%);
}
&:first-of-type {
background-image: linear-gradient(to bottom right, $lbry-black, $lbry-cyan-5 80%);
color: $lbry-white;
html[data-theme='dark'] & {
background-image: linear-gradient(
to bottom right,
transparent,
rgba(mix($lbry-blue-3, $lbry-black, 70%), 0.8) 100%
);
}
.media-group__header-title {
background-image: linear-gradient(to right, $lbry-white 80%, transparent 100%);
}
.channel-info__actions {
color: $lbry-white;
}
}
&:not(:first-of-type):not(:last-of-type) {
border-bottom: 1px solid rgba($lbry-gray-1, 0.7);
html[data-theme='dark'] & {
border-color: rgba($lbry-gray-5, 0.2);
}
}
&:not(:first-of-type) {
.media-group__header-title {
background-image: linear-gradient(to right, $lbry-black 80%, transparent 100%);
}
.channel-info__actions {
color: initial;
}
}
.media-group__header {
flex-direction: row;
padding-left: var(--spacing-vertical-large);
}
.media-group__header-title {
color: transparent;
// !exist unprefixed, needs SVG for LBRY web
-webkit-background-clip: text;
html[data-theme='dark'] & {
background-image: linear-gradient(
to right,
mix($lbry-white, $lbry-gray-3, 50%) 80%,
transparent 100%
);
}
}
.media__thumb {
margin-bottom: var(--spacing-vertical-medium);
}
}
// M E D I A G R O U P
// H E A D E R
.media-group__header {
display: flex;
font-weight: 700;
justify-content: space-between;
}
.media-group__header-navigation {
display: flex;
padding-right: var(--spacing-vertical-medium);
button:not(:last-of-type) {
margin-right: var(--spacing-vertical-tiny);
}
svg {
display: block;
}
}
.media-group__header-title {
align-items: center;
cursor: default;
display: flex;
font-weight: 700;
line-height: 1.33;
width: calc(100% - 6rem); // to not cover the navigation
// Title needs adjusting depending on screen width
@media (min-width: 601px) {
font-size: 2rem;
}
@media (max-width: 600px) {
font-size: 1.75rem;
}
.channel-info__actions__group {
button:first-of-type {
font-size: 2rem;
.btn__label {
margin: 0;
}
}
button:last-of-type {
font-weight: normal;
}
}
}
// M E D I A
// S C R O L L H O U S E
.media-scrollhouse {
min-height: 200px;
padding-bottom: var(--spacing-vertical-large);
// Show the scroll bar on hover
// `overlay` doesn't take up any vertical space
overflow-x: hidden;
overflow-y: hidden;
&:hover {
overflow-x: overlay;
}
// The media queries in this block ensure that a row of
// content and its' child elements look good at certain breakpoints
@media (min-width: 601px) {
padding-top: var(--spacing-vertical-small);
}
@media (max-width: 600px) {
padding-top: var(--spacing-vertical-medium);
}
.media-card {
cursor: pointer;
display: inline-block;
max-width: 250px;
min-width: 150px;
overflow-y: visible;
vertical-align: top;
@media (min-width: 601px) {
width: calc((100% / 6) - 2.25rem);
margin-left: var(--spacing-vertical-large);
&:last-of-type {
// For some reason margin doesn't work here.
padding-right: var(--spacing-vertical-large);
}
}
// May be needed for mobile design
// @media (max-width: 600px) {
// width: calc((100% / 3) - 3rem);
//
// &:not(:first-of-type) {
// margin-left: var(--spacing-vertical-medium);
// }
//
// &:first-of-type {
// margin-left: var(--spacing-vertical-large);
// }
//
// &:last-of-type {
// margin-right: var(--spacing-vertical-large);
// }
// }
}
.media__title {
@media (min-width: 601px) {
font-size: 1.15rem;
height: 4rem;
line-height: 1.33;
}
@media (max-width: 600px) {
height: 3rem;
margin-bottom: var(--spacing-vertical-small);
}
}
}