]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/videos/+video-watch/video-watch.component.scss
add theming via css custom properties
[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 {
3b766e18
RK
40 width: calc(100vw - 240px);
41 height: auto;
42 max-height: 500px;
3b492bff
C
43
44 &.vjs-theater-enabled {
45 height: calc(100vh - #{$header-height} - #{$theater-bottom-space});
46 width: 100%;
47 }
b9828abe 48
7b272fd7
C
49 // VideoJS create an inner video player
50 video {
51 outline: 0;
b9828abe 52 position: relative !important;
7b272fd7 53 }
be6a4802 54 }
054a103b 55
3b492bff
C
56 @media screen and (max-width: 600px) {
57 .remote-server-down,
58 /deep/ .video-js {
59 width: 100vw;
60 height: calc(100vw / 1.7); // 16/9
61 }
054a103b 62 }
e56b20f5
C
63}
64
bbe0f064 65.alert {
2186386c
C
66 text-align: center;
67}
68
9c89a45c
C
69#video-not-found {
70 height: 300px;
71 line-height: 300px;
72 margin-top: 50px;
73 text-align: center;
fb4fd623
C
74 font-weight: $font-semibold;
75 font-size: 15px;
9c89a45c
C
76}
77
b1fa3eba
C
78.video-bottom {
79 margin-top: 40px;
d1992b93 80
b1fa3eba
C
81 .video-info {
82 flex-grow: 1;
20acba1c
C
83 // Set min width for flex item
84 min-width: 1px;
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
C
101 .video-info-date-views {
102 font-size: 16px;
103 margin-bottom: 10px;
104 flex-grow: 1;
105 }
106
107 .video-info-channel {
108 font-weight: $font-semibold;
109 font-size: 15px;
95166f9a
C
110
111 a {
112 @include disable-default-a-behaviour;
113
9a0fc840 114 color: var(--mainForegroundColor);
95166f9a
C
115
116 &:hover {
117 opacity: 0.8;
118 }
52d9f792
C
119
120 img {
121 @include avatar(18px);
122
123 margin: -2px 2px 0 5px;
124 }
95166f9a 125 }
22a16e36
C
126
127 my-subscribe-button {
22a16e36
C
128 margin-left: 5px;
129 }
1f788f20
C
130 }
131
b7f5b524
C
132 .video-info-by {
133
134 a {
135 @include disable-default-a-behaviour;
03e12d7c 136
b7f5b524
C
137 display: inline;
138 align-items: center;
139 font-size: 13px;
9a0fc840 140 color: var(--mainForegroundColor);
1f788f20 141
b7f5b524
C
142 span:hover {
143 opacity: 0.8;
144 }
145
146 img {
147 @include avatar(18px);
66dc5907 148
b7f5b524
C
149 margin-top: -2px;
150 margin-left: 7px;
151 }
152 }
6e33bf28 153
b7f5b524
C
154 my-help {
155 position: relative;
156 top: 1px;
157 margin-left: 2px;
6e33bf28 158 }
1f788f20 159 }
b2731bff 160
244e76a5
RK
161 my-video-feed {
162 margin-left: 5px;
163 margin-top: 1px;
164 }
165
1f788f20 166 .video-actions-rates {
2303a803
RK
167 margin-top: 20px;
168 margin-bottom: 10px;
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
C
288 width: 186px;
289 background-color: #E5E5E5;
2d9fea16
RK
290 position: relative;
291 top: 10px;
6a9e1d42 292
1f788f20
C
293 .likes-bar {
294 height: 100%;
295 background-color: #39CC0B;
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 {
ea5cd0fa 363 padding-left: 1em;
f7ecffa4 364
41c3dfac 365 .title-page {
9a2f7ea7 366 margin-top: 0 !important;
41c3dfac
C
367 }
368
369 /deep/ .video-miniature {
370 display: flex;
371 height: 100%;
372 margin-bottom: 20px;
9e01e510 373 flex-wrap: wrap;
a01f107b 374
41c3dfac 375 .video-miniature-information {
9e01e510 376 flex-grow: 1;
22a16e36
C
377 }
378
379 .video-thumbnail {
380 margin-right: 10px
41c3dfac
C
381 }
382 }
a01f107b 383 }
d1992b93 384}
41c3dfac 385
2b3b76ab
C
386// If the view is not expanded, take into account the menu
387.privacy-concerns {
388 width: calc(100% - #{$menu-width});
389}
390
391:host-context(.expanded) {
392 .privacy-concerns {
393 width: 100%;
394 }
395}
396
397.privacy-concerns {
398 position: fixed;
399 bottom: 0;
400
401 padding: 5px 15px;
402
403 display: flex;
404 align-items: center;
405 justify-content: flex-start;
406 background-color: rgba(0, 0, 0, 0.9);
407 color: #fff;
408
409 .privacy-concerns-text {
410 margin: 0 5px;
411 }
412
413 a {
414 @include disable-default-a-behaviour;
415
9a0fc840 416 color: var(--mainColor);
2b3b76ab
C
417 transition: color 0.3s;
418
419 &:hover {
420 color: #fff;
421 }
422 }
423
424 .privacy-concerns-okay {
9a0fc840 425 background-color: var(--mainColor);
2b3b76ab
C
426 padding: 5px 8px 5px 7px;
427 margin-left: auto;
428 border-radius: 3px;
429 cursor: pointer;
430 transition: background-color 0.3s;
431 font-weight: $font-semibold;
432
433 &:hover {
434 background-color: #000;
435 }
436 }
437}
438
b9828abe 439
07fa4c97 440@media screen and (max-width: 1600px) {
b9828abe
C
441 .video-bottom {
442 .video-info {
1f788f20 443 .video-info-first-row {
b9828abe 444 flex-direction: column;
2d9fea16 445 margin-bottom: 20px;
b9828abe
C
446 }
447
1f788f20 448 .video-info-date-views {
b9828abe
C
449 flex-direction: column;
450 margin-bottom: 30px;
451
452 .video-info-likes-dislikes-bar {
453 margin-top: 0;
454 }
455 }
1f788f20
C
456
457 .video-attributes .video-attribute {
458 margin-bottom: 5px;
459 }
b9828abe
C
460 }
461 }
462}
b2731bff 463
23f4c3d4 464@media screen and (max-width: 1300px) {
9e01e510
S
465 .video-bottom {
466 flex-direction: column;
467 }
468
2303a803 469 /deep/ .other-videos {
a8981e0b 470 padding-left: 0 !important;
07fa4c97 471 }
2b3b76ab
C
472
473 .privacy-concerns {
474 font-size: 12px;
475 padding: 2px 5px;
476
477 .privacy-concerns-text {
478 margin: 0;
479 }
480 }
07fa4c97
C
481}
482
3b766e18
RK
483@media (max-width: 1150px) {
484 .w-100-until-1150px { width: 100% !important }
485}
486
1f788f20 487@media screen and (max-width: 600px) {
b2731bff
C
488 .video-bottom {
489 margin: 20px 0 0 0;
1f788f20
C
490
491 .video-info {
492
493 .video-info-first-row {
494
495 .video-info-name {
496 font-size: 20px;
497 height: auto;
498 }
499 }
500 }
b2731bff 501 }
2b3b76ab 502
2303a803 503 /deep/ .other-videos {
a8981e0b
C
504 /deep/ .video-miniature {
505 flex-direction: column;
a8981e0b
C
506 }
507 }
508
2b3b76ab
C
509 .privacy-concerns {
510 width: 100%;
511
512 strong {
513 display: none;
514 }
515 }
b2731bff 516}
07fa4c97
C
517
518@media screen and (max-width: 450px) {
519 .video-bottom .action-button .icon-text {
520 display: none !important;
521 }
522}