lbry-desktop/ui/scss/component/_media.scss
Rave | 図書館猫 ffdb5abf63
Tile Grid Revamp (#1502)
* Save

* Save

* Add pulse

* Adjust footer ad

* Adjust tile ad

* Adjust tile ad hover

* Fix premium badge alignment in tile grid

* Adjust livestream icon

* Adjust livestream icon

* Save scheduled livestreasm & tile ad

* Fix scheduled callback

* Fix playlist icon size on file page

* Fix grid distortion in 3 & 4 column layout

* -

* Fix grid on category & channel page

* Fix Premium Plus Grid

* Add custom tile for adblockers

* Reset env

* Remove collapsed tiles

* Remove setLoaded on scheduled livestreams page

* -

* Make isHidden optional

* Remove px

* Review adjustments

* Inject Premium+ ads

* Fix injection

* Fix injection when using the last tile

* Fix injection when using the last tile

* Enable stripe dev

* Create PremiumPlusTile component and add list view design

* Create PremiumPlusTile component and add list view design

* Adjust ads in list view

* Remove setState from render loop

* Clean code

* Fix livestream margin in list view

* Rewrite & tune some logic - Homepage & Channel page

* Clean details...

* Clean details...

* Requested review changes

Signed-off-by: Raphael Wickihalder <raphael.wickihalder@odysee.com>

* Requested review changes

Signed-off-by: Raphael Wickihalder <raphael.wickihalder@odysee.com>
2022-05-18 13:16:35 +02:00

331 lines
6.4 KiB
SCSS

// M E D I A
// T H U M B
.media__thumb {
@include thumbnail;
position: relative;
border-radius: var(--border-radius-thumbnail);
object-fit: cover;
background-color: var(--color-placeholder-background);
background-position: center;
background-repeat: no-repeat;
background-size: cover;
box-shadow: 0 0 0 1px rgba(var(--color-primary-dynamic), 0.1) inset;
}
// M E D I A
// T I T L E
.media__uri {
position: absolute;
transform: translateY(-130%);
display: flex;
font-size: var(--font-xsmall);
color: var(--color-text-subtitle);
font-weight: var(--font-weight-base);
@media (max-width: $breakpoint-small) {
position: static;
transform: none;
margin-bottom: var(--spacing-xs);
max-width: 100%;
white-space: nowrap;
}
}
// M E D I A
// S U B T I T L E
.media__subtitle {
align-self: flex-start;
color: var(--color-text-subtitle);
font-size: var(--font-small);
}
.media__subtitle--centered {
@extend .media__subtitle;
align-self: auto;
align-items: center;
display: flex;
.media__subtitle--centered::before {
content: '';
margin-right: var(--spacing-s);
}
}
.media__subtitle--between {
@extend .media__subtitle;
display: flex;
justify-content: space-between;
align-items: flex-end;
flex-direction: row;
flex-wrap: wrap;
@media (max-width: $breakpoint-medium) {
display: block;
}
}
.media__info-text {
word-break: break-word;
&:not(:last-of-type) {
margin-bottom: var(--spacing-m);
}
&.media__info-text--constrained {
max-width: 50rem;
font-size: var(--font-small);
}
}
.media__info-text--contracted {
margin-top: var(--spacing-m);
max-height: 5rem;
overflow: hidden;
font-size: var(--font-small);
}
.media__info-text--expanded {
margin-top: var(--spacing-m);
max-height: auto;
font-size: var(--font-small);
}
.media__info-text--contracted,
.media__info-text--expanded {
margin-top: var(--spacing-m);
max-width: 50rem;
max-height: auto;
@media (max-width: $breakpoint-small) {
margin-top: 0px;
}
}
.media__info-text--contracted {
@extend .media__info-text--expanded;
overflow: hidden;
.mediaInfo__description {
max-height: 5rem;
}
}
@media (max-width: $breakpoint-small) {
.mediaInfo__description {
margin-top: var(--spacing-s);
}
}
.media__info-text--fade {
// -webkit-mask-image: -webkit-gradient(linear, left 30%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));
overflow-wrap: anywhere;
// both needed for compatibility
-webkit-mask-image: -webkit-gradient(linear, left 55%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));
mask-image: -webkit-gradient(linear, left 55%, left bottom, from(rgba(0, 0, 0, 1)), to(rgba(0, 0, 0, 0)));
}
.media__info-expand {
margin-top: var(--spacing-s);
}
.media__info-text-preview {
@extend .media__info-text;
max-height: 5rem;
overflow: auto;
padding: var(--spacing-xxs) 0; // for scrollbar to auto-hide
}
.media__actions {
@include font-sans;
position: relative;
display: flex;
// flex-wrap: wrap;
margin-top: 0;
> *:not(:last-child) {
margin-right: var(--spacing-m);
}
.button--file-action {
background-color: unset;
}
.button {
&:hover {
color: var(--color-link);
.icon {
stroke: var(--color-link);
}
}
}
.button-like {
&:hover {
.button__label {
color: var(--color-fire) !important;
}
svg {
stroke: var(--color-fire);
}
}
}
.button-dislike {
&:hover {
.button__label {
color: var(--color-slime) !important;
}
svg {
stroke: var(--color-slime);
}
}
}
.ratio-wrapper {
position: relative;
width: 100%;
max-width: 164px;
min-width: 134px;
margin-right: var(--spacing-m);
.ratio-bar {
position: absolute;
display: flex;
left: 0px;
bottom: -2px;
width: 100%;
height: 3px;
background-color: var(--color-text);
z-index: 2;
border-radius: 2px;
overflow: hidden;
.ratio-bar-like {
height: 100%;
background-color: var(--color-fire);
}
.ratio-bar-dislike {
height: 100%;
background-color: var(--color-slime);
}
}
.button-dislike {
margin-right: 0px;
float: right;
}
@media (max-width: $breakpoint-small) {
max-width: unset;
min-width: unset;
margin-right: 0px;
.ratio-bar {
height: 1px;
bottom: -1px;
}
}
}
@media (max-width: $breakpoint-small) {
flex-wrap: wrap;
justify-content: space-around !important;
margin: 0;
padding: 0;
> * {
margin-right: var(--spacing-s);
margin-bottom: var(--spacing-s);
}
.button--file-action {
padding: 0 !important;
.button__content {
justify-content: space-between;
.button__label {
margin: 0;
margin-top: 1px;
margin-left: var(--spacing-xxxs);
font-size: var(--font-small);
}
}
}
.button--file-action--menu {
width: unset;
// height: 2rem;
}
.icon--Plus {
top: -2px;
}
.button--file-action:last-child {
margin-right: 0;
}
.button--file-action {
display: flex;
background-color: rgba(var(--color-header-background-base), 1);
margin-right: var(--spacing-xxxs);
justify-content: center;
align-items: center;
margin-bottom: var(--spacing-xxs);
.button__label {
margin-left: var(--spacing-xxxs);
}
}
.ratio-wrapper {
.button {
display: inline-block;
background-color: unset;
margin-bottom: 0;
}
}
.ratio-wrapper ~ .button--file-action {
flex: auto;
}
&.stretch {
margin-top: var(--spacing-xxxs);
.button {
flex: auto;
background-color: var(--color-header-background);
margin-right: var(--spacing-xxs);
.button__content {
justify-content: center;
}
}
.section {
margin-right: unset;
margin-left: var(--spacing-xxs);
.button {
margin-right: 0;
}
}
}
}
}
.media__details {
@extend .help;
font-size: var(--font-xxsmall);
display: flex;
flex-direction: column;
margin-bottom: var(--spacing-s);
color: var(--color-text);
&:not(:last-child) {
margin-bottom: var(--spacing-s);
}
}