A music player that connects to your cloud/distributed storage.
at v4 87 lines 2.4 kB view raw
1<main> 2 <div class="panel"> 3 <div class="row"> 4 <button id="repeat" title="Toggle repeat"> 5 <span class="with-icon"><i class="ph-bold ph-repeat"></i> Repeat</span> 6 </button> 7 <button id="shuffle" title="Toggle shuffle"> 8 <span class="with-icon"><i class="ph-bold ph-shuffle"></i> Shuffle</span> 9 </button> 10 </div> 11 <hr /> 12 <div class="row"> 13 <label class="with-icon" for="playlist"> 14 <i class="ph-bold ph-playlist"></i> 15 <select id="playlist"> 16 <option value="">All tracks</option> 17 </select> 18 </label> 19 </div> 20 <div class="row"> 21 <label class="with-icon" for="search"> 22 <i class="ph-bold ph-magnifying-glass"></i> 23 <input id="search" type="search" placeholder="Search" /> 24 </label> 25 </div> 26 <div class="row"> 27 <label class="with-icon" for="sort-by" style="width: min(80vw, var(--container-xs))"> 28 <i class="ph-bold ph-arrows-down-up"></i> 29 <select id="sort-by"> 30 <option value="[]">Default order</option> 31 <option value='["createdAt"]'>Added to collection</option> 32 <option value='["tags.title"]'>Title</option> 33 <option value='["tags.album","tags.disc.no","tags.track.no"]'>Album</option> 34 <option value='["tags.artist","tags.album","tags.disc.no","tags.track.no"]'> 35 Artist 36 </option> 37 <option value='["tags.year"]'>Year</option> 38 <option value='["tags.date"]'>Date</option> 39 </select> 40 <button id="sort-direction" style="flex: none">DESC</button> 41 </label> 42 </div> 43 </div> 44</main> 45 46<style> 47 @import "./styles/base.css"; 48 @import "./styles/wireframe/ui.css"; 49 @import "./vendor/@phosphor-icons/web/bold/style.css"; 50 51 body { 52 display: flex; 53 align-items: center; 54 justify-content: center; 55 height: 100dvh; 56 } 57 58 main { 59 opacity: 0; 60 padding: var(--space-md); 61 pointer-events: none; 62 transition: opacity 750ms; 63 64 &.has-loaded { 65 opacity: 1; 66 pointer-events: auto; 67 } 68 } 69 70 label { 71 flex: 1; 72 flex-wrap: wrap; 73 letter-spacing: var(--leading-relaxed); 74 text-transform: uppercase; 75 } 76 77 label input, 78 label select { 79 flex: 1; 80 } 81 82 .row button { 83 flex: 1; 84 } 85</style> 86 87<script type="module" src="facets/playback/auto-queue/index.inline.js"></script>