lbry-desktop/ui/scss/component/_channel.scss
2020-04-21 10:34:16 -04:00

203 lines
4.2 KiB
SCSS

$cover-z-index: 0;
$metadata-z-index: 1;
.channel-cover {
position: relative;
background-image: linear-gradient(to right, #637ad2, #318794 80%);
display: flex;
align-items: flex-end;
box-sizing: content-box;
color: #fff;
}
.channel-cover__custom {
z-index: $cover-z-index;
align-self: flex-start;
position: absolute;
object-fit: cover;
filter: brightness(30%);
}
.channel-cover,
.channel-cover__custom {
min-height: var(--cover-photo-height);
width: 100%;
border-top-left-radius: var(--card-radius);
border-top-right-radius: var(--card-radius);
@media (max-width: $breakpoint-small) {
// Yikes
// I, Sean Yesmunt, take full responsibility for this monster
min-height: calc(var(--cover-photo-height) + 2 * var(--spacing-xlarge) + var(--spacing-medium));
}
}
.channel-thumbnail {
display: flex;
height: 5rem;
width: 5rem;
background-size: cover;
margin-right: var(--spacing-medium);
}
.channel-thumbnail--small {
height: 3rem;
width: 3rem;
}
.channel__thumbnail--channel-page {
position: absolute;
height: var(--channel-thumbnail-width);
width: var(--channel-thumbnail-width);
left: var(--spacing-medium);
top: 4rem;
margin-top: var(--spacing-large);
box-shadow: var(--card-box-shadow);
@media (max-width: $breakpoint-small) {
display: none;
}
}
.channel-thumbnail__custom {
width: 100%;
object-fit: cover;
}
.channel-thumbnail__default {
width: 80%;
height: 80%;
margin-left: auto;
margin-right: auto;
align-self: flex-end;
}
.channel-thumbnail,
.channel-thumbnail__custom {
border-radius: var(--card-radius);
}
.channel-thumbnail__default--0 {
background-color: #748ffc;
}
.channel-thumbnail__default--1 {
background-color: #ffa855;
}
.channel-thumbnail__default--2 {
background-color: #339af0;
}
.channel-thumbnail__default--3 {
background-color: #ec8383;
}
.channel-thumbnail__default--4 {
background-color: #ccc;
}
.channel__primary-info {
// Ensure the profile pic/title sit ontop of the default cover background
z-index: $metadata-z-index;
// Jump over the thumbnail photo because it is absolutely positioned
// Then add normal page spacing, _then_ add the actual padding
padding-left: calc(var(--channel-thumbnail-width) + var(--spacing-large));
padding-right: var(--spacing-medium);
padding-bottom: var(--spacing-medium);
margin-top: var(--spacing-xlarge);
min-width: 0;
width: 100%;
@media (max-width: $breakpoint-small) {
padding-left: var(--spacing-medium);
margin-top: 0;
}
}
.channel__title {
display: inline;
margin-right: var(--spacing-small);
overflow: hidden;
text-overflow: ellipsis;
font-size: xx-large;
font-weight: var(--font-weight-bold);
// Quick hack to get this to work
// We should have a generic style for "header with button next to it"
.button {
margin-left: var(--spacing-medium);
}
@media (max-width: $breakpoint-small) {
padding-top: var(--spacing-xlarge);
}
}
.channel__meta {
display: flex;
justify-content: space-between;
}
.channel__image--blurred {
filter: blur(16px);
}
.channel__quick-actions {
display: flex;
flex-direction: row;
margin-top: var(--spacing-small);
margin-left: var(--spacing-medium);
position: absolute;
top: 0;
right: var(--spacing-medium);
margin-top: var(--spacing-medium);
z-index: $metadata-z-index;
flex-wrap: wrap;
font-size: var(--font-base);
> * {
padding: 0 var(--spacing-xsmall);
&:not(:last-child) {
margin-right: var(--spacing-medium);
}
}
@media (max-width: $breakpoint-small) {
> * {
margin-bottom: var(--spacing-xsmall);
}
}
}
.channel-name--inline {
margin-left: var(--spacing-xsmall);
}
.channel__list-item {
display: flex;
align-items: center;
background-color: var(--color-card-background);
padding: var(--spacing-small);
border-bottom: 1px solid var(--color-border);
.channel-thumbnail {
height: 2rem;
width: 2rem;
}
.icon {
margin-left: var(--spacing-large);
margin-right: var(--spacing-small);
}
&:hover {
background-color: var(--color-card-background-highlighted);
}
}
.channel__list-item--selected {
border-radius: var(--border-radius);
border: 1px solid var(--color-border);
}