aboutsummaryrefslogtreecommitdiff
path: root/ui/client-style/src/js-player.css
diff options
context:
space:
mode:
Diffstat (limited to 'ui/client-style/src/js-player.css')
-rw-r--r--ui/client-style/src/js-player.css255
1 files changed, 255 insertions, 0 deletions
diff --git a/ui/client-style/src/js-player.css b/ui/client-style/src/js-player.css
new file mode 100644
index 0000000..5c10ff9
--- /dev/null
+++ b/ui/client-style/src/js-player.css
@@ -0,0 +1,255 @@
+/*
+ This file is part of jellything (https://codeberg.org/metamuffin/jellything)
+ which is licensed under the GNU Affero General Public License (version 3); see /COPYING.
+ Copyright (C) 2026 metamuffin <metamuffin.org>
+*/
+
+.jsp {
+ --csize: 50px;
+}
+
+.jsp .jsp-controls,
+.jsp-popup {
+ background-color: #1d1d1d99;
+}
+
+.jsp .jsp-controls {
+ position: absolute;
+ bottom: 0px;
+ left: 0px;
+ width: 100%;
+ height: var(--csize);
+ transition: opacity 0.2s;
+ display: flex;
+ flex-direction: row;
+}
+
+.jsp .jsp-controls button,
+.jsp .jsp-track-list button {
+ padding: 0px;
+ width: var(--csize);
+ height: 100%;
+ border: none;
+ margin: 0;
+ background-color: #ffffff10;
+ border-radius: 0px;
+}
+
+.jsp-controls p.jsp-status {
+ display: inline-block;
+ width: 6em;
+ text-align: right;
+ margin: 0px;
+ font-family: monospace;
+ padding: 0.4em;
+}
+.jsp-track-select {
+ display: inherit;
+}
+.jsp-track-state {
+ border: 0px solid transparent;
+ font-size: x-large;
+ background-color: transparent;
+ cursor: pointer;
+}
+
+.jsp-pri {
+ position: relative;
+ flex-grow: 1;
+ padding: 0px;
+ display: inline-block;
+ margin: 0px;
+ width: calc(100% - var(--csize) * 2 - 2px);
+ height: var(--csize);
+}
+.jsp-pri-current {
+ z-index: 101;
+ position: absolute;
+ height: var(--csize);
+ background-color: #ffffff20;
+}
+.jsp-pri-buffer {
+ z-index: 100;
+ position: absolute;
+}
+.jsp-pri-buffer-buffered {
+ background-color: #08fa0018;
+}
+.jsp-pri-buffer-loading {
+ background-color: #ffd00018;
+}
+
+.jsp-overlay {
+ position: absolute;
+ bottom: var(--csize);
+ left: 0px;
+}
+.jsp-overlay .jsp-buffering {
+ margin: 0.2em;
+ font-size: larger;
+ color: grey;
+}
+.jsp-stats {
+ position: absolute;
+ background-color: rgba(0, 0, 0, 0.404);
+ top: 0px;
+ left: 0px;
+ padding: 1em;
+}
+.jsp-stats pre {
+ margin: 0.1em;
+}
+.jsp .icon {
+ font-size: 1.5em;
+}
+
+.jsp .jsh-log {
+ position: absolute;
+ bottom: var(--csize);
+ left: 0px;
+}
+.jsp .jsh-log-line {
+ padding: 0.15em;
+ margin: 0px;
+ font-size: large;
+}
+.jsp .jsh-log-line-appear {
+ animation-name: appear;
+ animation-timing-function: linear;
+ animation-duration: 0.5s;
+ animation-fill-mode: forwards;
+}
+.jsp .jsh-log-line-disappear {
+ animation-name: disappear;
+ animation-timing-function: linear;
+ animation-duration: 0.2s;
+ animation-fill-mode: forwards;
+}
+
+@keyframes appear {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+@keyframes disappear {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+
+.jsp-popup {
+ position: absolute;
+ bottom: var(--csize);
+ right: 0px;
+ animation-name: popup-in;
+ animation-delay: 180ms;
+ animation-duration: 100ms;
+ animation-fill-mode: both;
+ animation-timing-function: ease-out;
+}
+.jsp-popup-out {
+ animation-name: popup-out;
+ animation-delay: 0ms;
+ animation-duration: 100ms;
+ animation-fill-mode: both;
+ animation-timing-function: ease-in;
+}
+@keyframes popup-in {
+ from {
+ bottom: calc(var(--csize) - 20px);
+ opacity: 0;
+ }
+ to {
+ bottom: var(--csize);
+ opacity: 1;
+ }
+}
+@keyframes popup-out {
+ from {
+ bottom: var(--csize);
+ opacity: 1;
+ }
+ to {
+ bottom: calc(var(--csize) - 20px);
+ opacity: 0;
+ }
+}
+
+.jsp-settings-popup {
+ padding: 1em;
+ min-width: 14em;
+}
+.jsp-track-select-popup {
+ min-width: 14em;
+ padding: 1em;
+}
+.jsp-settings-popup h2,
+.jsp-settings-popup h3 {
+ margin-top: 0.1em;
+ margin-bottom: 0.1em;
+}
+
+.jsp-controlgroup {
+ padding: 0.5em;
+ margin-top: 1em;
+ margin-bottom: 1em;
+ background-color: #00000038;
+}
+
+ul.jsp-track-list {
+ list-style: none;
+ padding: 0px;
+}
+ul.jsp-track-list li.active {
+ background-color: #047a0073;
+}
+
+.jsp-volumecontrol input {
+ appearance: none;
+ width: 100%;
+ height: 24px;
+ background-color: black;
+ opacity: 0.5;
+ outline: none;
+}
+.jsp-volumecontrol input:hover {
+ opacity: 1;
+}
+.jsp-volumecontrol input::-webkit-slider-thumb,
+.jsp-volumecontrol input::-moz-range-thumb {
+ width: 24px;
+ height: 24px;
+ border-radius: 0px;
+ background-color: #06ad00;
+ cursor: ew-resize;
+ border: 0px solid transparent;
+}
+
+.jsp-volume {
+ display: inline-block;
+ margin-left: 2em;
+ font-family: monospace;
+ font-size: large;
+ width: 20em;
+}
+
+.jsp-chapter {
+ position: absolute;
+ height: var(--csize);
+ padding-left: 2px;
+ border-left: 2px solid rgba(255, 161, 55, 0.548);
+}
+.jsp-chapter p {
+ font-size: small;
+ text-overflow: ellipsis;
+ overflow: visible;
+ overflow: hidden;
+ white-space: nowrap;
+ width: 100%;
+}