Playlist.css
⎇
Raw
1.playlist-container {
2 display: flex;
3 flex: 1;
4 min-width: 0;
5 flex-direction: column;
6 .save-dialog {
7 max-width: 300px;
8 .save-buttons {
9 display: flex;
10 gap: 0.5rem;
11 justify-content: end;
12 }
13 }
14
15 & > .draggable-list {
16 flex: 1;
17 overflow-y: auto;
18 padding: 0.5rem;
19 display: flex;
20 flex-direction: column;
21 gap: 0.25rem;
22 contain: strict;
23 content-visibility: auto;
24
25 & > .playlist-item {
26 padding: 0.5rem;
27 background-color: var(--color-c);
28 display: flex;
29 align-items: center;
30 gap: 1.5rem;
31 border-width: 0;
32 border-color: var(--color-d);
33
34 div {
35 display: flex;
36 align-items: center;
37 }
38
39 span {
40 flex-grow: 1;
41 text-overflow: ellipsis;
42 overflow: hidden;
43 }
44
45 &.active {
46 background-color: var(--color-c-highlight);
47 font-weight: bold;
48 }
49
50 @media (hover: hover) {
51 &:not(.drop-target-top-border):not(.drop-target-bottom-border):hover {
52 background-color: var(--color-c-highlight);
53 }
54 }
55 &.drop-target-top-border,
56 &.drop-target-bottom-border {
57 border-style: solid;
58 }
59
60 &.drop-target-top-border {
61 border-top-width: 2px;
62 }
63
64 &.drop-target-bottom-border {
65 border-bottom-width: 2px;
66 }
67 }
68 }
69}
70
71.playlist-header {
72 display: flex;
73 gap: 1.5rem;
74 align-items: center;
75 padding: 0.5rem;
76 font-weight: bold;
77 border-bottom: 1px solid var(--color-c);
78 flex-wrap: wrap;
79
80 & > .playlist-header-title {
81 display: inherit;
82 gap: inherit;
83 margin-right: auto;
84 min-width: 0;
85 & > span {
86 text-wrap: nowrap;
87 overflow: hidden;
88 text-overflow: ellipsis;
89 }
90 }
91
92 & > .button-container {
93 display: flex;
94 gap: inherit;
95 flex-direction: row;
96 & > button {
97 background: none;
98 padding: 0;
99 @media (hover: hover) {
100 &:hover {
101 background: none;
102 }
103 }
104 }
105 }
106}
107
108.playlist-drag-btn {
109 cursor: grab;
110 height: 100%;
111}
112
113.drop-area-end {
114 flex-grow: 1;
115 min-height: 2rem;
116}
117
118.video-stage {
119 position: relative;
120 flex: 0 1 auto;
121 width: 100%;
122 aspect-ratio: 16 / 9;
123 max-height: min(45%, 60vh);
124 min-height: 140px;
125 border-top: 1px solid var(--color-c);
126 background: #000;
127 display: flex;
128 align-items: center;
129 justify-content: center;
130 z-index: 2;
131
132 & > .video-element {
133 display: block;
134 width: 100%;
135 height: 100%;
136 object-fit: contain;
137 background: #000;
138 }
139
140 & > .video-theater-close {
141 position: absolute;
142 top: 0.75rem;
143 right: 0.75rem;
144 z-index: 3;
145 padding: 0;
146 background: rgba(0, 0, 0, 0.6);
147 @media (hover: hover) {
148 &:hover {
149 background: rgba(0, 0, 0, 0.85);
150 }
151 }
152 }
153
154 &.theater {
155 position: fixed;
156 inset: 0;
157 width: auto;
158 height: auto;
159 max-height: none;
160 aspect-ratio: auto;
161 padding: 1rem 1rem 8rem;
162 background: rgba(0, 0, 0, 0.96);
163 z-index: 30;
164
165 & > .video-element {
166 max-width: 100%;
167 max-height: 100%;
168 }
169 }
170}
171