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 &:not(.drop-target-top-border):not(.drop-target-bottom-border):hover {
51 background-color: var(--color-c-highlight);
52 }
53 &.drop-target-top-border,
54 &.drop-target-bottom-border {
55 border-style: solid;
56 }
57
58 &.drop-target-top-border {
59 border-top-width: 2px;
60 }
61
62 &.drop-target-bottom-border {
63 border-bottom-width: 2px;
64 }
65 }
66 }
67}
68
69.playlist-header {
70 display: flex;
71 gap: 1.5rem;
72 align-items: center;
73 padding: 0.5rem;
74 font-weight: bold;
75 border-bottom: 1px solid var(--color-c);
76 flex-wrap: wrap;
77
78 & > .playlist-header-title {
79 display: inherit;
80 gap: inherit;
81 margin-right: auto;
82 min-width: 0;
83 & > span {
84 text-wrap: nowrap;
85 overflow: hidden;
86 text-overflow: ellipsis;
87 }
88 }
89
90 & > .button-container {
91 display: flex;
92 gap: inherit;
93 flex-direction: row;
94 & > button {
95 background: none;
96 padding: 0;
97 &:hover {
98 background: none;
99 }
100 }
101 }
102}
103
104.playlist-drag-btn {
105 cursor: grab;
106 height: 100%;
107}
108
109.drop-area-end {
110 flex-grow: 1;
111 min-height: 2rem;
112}
113
114.video-stage {
115 position: relative;
116 flex: 0 1 auto;
117 width: 100%;
118 aspect-ratio: 16 / 9;
119 max-height: min(45%, 60vh);
120 min-height: 140px;
121 border-top: 1px solid var(--color-c);
122 background: #000;
123 display: flex;
124 align-items: center;
125 justify-content: center;
126 z-index: 2;
127
128 & > .video-element {
129 display: block;
130 width: 100%;
131 height: 100%;
132 object-fit: contain;
133 background: #000;
134 }
135
136 & > .video-theater-close {
137 position: absolute;
138 top: 0.75rem;
139 right: 0.75rem;
140 z-index: 3;
141 padding: 0;
142 background: rgba(0, 0, 0, 0.6);
143 &:hover {
144 background: rgba(0, 0, 0, 0.85);
145 }
146 }
147
148 &.theater {
149 position: fixed;
150 inset: 0;
151 width: auto;
152 height: auto;
153 max-height: none;
154 aspect-ratio: auto;
155 padding: 1rem 1rem 8rem;
156 background: rgba(0, 0, 0, 0.96);
157 z-index: 30;
158
159 & > .video-element {
160 max-width: 100%;
161 max-height: 100%;
162 }
163 }
164}
165