move root inside importable package space

This commit is contained in:
evilchili
2022-12-21 22:42:36 -08:00
parent 3c32ee3b52
commit 58c7e3246a
6 changed files with 1 additions and 2 deletions
+10
View File
@@ -0,0 +1,10 @@
# Blue Train
This is the default theme for Groove on Demand, inspired by the cover to John Coltrane's 1957 album _Blue Train_, [designed by Reid Miles](https://www.immigrantentrepreneurship.org/images/john-coltrane-blue-train-album-cover-1957/).
## Credits
```
author: @evilchili
author_link: https://linernotes.club/@evilchili
version: 1.0
```
@@ -0,0 +1,36 @@
[styles]
# default gray text #999999
# light text #f1f2f6
# dark gray #555555
# light blue #9999ff
# green #70bc45
# dark blue #017d93
text = #999999
bright = #f1f2f6
bold = #f1f2f6 bold
dim = #555555
link = #9999FF
prompt = #f1f2f6 bold
artist = #017D93
title = #70bc45
help = #999999
background = #001321
info = #88FF88
error = #FF8888
danger = #FF8888
log.time = #9999FF
log.message = #f1f2f6
log.path = #9999FF
bar.back = #555555
bar.finished = #70bc45
bar.complete = #70bc45
bar.pulse = #f1f2f6
progress.description = #999999
progress.percentage = #70bc45
progress.spinner = #70bc45
@@ -0,0 +1,259 @@
html {
width: 100%;
height: 100%;
overflow: hidden;
padding: 0;
margin: 0;
outline: 0;
font-family: 'Clarendon MT Std', sans-serif;
}
body {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
overflow: hidden;
background: rgb(0,4,16);
background: linear-gradient(0deg, rgba(0,4,16,1) 31%, rgba(1,125,147,1) 97%);
}
a, a:visited {
text-decoration: none;
color: #f1f2f6;
}
a:active, a:hover {
color: #70bc45;
}
#container {
overflow-x: wrap;
width: 96%;
height: 96%;
margin: auto;
margin-top: 1em;
}
#details {
margin-left: 0.25em;
display: flex;
border-bottom: 1px solid rgb(255,255,255,0.3);
}
#poster {
display: none;
width: 10em;
height: 10em;
background: #DDD;
}
#poster > img {
display: none;
}
/* informmation */
#playlist_title {
margin-bottom: 0.25em;
color: #f1f2f6;
}
#playlist_desc {
}
#player {
width: 100%;
margin: 1em 0;
}
#controls {
width: 5em;
height: 5em;
vertical-align: middle;
padding-right: 1em;
}
#controls > div {
width: 5em;
height: 5em;
}
#track {
color: #70bc45;
font-size: 1.5em;
}
#track_controls {
display: flex;
}
#timer {
margin-left:0;
padding-left:0;
}
#duration {
}
/* Controls */
.widget {
margin-right: 0.5em;
padding: 0 0.5em;
}
.btn {
cursor: pointer;
opacity: 0.75;
}
.btn:hover {
opacity: 1;
}
#big_button {
position: relative;
background-color: #fff;
border-radius: 50%;
text-align: center;
vertical-align: middle;
line-height: 5em;
}
#playBtn {
font-family: sans-serif;
font-size: 5em;
padding-left: 0.1em;
}
#pauseBtn {
font-family: sans-serif;
display: none;
font-size: 4em;
}
#prevBtn {
color: #fff;
text-align: right;
vertical-align: middle;
line-height: 0.75em;
font-size: 1.5em;
padding:0;
}
#nextBtn {
color: #fff;
text-align: left;
vertical-align: middle;
line-height: 0.75em;
font-size: 1.5em;
padding:0;
}
/* Progress */
#bar {
position: relative;
flex-grow: 1;
text-align: center;
vertical-align: middle;
line-height: 1em;
}
#bar > hr {
border: none;
border-bottom: 1px solid #000;
position: absolute;
height: 1px;
width: calc(100% - 1em);
}
#progress {
position: relative;
width: 0%;
height: 0.33em;
margin: 0.33em 0;
background-color: #bbb;
}
/* Loading */
#loading {
display: none;
}
/* Plylist */
#playlist {
display: block;
margin-left: 0.25em;
}
#list {
font-size: 1.25em;
}
.list-song {
padding: 0.25em;
}
.list-song:hover {
cursor: pointer;
background: #f1f2f6;
}
#footer {
font-family: helvetica, sans-serif;
border-top: 1px solid rgb(128,128,128,0.3);
text-align: right;
color: #888;
font-size: 0.9em;
letter-spacing: 0.1em;
margin: 0;
margin-top: 1em;
padding-top: 1em;
}
#footer a {
color: #aaa;
}
/* Volume */
#volume {
display: none;
}
.bar {
}
#barEmpty {
width: 90%;
opacity: 0.5;
cursor: pointer;
}
#barFull {
width: 90%;
}
#sliderBtn {
width: 50px;
height: 50px;
cursor: pointer;
}
/* Fade-In */
.fadeout {
webkit-animation: fadeout 0.5s;
-ms-animation: fadeout 0.5s;
animation: fadeout 0.5s;
}
.fadein {
webkit-animation: fadein 0.5s;
-ms-animation: fadein 0.5s;
animation: fadein 0.5s;
}
@keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
@-webkit-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
@-ms-keyframes fadein {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes fadeout {
from { opacity: 1; }
to { opacity: 0; }
}
@-webkit-keyframes fadeout {
from { opacity: 1; }
to { opacity: 0; }
}
@-ms-keyframes fadeout {
from { opacity: 1; }
to { opacity: 0; }
}
@@ -0,0 +1,66 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="user-scalable=no">
<title>Groove On Demand</title>
<link rel='stylesheet' href='/static/styles.css' />
<link rel='stylesheet' href="https://fonts.cdnfonts.com/css/clarendon-mt-std" />
<script defer crossorigin src='https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.3/howler.core.min.js'></script>
<script defer src='/static/player.js'></script>
<script>
var playlist_tracks = [
% for entry in playlist['entries']:
{
title: "{{entry['artist']}} - {{entry['title']}}",
url: "{{entry['url']}}",
},
% end
];
</script>
</head>
<body>
<div id='container'>
<div id='details'>
<div id='poster'>
<img src=''></img>
</div>
<div>
<h1 id='playlist_title'>{{playlist['name']}}</h1>
<span id='playlist_desc'>{{playlist['description']}}</span>
</div>
</div>
<table id='player'>
<tr>
<td id='controls'>
<div id='big_button' class='btn'>
<div id="loading"></div>
<div id="playBtn">⏵</div>
<div id="pauseBtn">⏸</div>
</div>
</td>
<td>
<div id="track"></div>
<div id='track_controls'>
<div class='widget' id="timer">0:00</div>
<div class='widget' id="bar">
<hr>
<div id="progress"></div>
</div>
<div class='widget' id="duration">0:00</div>
<div class="widget btn" id="prevBtn">⏮</div>
<div class="widget btn" id="nextBtn">⏭</div>
</div>
</td>
</tr>
</table>
<div id="playlist">
<div id="list"></div>
</div>
<div id='footer'>groove on demand : an <a alt="evilchili at liner notes dot club" href="https://linernotes.club/@evilchili">@evilchili</a> jam</div>
</div>
</div>
</body>
</html>