diff --git a/src/main.rs b/src/main.rs index 9448c41..55ea9d7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -191,6 +191,8 @@ async fn main() -> tide::Result<()> { app.at("/previous").post(post_previous); app.at("/next").post(post_next); + app.at("/static").serve_dir("static/")?; + app.listen("0.0.0.0:8080").await?; Ok(()) } diff --git a/static/favicon.png b/static/favicon.png new file mode 100644 index 0000000..56442de Binary files /dev/null and b/static/favicon.png differ diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..00491af --- /dev/null +++ b/static/style.css @@ -0,0 +1,170 @@ +html { + height: 100%; +} + +body { + font-family: sans; + background-color: #112; + color: #fff; + display: flex; + margin: 0; + height: 100%; +} + +body > div { + padding: 1rem; +} + +.browser { + flex: 1; + display: flex; + flex-flow: column; + height: 100%; +} + +a { + color: #fff; + font-weight: bold; + text-decoration: none; +} + +ul { + list-style: none; + padding: 0; + margin: 0; +} + +ul.queue { + margin-top: 1.0rem; +} + +ul.queue li { + padding: 0 0.5rem; + border-radius: .25rem; + display: flex; + align-items: center; +} + +ul.queue li.playing { + background-color: #334; +} + +ul.breadcrumb { + display: flex; + margin-bottom: 1rem; + flex-wrap: wrap; + list-style: none; + background-color: #334; + border-radius: .25rem; + padding: .75rem 1rem; +} + +ul.breadcrumb li:not(:first-child)::before { + display: inline-block; + padding-left: .5rem; + padding-right: .1rem; + color: #6c757d; + content: "/"; +} + +ul.dir { + overflow: auto; + flex: 1; +} + +ul.dir li { + cursor: pointer; + padding: .75rem .75rem; + border-radius: 3px; + + display: flex; + align-items: center; +} + +ul.dir li img { + width: 48px; + height: 48px; + object-fit: cover; +} + +ul.dir li:hover { + background-color: #334; +} + +ul.dir li .material-symbols-outlined { + margin-right: 0.75rem; + width: 24px; +} + +.song__name { + font-weight: bold; +} + +.albumart { + border-radius: 0.25rem; +} + +.queue .albumart { + margin: 0.75rem; + margin-left: 0; + width: 48px; + height: 48px; +} + +.albumart img { + border-radius: 0.25rem; + width: 100%; + height: 100%; + object-fit: cover; +} + +.player { + width: 25rem; +} + +.player .nowplaying { + display: flex; + flex-flow: column; + background-color: #334; + border-radius: 0.25rem; + height: 9.5rem; +} + +.player .controls { + display: flex; + justify-content: space-around; + padding: 0.5rem; +} + +.player .control { + font-size: 40px; + cursor: pointer; +} + +.player .current { + display: flex; + flex-flow: row; + align-items: center; + padding: 0.5rem; + flex: 1; +} + +.nowplaying .albumart { + margin-right: 1.0rem; + background-color: #445; + width: 80px; + height: 80px; + transition: transform 200ms ease-in-out; +} +.nowplaying .albumart:hover { + transform: scale(1.05); +} + +.nowplaying .metadata { + flex: 1; +} + +.nowplaying .idle { + font-weight: bold; + text-align: center; +} diff --git a/templates/index.html b/templates/index.html index 9bc3a5a..d047704 100644 --- a/templates/index.html +++ b/templates/index.html @@ -6,181 +6,8 @@ - - - - + +