]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/videos/+video-watch/video-watch.component.scss
Improve videos list client performance
[github/Chocobozzz/PeerTube.git] / client / src / app / videos / +video-watch / video-watch.component.scss
CommitLineData
63c4db6d
C
1@import '_variables';
2@import '_mixins';
3
191764f3
C
4.root-row {
5 flex-direction: column;
6}
7
8.blacklisted-label {
9 font-weight: $font-semibold;
10}
11
09edde40 12#video-element-wrapper {
be6a4802
C
13 background-color: #000;
14 display: flex;
15 justify-content: center;
b34a444e 16 flex-grow: 1;
6d88de72
C
17
18 .remote-server-down {
19 color: #fff;
20 display: flex;
21 flex-direction: column;
22 align-items: center;
23 text-align: center;
24 justify-content: center;
25 background-color: #141313;
26 width: 100%;
6d88de72 27 font-size: 24px;
3b492bff 28 height: 500px;
6d88de72
C
29
30 @media screen and (max-width: 1000px) {
31 font-size: 20px;
32 }
7b272fd7 33
acbffe9c 34 @media screen and (max-width: 600px) {
6d88de72 35 font-size: 16px;
b9828abe 36 }
6d88de72
C
37 }
38
39 /deep/ .video-js {
432e7ddc
C
40 width: 888px;
41 height: 500px;
3b492bff
C
42
43 &.vjs-theater-enabled {
44 height: calc(100vh - #{$header-height} - #{$theater-bottom-space});
45 width: 100%;
46 }
b9828abe 47
7b272fd7
C
48 // VideoJS create an inner video player
49 video {
50 outline: 0;
b9828abe 51 position: relative !important;
7b272fd7 52 }
be6a4802 53 }
054a103b 54
3b492bff
C
55 @media screen and (max-width: 600px) {
56 .remote-server-down,
57 /deep/ .video-js {
58 width: 100vw;
59 height: calc(100vw / 1.7); // 16/9
60 }
054a103b 61 }
e56b20f5
C
62}
63
bbe0f064 64.alert {
2186386c
C
65 text-align: center;
66}
67
9c89a45c
C
68#video-not-found {
69 height: 300px;
70 line-height: 300px;
71 margin-top: 50px;
72 text-align: center;
fb4fd623
C
73 font-weight: $font-semibold;
74 font-size: 15px;
9c89a45c
C
75}
76
b1fa3eba
C
77.video-bottom {
78 margin-top: 40px;
d1992b93 79
b1fa3eba
C
80 .video-info {
81 flex-grow: 1;
20acba1c
C
82 // Set min width for flex item
83 min-width: 1px;
e452d2e2 84 max-width: 100%;
3eeeb87f 85
1f788f20 86 .video-info-first-row {
b1fa3eba 87 display: flex;
1f788f20 88
196b7790 89 & > div:first-child {
1f788f20
C
90 flex-grow: 1;
91 }
d1992b93 92
b1fa3eba 93 .video-info-name {
b2731bff 94 margin-right: 30px;
196b7790 95 min-height: 40px; // Align with the action buttons
b1fa3eba
C
96 font-size: 27px;
97 font-weight: $font-semibold;
98 flex-grow: 1;
99 }
09223546 100
1f788f20 101 .video-info-date-views {
1f788f20 102 flex-grow: 1;
8ff3f883
C
103 margin-bottom: 10px;
104 margin-right: 10px;
105 font-size: 16px;
1f788f20
C
106 }
107
108 .video-info-channel {
109 font-weight: $font-semibold;
110 font-size: 15px;
95166f9a
C
111
112 a {
113 @include disable-default-a-behaviour;
114
9a0fc840 115 color: var(--mainForegroundColor);
95166f9a
C
116
117 &:hover {
118 opacity: 0.8;
119 }
52d9f792
C
120
121 img {
122 @include avatar(18px);
123
124 margin: -2px 2px 0 5px;
125 }
95166f9a 126 }
22a16e36
C
127
128 my-subscribe-button {
22a16e36
C
129 margin-left: 5px;
130 }
1f788f20
C
131 }
132
b7f5b524
C
133 .video-info-by {
134
135 a {
136 @include disable-default-a-behaviour;
03e12d7c 137
b7f5b524
C
138 display: inline;
139 align-items: center;
140 font-size: 13px;
9a0fc840 141 color: var(--mainForegroundColor);
1f788f20 142
b7f5b524
C
143 span:hover {
144 opacity: 0.8;
145 }
146
147 img {
148 @include avatar(18px);
66dc5907 149
b7f5b524
C
150 margin-top: -2px;
151 margin-left: 7px;
152 }
153 }
6e33bf28 154
b7f5b524
C
155 my-help {
156 position: relative;
157 top: 1px;
158 margin-left: 2px;
6e33bf28 159 }
1f788f20 160 }
b2731bff 161
244e76a5
RK
162 my-video-feed {
163 margin-left: 5px;
164 margin-top: 1px;
165 }
166
1f788f20 167 .video-actions-rates {
8ff3f883 168 margin: 20px 0 10px 0;
2303a803 169 align-items: start;
09223546 170
1f788f20
C
171 .video-actions {
172 height: 40px; // Align with the title
1f788f20
C
173 display: flex;
174 align-items: center;
09223546 175
1f788f20
C
176 .action-button:not(:first-child), .action-more {
177 margin-left: 10px;
178 }
0727cab0 179
1f788f20
C
180 .action-button {
181 @include peertube-button;
182 @include grey-button;
7b272fd7 183
1f788f20
C
184 font-size: 15px;
185 font-weight: $font-semibold;
186 display: inline-block;
187 padding: 0 10px 0 10px;
07fa4c97 188 white-space: nowrap;
7b272fd7 189
63347a0f
C
190 &::after {
191 display: none;
192 }
193
1f788f20
C
194 .icon {
195 @include icon(21px);
7b272fd7 196
1f788f20
C
197 position: relative;
198 top: -2px;
199
200 &.icon-like {
201 background-image: url('../../../assets/images/video/like-grey.svg');
202 }
203
204 &.icon-dislike {
205 background-image: url('../../../assets/images/video/dislike-grey.svg');
206 }
7b272fd7 207
07fa4c97
C
208 &.icon-support {
209 background-image: url('../../../assets/images/video/heart.svg');
210 }
211
1f788f20
C
212 &.icon-share {
213 background-image: url('../../../assets/images/video/share.svg');
214 }
215
216 &.icon-more {
217 background-image: url('../../../assets/images/video/more.svg');
218 top: -1px;
219 }
7b272fd7 220 }
d38b8281 221
8c40b7dc
C
222 .icon-text {
223 margin-left: 3px;
196b7790
C
224 }
225
1f788f20 226 &.action-button-like.activated {
41a676db 227 background-color: $green;
4e1b0973 228
1f788f20
C
229 .icon-like {
230 background-image: url('../../../assets/images/video/like-white.svg');
231 }
7b272fd7 232 }
6e33bf28 233
1f788f20 234 &.action-button-dislike.activated {
41a676db 235 background-color: $red;
d38b8281 236
1f788f20
C
237 .icon-dislike {
238 background-image: url('../../../assets/images/video/dislike-white.svg');
239 }
7b272fd7 240 }
b1fa3eba 241 }
d38b8281 242
1f788f20
C
243 .action-more {
244 display: inline-block;
4f8c0eb0 245
1f788f20
C
246 .dropdown-menu .dropdown-item {
247 padding: 6px 24px;
7b272fd7 248
1f788f20
C
249 .icon {
250 @include icon(24px);
7b272fd7 251
1f788f20
C
252 margin-right: 10px;
253 position: relative;
254 top: -1px;
5f0805d3 255
1f788f20
C
256 &.icon-download {
257 background-image: url('../../../assets/images/video/download-black.svg');
258 }
5f0805d3 259
1f788f20
C
260 &.icon-edit {
261 background-image: url('../../../assets/images/global/edit-black.svg');
262 }
4635f59d 263
1f788f20
C
264 &.icon-alert {
265 background-image: url('../../../assets/images/video/alert.svg');
266 }
7b272fd7 267
1f788f20
C
268 &.icon-blacklist {
269 background-image: url('../../../assets/images/video/blacklist.svg');
270 }
26b7305a 271
191764f3
C
272 &.icon-unblacklist {
273 background-image: url('../../../assets/images/global/undo.svg');
274 }
275
26b7305a
C
276 &.icon-delete {
277 background-image: url('../../../assets/images/global/delete-black.svg');
278 }
5f0805d3 279 }
7b272fd7 280 }
b1fa3eba 281 }
4e1b0973 282 }
6a9e1d42 283
1f788f20 284 .video-info-likes-dislikes-bar {
2d9fea16
RK
285 $likes-bar-height: 2px;
286 height: $likes-bar-height;
287 margin-top: -$likes-bar-height;
1f788f20 288 width: 186px;
1d6587aa 289 background-color: $red;
2d9fea16
RK
290 position: relative;
291 top: 10px;
6a9e1d42 292
1f788f20
C
293 .likes-bar {
294 height: 100%;
1d6587aa 295 background-color: $green;
1f788f20 296 }
6a9e1d42
C
297 }
298 }
d1992b93
C
299 }
300
b1fa3eba
C
301 .video-info-description {
302 margin: 20px 0;
303 font-size: 15px;
d1992b93 304
54a932e8 305 .video-info-description-html {
7a14004b 306 @include peertube-word-wrap;
54a932e8
C
307 }
308
9e9afa45
C
309 .glyphicon, .description-loading {
310 margin-left: 3px;
311 }
312
80958c78
C
313 .description-loading {
314 display: inline-block;
315 }
316
b1fa3eba 317 .video-info-description-more {
2de96f4d 318 cursor: pointer;
b1fa3eba
C
319 font-weight: $font-semibold;
320 color: #585858;
321 font-size: 14px;
2de96f4d
C
322
323 .glyphicon {
324 position: relative;
325 top: 2px;
326 }
327 }
09223546
C
328 }
329
1f788f20
C
330 .video-attributes .video-attribute {
331 font-size: 13px;
332 display: block;
333 margin-bottom: 12px;
334
335 .video-attribute-label {
c6c357ac
C
336 min-width: 91px;
337 padding-right: 5px;
1f788f20
C
338 display: inline-block;
339 color: #585858;
340 font-weight: $font-bold;
3eeeb87f 341 }
4278710d
C
342
343 a.video-attribute-value {
344 @include disable-default-a-behaviour;
9a0fc840 345 color: var(--mainForegroundColor);
4278710d
C
346
347 &:hover {
348 opacity: 0.9;
349 }
350 }
351
352 &.video-attribute-tags {
353 .video-attribute-value:not(:nth-child(2)) {
354 &::before {
355 content: ', '
356 }
357 }
358 }
3eeeb87f 359 }
41c3dfac
C
360 }
361
9a2f7ea7 362 /deep/ .other-videos {
1c66c35c 363 padding-left: 15px;
8ff3f883 364 width: 260px;
f7ecffa4 365
41c3dfac 366 .title-page {
9a2f7ea7 367 margin-top: 0 !important;
41c3dfac
C
368 }
369
8ff3f883 370 .video-miniature {
41c3dfac
C
371 display: flex;
372 height: 100%;
373 margin-bottom: 20px;
9e01e510 374 flex-wrap: wrap;
a01f107b 375
41c3dfac 376 .video-miniature-information {
9e01e510 377 flex-grow: 1;
22a16e36
C
378 }
379
380 .video-thumbnail {
381 margin-right: 10px
41c3dfac
C
382 }
383 }
a01f107b 384 }
d1992b93 385}
41c3dfac 386
1d6587aa
C
387my-video-comments {
388 display: inline-block;
66467298 389 width: 100%;
1d6587aa
C
390 margin-bottom: 20px;
391}
392
2b3b76ab
C
393// If the view is not expanded, take into account the menu
394.privacy-concerns {
395 width: calc(100% - #{$menu-width});
396}
397
8ff3f883
C
398@media screen and (max-width: $small-view) {
399 .privacy-concerns {
400 margin-left: $menu-width;
401 }
402}
403
2b3b76ab
C
404:host-context(.expanded) {
405 .privacy-concerns {
406 width: 100%;
8ff3f883 407 margin-left: 0;
2b3b76ab
C
408 }
409}
410
411.privacy-concerns {
412 position: fixed;
413 bottom: 0;
414
415 padding: 5px 15px;
416
417 display: flex;
418 align-items: center;
419 justify-content: flex-start;
420 background-color: rgba(0, 0, 0, 0.9);
421 color: #fff;
422
423 .privacy-concerns-text {
424 margin: 0 5px;
425 }
426
427 a {
428 @include disable-default-a-behaviour;
429
9a0fc840 430 color: var(--mainColor);
2b3b76ab
C
431 transition: color 0.3s;
432
433 &:hover {
434 color: #fff;
435 }
436 }
437
438 .privacy-concerns-okay {
9a0fc840 439 background-color: var(--mainColor);
2b3b76ab
C
440 padding: 5px 8px 5px 7px;
441 margin-left: auto;
442 border-radius: 3px;
443 cursor: pointer;
444 transition: background-color 0.3s;
445 font-weight: $font-semibold;
446
447 &:hover {
448 background-color: #000;
449 }
450 }
451}
452
b9828abe 453
07fa4c97 454@media screen and (max-width: 1600px) {
8ff3f883
C
455 .video-bottom .video-info .video-attributes .video-attribute {
456 margin-bottom: 5px;
b9828abe
C
457 }
458}
b2731bff 459
23f4c3d4 460@media screen and (max-width: 1300px) {
2b3b76ab
C
461 .privacy-concerns {
462 font-size: 12px;
463 padding: 2px 5px;
464
465 .privacy-concerns-text {
466 margin: 0;
467 }
468 }
07fa4c97
C
469}
470
1f788f20 471@media screen and (max-width: 600px) {
b2731bff
C
472 .video-bottom {
473 margin: 20px 0 0 0;
1f788f20
C
474
475 .video-info {
476
477 .video-info-first-row {
478
479 .video-info-name {
480 font-size: 20px;
481 height: auto;
482 }
483 }
484 }
b2731bff 485 }
2b3b76ab 486
2303a803 487 /deep/ .other-videos {
a8981e0b
C
488 /deep/ .video-miniature {
489 flex-direction: column;
a8981e0b
C
490 }
491 }
492
2b3b76ab
C
493 .privacy-concerns {
494 width: 100%;
495
496 strong {
497 display: none;
498 }
499 }
b2731bff 500}
07fa4c97
C
501
502@media screen and (max-width: 450px) {
503 .video-bottom .action-button .icon-text {
504 display: none !important;
505 }
506}