:root { --ribbon-width: 160px; --ribbon-height: 80px; --background-color: #041936; --text-color: #bbb; --input-background-color: #28374a; --input-border-light: #545454; --input-border-dark: #3a3a3a; } /* #################### */ /* #### structure ##### */ /* #################### */ html, body { margin: 0; height: 100%; } main { height: 100%; display: grid; grid-auto-columns: 1fr; grid-template-columns: 1fr 2fr; grid-template-rows: var(--ribbon-height) 1fr 1fr; gap: 0 0; grid-template-areas: "nav nav" "queue queue" "browser result" "footer footer"; } #queue { grid-area: queue; overflow: auto; } #nav { grid-area: nav; display: flex; } #nav > div { width: var(--ribbon-width); } #result { grid-area: result; overflow: auto; } #browser { grid-area: browser; } main footer { grid-area: footer; overflow: auto; background-color: var(--background-color); text-align: right; } table { width: 100%; } #control-admin { display: flex; flex-direction: column; } #sanic-logo { display: flex; flex-grow: 1; justify-content: flex-end; } #sanic-logo > div { display: flex; flex-direction: column; justify-content: center; text-align: center; } #sanic-logo img { max-width: 75%; max-height: 75%; margin: auto; } .spaced { display: flex; justify-content: space-between; } /* #################### */ /* ### pretty stuff ### */ /* #################### */ #control-progress { width: var(--ribbon-width); } #control-volume { width: 80px; } #nav > div.wide { width: 280px; } #nav > div.wide div { display: flex; justify-content: space-between; } /* Disable arrows in input */ /* Chrome, Safari, Edge, Opera */ #control-xfade::-webkit-outer-spin-button, #control-xfade::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } /* Firefox */ #control-xfade[type=number] { -moz-appearance: textfield; } #control-xfade { width: 2em; } #control-previous, #control-play-pause, #control-stop, #control-next { width: 2.5em; height: 2.5em; text-align: center; } /* #control-track { transform: translateX(100%); -moz-transform: translateX(100%); -webkit-transform: translateX(100%); animation: scroll-left 20s linear infinite; -moz-animation: scroll-left 2s linear infinite; -webkit-animation: scroll-left 2s linear infinite; } @keyframes scroll-left { 0% { transform: translateX(100%); -moz-transform: translateX(100%); -webkit-transform: translateX(100%); } 100% { transform: translateX(-100%); -moz-transform: translateX(-100%); -webkit-transform: translateX(-100%); } } @-moz-keyframes scroll-left { 0% { -moz-transform: translateX(100%); } 100% { -moz-transform: translateX(-100%); } } @-webkit-keyframes scroll-left { 0% { -webkit-transform: translateX(100%); } 100% { -webkit-transform: translateX(-100%); } } */ html, body { background-color: #09101d; color: var(--text-color); scrollbar-color: #490b00 #09101d; /* only in firefox: https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color */ font-weight: normal; font-family: Arial, Helvetica, sans-serif; font-size: 12pt; } a { color: var(--text-color); text-decoration: none; } button { background-color: var(--input-background-color); color: var(--text-color); border-top-color: var(--input-border-light); border-right-color: var(--input-border-dark); border-bottom-color: var(--input-border-dark); border-left-color: var(--input-border-light); } button[disabled] { color: var(--background-color); } button[disabled] .loader { display: inline-block; } button .loader { display: none; } .loader { width: 10pt; height: 10pt; border: 3px solid var(--text-color); border-bottom-color: transparent; border-radius: 50%; display: inline-block; box-sizing: border-box; animation: rotation 1s linear infinite; } @keyframes rotation { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* borderless button used in queue */ .borderless { border: none; background-color: inherit; cursor: pointer; } input[type=text] { background-color: var(--input-background-color); color: var(--text-color); border: 1px solid black; border-right-color: var(--input-border-light); border-bottom-color: var(--input-border-light); } .marquee { display: flex; position: relative; overflow: hidden; white-space: nowrap; width: var(--ribbon-width); font-size: 10pt; background-color: var(--input-background-color); color: var(--text-color); border: 1px solid black; border-right-color: var(--input-border-light); border-bottom-color: var(--input-border-light); container-type: inline-size; } .wide { display: flex; flex-direction: column; justify-content: space-around; } .marquee > * { -webkit-animation: marquee 10s linear infinite both alternate; animation: marquee 10s linear infinite both alternate; } @-webkit-keyframes marquee { to { transform: translateX(min(100cqw - 100%, 0px)); } } @keyframes marquee { to { transform: translateX(min(100cqw - 100%, 0px)); } } #nav { padding: 5px; background: linear-gradient(0deg, rgba(3,7,11,1) 0%, rgba(14,27,43,1) 4%, rgba(41,55,74,1) 6%, rgba(18,35,56,1) 94%, rgba(40,68,104,1) 96%, rgba(168,182,200,1) 100%); } #nav > div { border-right: 1px solid black; } thead { background: #0F1D2F linear-gradient(0deg, rgba(15, 29, 47, 1) 0%, rgba(15, 29, 47, 1) 50%, rgba(7, 14, 23, 1) 100%); } th { font-weight: bold; padding: 2px 2px 2px 14px; border: solid #1c2c1a; border-width: 0 1px 0 0; cursor: pointer; } /* show and hide action buttons on hover */ tbody tr td button { display: none; } tbody tr:hover td button { display: inline-block; } /* fixed width for action buttons in queue so it doesn't change size when hovering */ tbody tr td:last-of-type { min-width: 6em; } tbody td.actions { white-space: nowrap; } #queue { border-bottom: 4px ridge #3a506b; } /* make arrow for currently playing song look nice */ #queue table tr.playing td:first-of-type::before { content: '\2BC8'; /* ⯈ Black Medium Right-Pointing Triangle Centred */ } #queue table tr td:first-of-type { text-align: right; padding-right: 0.5em; } /* align times */ #queue table tr td:nth-last-of-type(2) { text-align: right; } table tr:nth-child(odd) td { background-color: #1e1f1a; } table tr:nth-child(even) td { background-color: #171812; } #queue table tr:nth-child(odd).playing td, #queue table tr:nth-child(even).playing td { background-color: #490b00; } table tr:hover td { background-color: #354158; } #tabs { display: flex; } #tabs a { width: 50%; padding: 3pt; display: inline-block; text-align: center; background-color: var(--input-background-color); color: var(--text-color); border: 1px solid var(--input-border-light); border-top-left-radius: 5pt; border-top-right-radius: 5pt; } #tabs a.active { background-color: #1a1a1a; color: var(--text-color); border-bottom: none; } #browser { background-color: #171812; border-right: 4px ridge #3a506b; } #control-playlist-list { font-size: 12pt; width: 100%; background-color: var(--input-background-color); color: var(--text-color); border: 1px solid black; border-right-color: var(--input-border-light); border-bottom-color: var(--input-border-light); scrollbar-color: #490b00 #09101d; /* only in firefox: https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color */ } footer svg { color: var(--text-color); width: 12pt; height: 12pt; } /*dialog {*/ /* position: fixed;*/ /* left: 50%;*/ /* top: 50%;*/ /* transform: translate(-50%, -50%);*/ /*}*/ dialog { background-color: var(--background-color); color: var(--text-color); } dialog .close { position: absolute; top: 1pt; right: 1pt; } #control-search-pattern { margin: 1em; } #search:first-child { display: flex; justify-content: space-between; }