mirror of
https://git.sr.ht/~cadence/cloudtube
synced 2024-11-14 12:27:28 +00:00
208 lines
3.8 KiB
Sass
208 lines
3.8 KiB
Sass
$_theme: () !default
|
|
|
|
@use "sass:map"
|
|
@use "_dimensions" as dimensions
|
|
|
|
// navigator hacks
|
|
.thumbnail > .thumbnail__options-container
|
|
float: right
|
|
|
|
.thumbnail
|
|
$more-size: 24px
|
|
|
|
&__more
|
|
position: absolute
|
|
top: 4px
|
|
right: 4px
|
|
width: $more-size
|
|
height: $more-size
|
|
border-radius: 50%
|
|
background-color: rgba(20, 20, 20, 0.85)
|
|
padding: 0px
|
|
color: #fff
|
|
|
|
visibility: hidden
|
|
|
|
@at-root .thumbnail:hover &, body.show-focus &
|
|
visibility: visible
|
|
|
|
&[open]
|
|
visibility: visible
|
|
|
|
&__show-more
|
|
display: block
|
|
height: $more-size
|
|
color: #fff
|
|
line-height: 16px
|
|
font-size: 25px
|
|
text-align: center
|
|
|
|
&::-webkit-details-marker
|
|
display: none
|
|
|
|
// "&__more" is needed for navigator hacks
|
|
&__more &__options-container
|
|
position: absolute
|
|
z-index: 1
|
|
top: $more-size
|
|
left: -1000px
|
|
right: 0
|
|
padding-top: 4px
|
|
display: flex
|
|
justify-content: flex-end
|
|
pointer-events: none
|
|
|
|
&__options-list
|
|
pointer-events: auto
|
|
display: grid
|
|
background-color: map.get($_theme, "bg-3")
|
|
padding: 8px 0px
|
|
border-radius: 8px
|
|
box-shadow: 0 2px 6px 2px #000
|
|
|
|
&::before
|
|
content: ""
|
|
display: block
|
|
height: 12px
|
|
width: 12px
|
|
position: absolute
|
|
top: 0
|
|
right: 0
|
|
transform: translate(-6px, -1px) rotate(-45deg)
|
|
clip-path: polygon(-5% -20%, 120% -20%, 120% 125%)
|
|
background-color: map.get($_theme, "bg-3")
|
|
box-shadow: 0px 0px 4px 0px #000
|
|
pointer-events: none
|
|
|
|
@mixin video-list-item
|
|
display: grid
|
|
grid-template-columns: 160px 1fr
|
|
grid-gap: 8px
|
|
align-items: start
|
|
align-content: start
|
|
margin-bottom: 12px
|
|
|
|
@at-root .video-list-item--watched#{&}
|
|
background: map.get($_theme, "bg-dim")
|
|
padding: 4px 4px 0px
|
|
margin: -4px -4px 8px
|
|
|
|
.thumbnail
|
|
margin-bottom: 4px
|
|
|
|
.image
|
|
opacity: 0.4
|
|
|
|
.thumbnail
|
|
position: relative
|
|
display: flex
|
|
background: map.get($_theme, "bg-0")
|
|
|
|
&__link
|
|
font-size: 0 // remove whitespace around the image
|
|
|
|
.image
|
|
width: 160px
|
|
height: 90px
|
|
|
|
.duration
|
|
position: absolute
|
|
bottom: 3px
|
|
right: 3px
|
|
color: #fff
|
|
font-size: 14px
|
|
background: rgba(20, 20, 20, 0.85)
|
|
line-height: 1
|
|
padding: 3px 5px 4px
|
|
border-radius: 4px
|
|
pointer-events: none
|
|
|
|
.title
|
|
font-size: 15px
|
|
line-height: 1.2
|
|
|
|
.title-link
|
|
color: map.get($_theme, "fg-main")
|
|
text-decoration: none
|
|
|
|
.author-line
|
|
margin-top: 4px
|
|
font-size: 15px
|
|
color: map.get($_theme, "fg-dim")
|
|
|
|
.author
|
|
color: map.get($_theme, "fg-dim")
|
|
text-decoration: none
|
|
|
|
&:hover, &:active
|
|
color: map.get($_theme, "fg-bright")
|
|
text-decoration: underline
|
|
|
|
@mixin recommendation-item
|
|
@include video-list-item
|
|
|
|
@mixin large-item
|
|
@include video-list-item
|
|
|
|
.title
|
|
font-size: 17px
|
|
|
|
+dimensions.wide
|
|
grid-gap: 16px
|
|
grid-template-columns: auto 1fr
|
|
margin-bottom: 20px
|
|
max-height: 150px
|
|
|
|
@at-root .video-list-item--watched#{&}
|
|
padding: 8px 8px 0px
|
|
margin: -8px -8px 20px
|
|
|
|
.thumbnail
|
|
margin-bottom: 8px
|
|
|
|
.image
|
|
width: 240px
|
|
height: 135px
|
|
|
|
.duration
|
|
font-size: 17px
|
|
padding: 4px 5px
|
|
right: 5px
|
|
bottom: 5px
|
|
|
|
.info
|
|
overflow: hidden
|
|
max-height: 150px
|
|
|
|
.title
|
|
font-size: 24px
|
|
|
|
.author-line
|
|
font-size: 15px
|
|
color: map.get($_theme, "fg-main")
|
|
|
|
.author
|
|
color: map.get($_theme, "fg-main")
|
|
|
|
.description
|
|
margin-top: 16px
|
|
font-size: 15px
|
|
color: map.get($_theme, "fg-dim")
|
|
|
|
+dimensions.thin
|
|
.description
|
|
display: none
|
|
|
|
@mixin search-result
|
|
@include large-item
|
|
|
|
.description b
|
|
font-weight: normal
|
|
color: map.get($_theme, "fg-main")
|
|
|
|
@mixin channel-video
|
|
@include large-item
|
|
|
|
@mixin subscriptions-video
|
|
@include large-item
|