360 lines
8.4 KiB
CSS
360 lines
8.4 KiB
CSS
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
h1, h2, h3, h4, h5, h6, div, button{
|
|
margin:0;
|
|
padding:0;
|
|
}
|
|
|
|
address{
|
|
font-style:normal;
|
|
}
|
|
|
|
html{
|
|
font-family: {{ font_family }};
|
|
}
|
|
|
|
body{
|
|
margin:0;
|
|
padding: 0;
|
|
color:var(--text-color);
|
|
|
|
|
|
background-color:var(--background-color);
|
|
|
|
min-height:100vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
|
|
header{
|
|
background-color:#333333;
|
|
height: 50px;
|
|
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
|
|
#home-link{
|
|
align-self: center;
|
|
margin-left:10px;
|
|
color: #ffffff;
|
|
}
|
|
|
|
|
|
#site-search{
|
|
max-width: 600px;
|
|
margin-left:10px;
|
|
display: flex;
|
|
flex-grow: 1;
|
|
}
|
|
|
|
#site-search .search-box{
|
|
align-self:center;
|
|
height:25px;
|
|
border:0;
|
|
|
|
flex-grow: 1;
|
|
}
|
|
#site-search .search-button{
|
|
align-self:center;
|
|
height:25px;
|
|
|
|
border-style:solid;
|
|
border-width:1px;
|
|
}
|
|
#site-search .dropdown{
|
|
margin-left:5px;
|
|
align-self:center;
|
|
height:25px;
|
|
}
|
|
#site-search .dropdown button{
|
|
align-self:center;
|
|
height:25px;
|
|
|
|
border-style:solid;
|
|
border-width:1px;
|
|
}
|
|
#site-search .css-sucks{
|
|
width:0px;
|
|
height:0px;
|
|
}
|
|
#site-search .dropdown-content{
|
|
grid-template-columns: auto auto;
|
|
white-space: nowrap;
|
|
}
|
|
#site-search .dropdown-content h3{
|
|
grid-column:1 / span 2;
|
|
}
|
|
|
|
#playlist-edit{
|
|
margin-left: 10px;
|
|
align-self: center;
|
|
}
|
|
#local-playlists{
|
|
margin-right:5px;
|
|
color: #ffffff;
|
|
}
|
|
#playlist-name-selection{
|
|
}
|
|
#playlist-add-button{
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
}
|
|
#item-selection-reset{
|
|
padding-left: 10px;
|
|
padding-right: 10px;
|
|
}
|
|
|
|
main{
|
|
flex-grow: 1;
|
|
padding-bottom: 20px;
|
|
}
|
|
#message-box{
|
|
position: fixed;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
border-style: outset;
|
|
padding: 20px;
|
|
background-color: var(--interface-color);
|
|
opacity: 0;
|
|
transition-property: opacity;
|
|
transition-duration: 0.3s;
|
|
}
|
|
|
|
|
|
.dropdown{
|
|
z-index:1;
|
|
}
|
|
.dropdown-content{
|
|
display:none;
|
|
background-color: var(--interface-color);
|
|
}
|
|
.dropdown:hover .dropdown-content{
|
|
/* For some reason, if this is just grid, it will insist on being 0px wide just like its 0px by 0px parent */
|
|
/* making it inline-grid happened to fix it */
|
|
display:inline-grid;
|
|
}
|
|
|
|
.item-list{
|
|
display: grid;
|
|
grid-row-gap: 10px;
|
|
|
|
}
|
|
|
|
|
|
.item-grid{
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
.item-grid > .playlist-item-box{
|
|
margin-right: 10px;
|
|
}
|
|
.item-grid > * {
|
|
margin-bottom: 10px;
|
|
}
|
|
.item-grid .horizontal-item-box .item{
|
|
width:370px;
|
|
}
|
|
.item-grid .vertical-item-box .item{
|
|
}
|
|
|
|
.item-box{
|
|
display: inline-flex;
|
|
flex-direction: row;
|
|
/* prevent overflow due to long titles with no spaces:
|
|
https://stackoverflow.com/a/43312314 */
|
|
min-width: 0;
|
|
}
|
|
.vertical-item-box{
|
|
}
|
|
.horizontal-item-box{
|
|
}
|
|
.item{
|
|
background-color:var(--interface-color);
|
|
text-decoration:none;
|
|
font-size: 0.8125rem;
|
|
color: #767676;
|
|
}
|
|
|
|
.horizontal-item-box .item {
|
|
flex-grow: 1;
|
|
display: grid;
|
|
align-content: start;
|
|
grid-template-columns: auto 1fr;
|
|
grid-template-rows: auto auto auto auto 1fr;
|
|
/* prevent overflow due to long titles with no spaces:
|
|
https://stackoverflow.com/a/43312314 */
|
|
min-width: 0;
|
|
}
|
|
.vertical-item-box .item{
|
|
width: 168px;
|
|
}
|
|
.thumbnail-box{
|
|
font-size: 0px; /* prevent newlines and blank space from creating gaps */
|
|
position: relative;
|
|
display: block;
|
|
}
|
|
.horizontal-item-box .thumbnail-box{
|
|
grid-row: 1 / span 5;
|
|
margin-right: 4px;
|
|
}
|
|
.no-description .thumbnail-box{
|
|
width: 168px;
|
|
height:94px;
|
|
}
|
|
.has-description .thumbnail-box{
|
|
width: 246px;
|
|
height:138px;
|
|
}
|
|
.video-item .thumbnail-info{
|
|
position: absolute;
|
|
bottom: 2px;
|
|
right: 2px;
|
|
opacity: .8;
|
|
color: #ffffff;
|
|
font-size: 0.8125rem;
|
|
background-color: #000000;
|
|
}
|
|
.playlist-item .thumbnail-info{
|
|
position: absolute;
|
|
right: 0px;
|
|
bottom: 0px;
|
|
height: 100%;
|
|
width: 50%;
|
|
text-align:center;
|
|
white-space: pre-line;
|
|
opacity: .8;
|
|
color: #cfcfcf;
|
|
font-size: 0.8125rem;
|
|
background-color: #000000;
|
|
}
|
|
.playlist-item .thumbnail-info span{ /* trick to vertically center the text */
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
.thumbnail-img{ /* center it */
|
|
margin: auto;
|
|
display: block;
|
|
max-height: 100%;
|
|
max-width: 100%;
|
|
}
|
|
.horizontal-item-box .thumbnail-img{
|
|
height: 100%;
|
|
}
|
|
|
|
.item .title{
|
|
min-width: 0;
|
|
line-height:1.25em;
|
|
max-height:3.75em;
|
|
overflow-y: hidden;
|
|
overflow-wrap: break-word;
|
|
|
|
color: var(--text-color);
|
|
font-size: 1rem;
|
|
font-weight: 500;
|
|
text-decoration:initial;
|
|
}
|
|
|
|
.stats{
|
|
list-style: none;
|
|
padding: 0px;
|
|
margin: 0px;
|
|
}
|
|
.horizontal-stats{
|
|
max-height:2.4em;
|
|
overflow:hidden;
|
|
}
|
|
.horizontal-stats > li{
|
|
display: inline;
|
|
}
|
|
|
|
.horizontal-stats > li::after{
|
|
content: " | ";
|
|
}
|
|
.horizontal-stats > li:last-child::after{
|
|
content: "";
|
|
}
|
|
|
|
.vertical-stats{
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.stats address{
|
|
display: inline;
|
|
}
|
|
.vertical-stats li{
|
|
max-height: 1.3em;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.item-checkbox{
|
|
justify-self:start;
|
|
align-self:center;
|
|
height:30px;
|
|
width:30px;
|
|
min-width:30px;
|
|
margin: 0px;
|
|
}
|
|
|
|
|
|
.page-button-row{
|
|
margin-top: 10px;
|
|
margin-bottom: 10px;
|
|
justify-self:center;
|
|
justify-content: center;
|
|
display: grid;
|
|
grid-auto-columns: 40px;
|
|
grid-auto-flow: column;
|
|
height: 40px;
|
|
}
|
|
.next-previous-button-row{
|
|
margin: 10px 0px;
|
|
display: flex;
|
|
justify-self:center;
|
|
justify-content: center;
|
|
height: 40px;
|
|
}
|
|
.page-button{
|
|
background-color: var(--interface-color);
|
|
border-style: outset;
|
|
border-width: 2px;
|
|
font-weight: bold;
|
|
text-align: center;
|
|
padding: 5px;
|
|
}
|
|
.next-page:nth-child(2){ /* only if there's also a previous page button */
|
|
margin-left: 10px;
|
|
}
|
|
.sort-button{
|
|
background-color: var(--interface-color);
|
|
padding: 2px;
|
|
justify-self: start;
|
|
}
|
|
|
|
/* error page stuff */
|
|
h1{
|
|
font-size: 2rem;
|
|
font-weight: normal;
|
|
}
|
|
#error-box, #error-message{
|
|
background-color: var(--interface-color);
|
|
width: 80%;
|
|
margin: auto;
|
|
margin-top: 20px;
|
|
padding: 5px;
|
|
}
|
|
#error-box > div, #error-box > p, #error-box > h1{
|
|
white-space: pre-wrap;
|
|
margin-bottom: 10px;
|
|
}
|
|
.code-box{
|
|
padding: 5px;
|
|
border-style:solid;
|
|
border-width:1px;
|
|
border-radius:5px;
|
|
}
|