]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - client/src/app/videos/+video-watch/video-watch.component.scss
Add concept of video state, and add ability to wait transcoding before
[github/Chocobozzz/PeerTube.git] / client / src / app / videos / +video-watch / video-watch.component.scss
1 @import '_variables';
2 @import '_mixins';
3
4 #video-element-wrapper {
5 background-color: #000;
6 display: flex;
7 justify-content: center;
8
9 /deep/ .video-js {
10 width: 888px;
11 height: 500px;
12
13 @media screen and (max-width: 600px) {
14 width: 100vw;
15 height: calc(100vw / 1.7); // 16/9
16 }
17
18 // VideoJS create an inner video player
19 video {
20 outline: 0;
21 position: relative !important;
22 }
23 }
24
25 /deep/ .video-js.vjs-theater-enabled {
26 width: 100%;
27 height: calc(100vh - #{$header-height} - #{$theater-bottom-space});
28 }
29 }
30
31 #warning-transcoding {
32 text-align: center;
33 }
34
35 #video-not-found {
36 height: 300px;
37 line-height: 300px;
38 margin-top: 50px;
39 text-align: center;
40 font-weight: $font-semibold;
41 font-size: 15px;
42 }
43
44 .video-bottom {
45 margin-top: 40px;
46 display: flex;
47
48 .video-info {
49 flex-grow: 1;
50 margin-right: 40px;
51 // Set min width for flex item
52 min-width: 1px;
53
54 .video-info-first-row {
55 display: flex;
56
57 & > div:first-child {
58 flex-grow: 1;
59 }
60
61 .video-info-name {
62 margin-right: 30px;
63 min-height: 40px; // Align with the action buttons
64 font-size: 27px;
65 font-weight: $font-semibold;
66 flex-grow: 1;
67 }
68
69 .video-info-date-views {
70 font-size: 16px;
71 margin-bottom: 10px;
72 flex-grow: 1;
73 }
74
75 .video-info-channel {
76 font-weight: $font-semibold;
77 font-size: 15px;
78
79 a {
80 @include disable-default-a-behaviour;
81
82 color: #000;
83
84 &:hover {
85 opacity: 0.8;
86 }
87 }
88
89 my-help {
90 display: inline-block;
91 }
92 }
93
94 .video-info-by a {
95 @include disable-default-a-behaviour;
96
97 display: flex;
98 align-items: center;
99 font-size: 13px;
100 color: #000;
101
102 span:hover {
103 opacity: 0.8;
104 }
105
106 img {
107 @include avatar(18px);
108
109 margin-left: 7px;
110 }
111 }
112
113 my-video-feed {
114 margin-left: 5px;
115 margin-top: 1px;
116 }
117
118 .video-actions-rates {
119 display: flex;
120 flex-direction: column;
121 align-items: flex-end;
122
123 .video-actions {
124 height: 40px; // Align with the title
125 display: flex;
126 align-items: center;
127
128 .action-button:not(:first-child), .action-more {
129 margin-left: 10px;
130 }
131
132 .action-button {
133 @include peertube-button;
134 @include grey-button;
135
136 font-size: 15px;
137 font-weight: $font-semibold;
138 display: inline-block;
139 padding: 0 10px 0 10px;
140 white-space: nowrap;
141
142 .icon {
143 @include icon(21px);
144
145 position: relative;
146 top: -2px;
147
148 &.icon-like {
149 background-image: url('../../../assets/images/video/like-grey.svg');
150 }
151
152 &.icon-dislike {
153 background-image: url('../../../assets/images/video/dislike-grey.svg');
154 }
155
156 &.icon-support {
157 background-image: url('../../../assets/images/video/heart.svg');
158 }
159
160 &.icon-share {
161 background-image: url('../../../assets/images/video/share.svg');
162 }
163
164 &.icon-more {
165 background-image: url('../../../assets/images/video/more.svg');
166 top: -1px;
167 }
168 }
169
170 .icon-text {
171 margin-left: 3px;
172 }
173
174 &.action-button-like.activated {
175 background-color: #39CC0B;
176
177 .icon-like {
178 background-image: url('../../../assets/images/video/like-white.svg');
179 }
180 }
181
182 &.action-button-dislike.activated {
183 background-color: #FF0000;
184
185 .icon-dislike {
186 background-image: url('../../../assets/images/video/dislike-white.svg');
187 }
188 }
189 }
190
191 .action-more {
192 display: inline-block;
193
194 .dropdown-menu .dropdown-item {
195 padding: 6px 24px;
196
197 .icon {
198 @include icon(24px);
199
200 margin-right: 10px;
201 position: relative;
202 top: -1px;
203
204 &.icon-download {
205 background-image: url('../../../assets/images/video/download-black.svg');
206 }
207
208 &.icon-edit {
209 background-image: url('../../../assets/images/global/edit-black.svg');
210 }
211
212 &.icon-alert {
213 background-image: url('../../../assets/images/video/alert.svg');
214 }
215
216 &.icon-blacklist {
217 background-image: url('../../../assets/images/video/blacklist.svg');
218 }
219 }
220 }
221 }
222 }
223
224 .video-info-likes-dislikes-bar {
225 height: 5px;
226 width: 186px;
227 background-color: #E5E5E5;
228 margin-top: 25px;
229
230 .likes-bar {
231 height: 100%;
232 background-color: #39CC0B;
233 }
234 }
235 }
236 }
237
238 .video-info-description {
239 margin: 20px 0;
240 font-size: 15px;
241
242 .video-info-description-html {
243 @include peertube-word-wrap;
244 }
245
246 .description-loading {
247 display: inline-block;
248 }
249
250 .video-info-description-more {
251 cursor: pointer;
252 font-weight: $font-semibold;
253 color: #585858;
254 font-size: 14px;
255
256 .glyphicon {
257 position: relative;
258 top: 2px;
259 }
260 }
261 }
262
263 .video-attributes .video-attribute {
264 font-size: 13px;
265 display: block;
266 margin-bottom: 12px;
267
268 .video-attribute-label {
269 width: 86px;
270 display: inline-block;
271 color: #585858;
272 font-weight: $font-bold;
273 }
274 }
275 }
276
277 .other-videos {
278 padding-left: 1em;
279
280 .title-page {
281 margin-top: 0;
282 }
283
284 /deep/ .video-miniature {
285 display: flex;
286 height: 100%;
287 margin-bottom: 20px;
288
289 .video-miniature-information {
290 margin-left: 10px;
291 }
292 }
293 }
294 }
295
296 // If the view is not expanded, take into account the menu
297 .privacy-concerns {
298 width: calc(100% - #{$menu-width});
299 }
300
301 :host-context(.expanded) {
302 .privacy-concerns {
303 width: 100%;
304 }
305 }
306
307 .privacy-concerns {
308 position: fixed;
309 bottom: 0;
310
311 padding: 5px 15px;
312
313 display: flex;
314 align-items: center;
315 justify-content: flex-start;
316 background-color: rgba(0, 0, 0, 0.9);
317 color: #fff;
318
319 .privacy-concerns-text {
320 margin: 0 5px;
321 }
322
323 a {
324 @include disable-default-a-behaviour;
325
326 color: $orange-color;
327 transition: color 0.3s;
328
329 &:hover {
330 color: #fff;
331 }
332 }
333
334 .privacy-concerns-okay {
335 background-color: $orange-color;
336 padding: 5px 8px 5px 7px;
337 margin-left: auto;
338 border-radius: 3px;
339 cursor: pointer;
340 transition: background-color 0.3s;
341 font-weight: $font-semibold;
342
343 &:hover {
344 background-color: #000;
345 }
346 }
347 }
348
349
350 @media screen and (max-width: 1600px) {
351 .video-bottom {
352 .video-info {
353 margin-right: 20px;
354
355 .video-info-first-row {
356 flex-direction: column;
357 margin-bottom: 30px;
358
359 .video-actions-rates {
360 margin-top: 20px;
361 align-items: start;
362
363 .video-info-likes-dislikes-bar {
364 margin-top: 10px;
365 }
366 }
367 }
368
369 .video-info-date-views {
370 flex-direction: column;
371 margin-bottom: 30px;
372
373 .video-info-likes-dislikes-bar {
374 margin-top: 0;
375 }
376 }
377
378 .video-attributes .video-attribute {
379 margin-bottom: 5px;
380 }
381 }
382 }
383 }
384
385 @media screen and (max-width: 1300px) {
386 .other-videos {
387 display: none;
388 }
389
390 .privacy-concerns {
391 font-size: 12px;
392 padding: 2px 5px;
393
394 .privacy-concerns-text {
395 margin: 0;
396 }
397 }
398 }
399
400 @media screen and (max-width: 600px) {
401 .video-bottom {
402 margin: 20px 0 0 0;
403
404 .video-info {
405
406 .video-info-first-row {
407
408 .video-info-name {
409 font-size: 20px;
410 height: auto;
411 }
412 }
413 }
414 }
415
416 .privacy-concerns {
417 width: 100%;
418
419 strong {
420 display: none;
421 }
422 }
423 }
424
425 @media screen and (max-width: 450px) {
426 .video-bottom .action-button .icon-text {
427 display: none !important;
428 }
429 }