aboutsummaryrefslogtreecommitdiffstats
path: root/res/css
diff options
context:
space:
mode:
Diffstat (limited to 'res/css')
-rw-r--r--res/css/des.css385
1 files changed, 332 insertions, 53 deletions
diff --git a/res/css/des.css b/res/css/des.css
index 99a2c58..da003e7 100644
--- a/res/css/des.css
+++ b/res/css/des.css
@@ -39,6 +39,7 @@
--warning: var(--cl-yellow);
--error: var(--cl-red-6);
--border: var(--cl-gray-3);
+ --paused-by: var(--cl-white);
--box-shadow: 0rem .25rem 1rem rgba(0, 0, 0, .25);
}
@@ -392,6 +393,10 @@ button.danger-bg:focus {
overflow: hidden;
}
+.paused-by {
+ color: var(--paused-by);
+}
+
.info header {
display: flex;
align-items: center;
@@ -431,6 +436,83 @@ header h4 {
align-items: center;
}
+.playlist-menu-wrap {
+ position: relative;
+ display: inline-flex;
+ margin-left: .5rem;
+}
+
+#playlist-menu-btn {
+ position: relative;
+}
+
+#playlist-menu-indicator {
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ width: 8px;
+ height: 8px;
+ background-color: var(--accent);
+ border-radius: 50%;
+}
+
+.playlist-menu-dropdown {
+ position: absolute;
+ top: calc(100% + .5rem);
+ right: 0;
+ background: var(--background-chat);
+ border: .063rem solid var(--border);
+ border-radius: 0;
+ box-shadow: var(--box-shadow);
+ z-index: 1000;
+ min-width: 14rem;
+ padding: .35rem 0;
+ display: flex;
+ flex-direction: column;
+}
+
+.playlist-menu-dropdown button.playlist-menu-item {
+ display: flex;
+ align-items: center;
+ width: 100%;
+ padding: .6rem 1rem;
+ margin-left: 0;
+ background: transparent;
+ border-radius: 0;
+ text-align: left;
+ white-space: nowrap;
+ font-size: .9rem;
+ color: var(--midground);
+ transition: background-color ease .15s, color ease .15s;
+}
+
+.playlist-menu-dropdown button.playlist-menu-item:hover,
+.playlist-menu-dropdown button.playlist-menu-item.active {
+ background-color: rgba(255, 255, 255, .08);
+ color: var(--foreground);
+}
+
+.playlist-menu-dropdown button.playlist-menu-item ion-icon {
+ margin-right: .6rem;
+ font-size: 1.1rem;
+}
+
+.playlist-menu-dropdown button.playlist-menu-item .hotkey-hint {
+ color: var(--midground);
+ opacity: .75;
+ font-size: .85em;
+ margin-left: .25rem;
+}
+
+.hotkeys-disabled .hotkey-hint {
+ display: none;
+}
+
+#playlist-menu-btn.danger,
+#playlist-menu-btn.danger ion-icon {
+ color: var(--error);
+}
+
/*
* Start main
*/
@@ -453,9 +535,7 @@ header h4 {
grid-area: video;
width: 100%;
height: 100%;
- /* Breaks subs after viewport overflow on FF+Linux (SyncTube#28) */
- /* overflow: auto; */
- overflow: scroll;
+ overflow: auto;
background: var(--background-video);
}
}
@@ -488,14 +568,54 @@ header h4 {
/* Embed responsive */
-.embed-responsive:empty {
- min-height: 60vh;
+.embed-responsive:empty,
+.embed-responsive:not(:has(iframe, video, object, embed)) {
+ aspect-ratio: 16 / 9;
+ min-height: unset;
}
.embed-responsive {
background-color: var(--background);
width: 100%;
max-height: 80vh;
+ position: relative;
+}
+
+.fullscreen-chat-btn {
+ display: none;
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ z-index: 1;
+ background: rgba(0, 0, 0, 0.5);
+ opacity: 0.5;
+ border-radius: 50%;
+ width: 42px;
+ height: 42px;
+ justify-content: center;
+ outline: none;
+ transition: opacity 0.2s ease, background-color 0.2s ease, transform 0.15s ease;
+}
+
+.fullscreen-chat-btn:hover {
+ opacity: 1;
+ background: rgba(0, 0, 0, 0.75);
+ color: #ffffff;
+ transform: scale(1.08);
+}
+
+.fullscreen-chat-btn:active {
+ transform: scale(0.95);
+}
+
+.fullscreen-chat-btn ion-icon {
+ color: white;
+ font-size: 22px;
+}
+
+/* Fullscreen chat button display only when unread messages exist */
+#ytapiplayer:fullscreen .fullscreen-chat-btn.has-unread {
+ display: flex;
}
.temp-videoplayer {
@@ -507,6 +627,10 @@ header h4 {
max-height: 80vh;
}
+#ytapiplayer:fullscreen #videoplayer {
+ max-height: unset;
+}
+
.videoplayerIframeParent {
width: 100%;
height: 100%;
@@ -520,10 +644,6 @@ iframe#videoplayer {
}
@media only screen and (orientation: portrait) {
- .embed-responsive:empty {
- min-height: 20vh;
- }
-
.embed-responsive {
max-height: 30vh;
}
@@ -623,6 +743,8 @@ iframe#videoplayer {
}
.queue_entry {
+ position: relative;
+ overflow: hidden;
padding: 1rem;
border-bottom: .063rem solid;
border-color: var(--border);
@@ -632,9 +754,56 @@ iframe#videoplayer {
transition: background-color ease-in-out .15s;
}
+.queue_entry>header,
+.queue_entry>.controls {
+ position: relative;
+ z-index: 1;
+}
+
+.qe_progress {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 0;
+ height: 100%;
+ width: 0;
+ background-color: var(--background-chat);
+ pointer-events: none;
+ transition: width ease-out .2s;
+}
+
+.queue_cached {
+ background-color: var(--background-chat);
+}
+
+.queue_entry.queue_incomplete {
+ background-color: transparent;
+}
+
+.queue_incomplete>header,
+.queue_incomplete .qe_title {
+ color: color-mix(in srgb, var(--foreground) 50%, transparent);
+}
+
+.queue_incomplete .controls button {
+ background-color: color-mix(in srgb, var(--background-chat) 50%, transparent);
+}
+
+.queue_entry.queue_incomplete {
+ border-left: .25rem solid;
+ border-left-color: var(--background-chat);
+ animation: queue_incomplete_blinker 3s ease-in-out infinite;
+}
+
+@keyframes queue_incomplete_blinker {
+ 50% {
+ border-left-color: var(--border);
+ }
+}
+
.queue_entry:first-child {
border-top: .063rem solid;
- border-color: var(--border);
+ border-top-color: var(--border);
}
.queue_entry a {
@@ -654,10 +823,6 @@ footer#footer {
padding: 1rem;
}
-/*
- * End main
- */
-
.gutter {
display: none;
}
@@ -687,10 +852,26 @@ footer#footer {
order: 0;
flex-direction: column;
flex-wrap: nowrap;
- padding: 1rem;
+ container-type: inline-size;
+ --chat-px: clamp(0.25rem, 10cqw - 1rem, 1rem);
+ --chat-py: clamp(0.25rem, 2vh, 1rem);
+ padding: 0;
height: 40vh;
}
+#chat>* {
+ padding-left: var(--chat-px);
+ padding-right: var(--chat-px);
+}
+
+#chat>*:first-child {
+ padding-top: var(--chat-py);
+}
+
+#chat>#chat-body {
+ padding-bottom: var(--chat-py);
+}
+
@media only screen and (orientation: landscape) {
#chat {
grid-area: chat;
@@ -707,7 +888,15 @@ footer#footer {
#chat .controls {
display: flex;
justify-content: space-between;
- padding-bottom: 1rem;
+ padding-bottom: clamp(0.25rem, 1.5vh, 1rem);
+}
+
+#chat-body {
+ position: relative;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ min-height: 0;
}
/* Users online */
@@ -763,7 +952,7 @@ footer#footer {
text-align: left;
}
-#pause-indicator-portrait {
+#pause-indicator-chat {
padding-left: 0.2rem;
}
@@ -780,38 +969,91 @@ footer#footer {
/* Options */
+.toggle-switch {
+ position: relative;
+ display: inline-block;
+ width: 44px;
+ height: 24px;
+ background-color: var(--midground);
+ border-radius: 24px;
+ transition: background-color 0.3s;
+ flex-shrink: 0;
+ margin-left: 1rem;
+ cursor: pointer;
+}
+
+.toggle-switch.on {
+ background-color: var(--accent);
+}
+
+.toggle-switch::after {
+ content: '';
+ position: absolute;
+ top: 2px;
+ left: 2px;
+ width: 20px;
+ height: 20px;
+ background-color: #fff;
+ border-radius: 50%;
+ transition: transform 0.2s ease;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
+}
+
+.toggle-switch.on::after {
+ transform: translateX(20px);
+}
+
#optionsPanel {
+ display: flex;
+ flex-direction: column;
z-index: 1;
background-color: var(--background-chat);
- overflow-y: scroll;
position: absolute;
- top: 4rem;
- left: 1rem;
- bottom: 1rem;
- right: 1rem;
+ /* to prevent fraction gap between chat controls and this panel */
+ top: -1px;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ padding-left: var(--chat-px);
+ padding-right: var(--chat-px);
+ padding-bottom: var(--chat-py);
+ padding-top: 1rem;
transition: opacity 200ms;
opacity: 0;
}
-#optionsList div {
+#optionsList {
+ overflow-y: auto;
+}
+
+.options-category {
display: flex;
flex-direction: column;
- margin-bottom: .5rem;
+ margin-bottom: 0.5rem;
}
-#optionsList div:not(:first-child) {
+.options-category:not(:first-child) {
border-top: .063rem solid;
border-color: var(--border);
- padding-top: 1rem;
+ padding-top: 1.25rem;
+}
+
+#optionsList h4 {
+ padding: 0 1.25rem 0.75rem 0;
+ font-size: 1.15rem;
+ font-weight: 600;
+ color: #fff;
}
#optionsList li button {
- padding: 1rem 0;
+ padding: 0.8rem 0.8rem 0.8rem 0;
display: flex;
- align-items: stretch;
+ align-items: center;
+ justify-content: space-between;
width: 100%;
border-radius: 0;
text-align: left;
+ font-size: 1rem;
}
#optionsList li button:hover {
@@ -915,7 +1157,7 @@ footer#footer {
}
#chatbox {
- padding-top: 1rem;
+ padding-top: clamp(0.25rem, 1.5vh, 1rem);
border-top: .063rem solid;
border-color: var(--border);
display: flex;
@@ -931,6 +1173,66 @@ footer#footer {
width: 2rem;
}
+#chat-commands-wrap {
+ display: flex;
+ width: 100%;
+ background: var(--cl-gray-2);
+ border-radius: 0;
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ overflow: hidden;
+ flex-direction: column;
+ position: absolute;
+ bottom: 100%;
+ z-index: 1;
+}
+
+#chat-commands-list {
+ display: flex;
+ max-height: 50vh;
+ overflow-y: auto;
+ flex-direction: column;
+ width: 100%;
+ padding: 0.5rem;
+}
+
+.chat-command-item {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.25rem;
+ padding: 0.5rem 1rem;
+ cursor: pointer;
+ border-radius: 0;
+}
+
+.chat-command-item.active {
+ background: var(--cl-gray-3);
+}
+
+.chat-command-item-name {
+ font-weight: bold;
+}
+
+.chat-command-item-desc {
+ font-size: 0.8rem;
+ opacity: 0.8;
+}
+
+.chat-command-arg-active {
+ color: var(--accent);
+ font-weight: bold;
+ opacity: 1;
+}
+
+.chat-command-code {
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+ background-color: var(--cl-gray-1);
+ color: var(--foreground);
+ padding: 0.1rem 0.3rem;
+ border-radius: 0;
+}
+
/* Emotes */
#smiles-wrap {
@@ -1006,10 +1308,6 @@ footer#footer {
}
/*
- * End chat
- */
-
-/*
* Scrollbar
*/
@@ -1028,28 +1326,9 @@ html {
::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.1);
+ border-radius: .5rem;
}
::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.2);
}
-
-/* Mobile page fullscreen */
-
-.mobile-view #chatbox {
- padding-top: 0;
- border-top: 0;
-}
-
-.mobile-view #chat {
- padding: 0 1rem;
-}
-
-.mobile-view #chat .controls {
- padding-bottom: 0;
-}
-
-.mobile-view #optionsPanel {
- top: 2.2rem;
- bottom: 0;
-}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage