]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/sass/application.scss
Merge branch 'release/3.3.0' into develop
[github/Chocobozzz/PeerTube.git] / client / src / sass / application.scss
CommitLineData
161b061d 1$icon-font-path: '~@neos21/bootstrap3-glyphicons/assets/fonts/';
63c4db6d 2
8cbc40b2
C
3@use '_variables' as *;
4@use '_mixins' as *;
dcbc29d5 5
fa12eacc 6@use '_fonts';
63c4db6d 7
fa12eacc 8@use './classes';
100d9ce2 9
24893b52
C
10@use './custom-markup';
11
e89cbbdf
C
12@use './ng-select';
13
14// Needs an import because we extends glyphicon icons in primeng
15@import './bootstrap';
16@import './primeng-custom';
17
383bfc83
C
18[hidden] {
19 display: none !important;
20}
a64668c0 21
b33f657c 22body {
dcbc29d5 23 /*** theme ***/
4f926722 24 // now beware sass requires interpolation
dcbc29d5 25 // for css custom properties #{$var}
680b5496
RK
26 --mainColor: #{$main-color};
27 --mainColorLighter: #{$main-color-lighter};
a6d5ff76 28 --mainColorLightest: #{$main-color-lightest};
680b5496 29 --mainHoverColor: #{$main-hover-color};
dcbc29d5
C
30 --mainBackgroundColor: #{$bg-color};
31 --mainForegroundColor: #{$fg-color};
680b5496 32 --secondaryColor: #{$secondary-color};
2fcc2294 33
c123027f 34 --greyForegroundColor: #{$grey-foreground-color};
441e453a 35 --greyBackgroundColor: #{$grey-background-color};
c123027f 36
1d9d9cfd
RK
37 --menuBackgroundColor: #{$menu-background};
38 --menuForegroundColor: #{$menu-color};
60c35932 39
218f730c 40 --submenuBackgroundColor: #{$sub-menu-background-color};
60c35932 41 --channelBackgroundColor: #{$channel-background-color};
2fcc2294 42
3bf07dd8 43 --inputForegroundColor: #{$input-foreground-color};
14aa8556 44 --inputBackgroundColor: #{$input-background-color};
dcbc29d5
C
45 --inputPlaceholderColor: #{$input-placeholder-color};
46
3bf07dd8 47 --textareaForegroundColor: #{$textarea-foreground-color};
b15fe00f 48 --textareaBackgroundColor: #{$textarea-background-color};
f33dc6ab 49 --markdownTextareaBackgroundColor: #{$markdown-textarea-background-color};
b15fe00f 50
0240da5c
RK
51 --actionButtonColor: #{$grey-foreground-color};
52 --supportButtonBackgroundColor: #{transparent};
e66883b3 53 --supportButtonColor: #{pvar(--actionButtonColor)};
0240da5c 54 --supportButtonHeartColor: #{$support-button-heart};
2fcc2294 55
5f57df54
C
56 --activatedActionButtonColor: #{$activated-action-button-color};
57
d7941370 58 --horizontalMarginContent: #{$not-expanded-horizontal-margins};
0f7407d9 59 --videosHorizontalMarginContent: 6vw;
d7941370 60 --mainColWidth: calc(100vw - #{$menu-width});
10846ef6 61
8a8e02a4 62 font-family: $main-fonts;
b33f657c 63 font-weight: $font-regular;
e66883b3
RK
64 color: pvar(--mainForegroundColor);
65 background-color: pvar(--mainBackgroundColor);
b34a444e 66 font-size: 14px;
8110705d 67 // On desktop browsers, make sure vertical scroll bar is always visible
68 // Allow to disable the scrollbar instead of hide it when the content fit the body
69 // And not move the content and header horizontally sticked to right when the content is updating
70 overflow-y: scroll;
27bc9586
C
71
72 // Fix "reboot" style that set text-align: left
73 text-align: start;
b33f657c
C
74}
75
52cc0d54 76::selection {
e66883b3
RK
77 color: pvar(--mainBackgroundColor);
78 background-color: pvar(--mainHoverColor);
52cc0d54
RK
79}
80
2ca72354 81noscript,
73e09f27 82#incompatible-browser {
2ca72354
CE
83 display: block;
84 font-size: 1.2rem;
85 max-width: 600px;
86 margin: 1rem auto;
73e09f27
C
87}
88
07fa4c97
C
89strong {
90 font-weight: $font-semibold;
91}
92
383bfc83
C
93input.readonly {
94 /* Force blank on readonly inputs */
e66883b3 95 background-color: pvar(--inputBackgroundColor) !important;
0ac5edd9 96}
97
931d3430
C
98input,
99textarea {
63347a0f 100 outline: none;
84065945 101 color: pvar(--inputForegroundColor);
63347a0f
C
102}
103
adcf9212 104button {
adcf9212 105 @include disable-outline;
931d3430
C
106
107 background: unset;
adcf9212
CC
108}
109
d235f6b0
C
110label {
111 font-weight: $font-bold;
112 font-size: 15px;
09223546
C
113}
114
fd9c3c8d 115code {
116 background-color: pvar(--greyBackgroundColor);
a742b4b0 117 color: pvar(--greyForegroundColor);
fd9c3c8d 118 border-radius: 3px;
119 padding: .2em .4em;
120 margin: auto .4em;
121 font-size: 75%;
122 display: inline-block;
123 vertical-align: middle;
124}
125
7f28f2dd
C
126.form-error,
127.form-warning {
a2b817d3 128 display: block;
a2b817d3
C
129 margin-top: 5px;
130}
131
7f28f2dd
C
132.form-error {
133 color: $red;
134}
135
931d3430 136.input-error,
f8b530e0 137my-input-toggle-hidden ::ng-deep input {
41a676db 138 border-color: $red !important;
a2b817d3
C
139}
140
931d3430 141.full-width {
2d9fea16 142 width: 100%;
27bc9586 143 margin: 0 auto;
2d9fea16
RK
144 max-width: initial;
145}
146
383bfc83 147.glyphicon-black {
931d3430 148 color: #000;
383bfc83
C
149}
150
c4741804 151.row {
947d0102 152 margin: 0 !important;
c4741804
RK
153}
154
383bfc83 155.main-col {
27bc9586
C
156 @include margin-left($menu-width);
157
c4741804 158 width: calc(100% - #{$menu-width});
a6d5ff76 159 outline: none;
9bf9d2a5 160
c30745f3 161 .margin-content {
27bc9586 162 margin: 0 pvar(--horizontalMarginContent);
b34a444e 163 flex-grow: 1;
c30745f3
C
164 }
165
166 .sub-menu {
218f730c 167 background-color: pvar(--submenuBackgroundColor);
c30745f3 168 width: 100%;
c30745f3
C
169 display: flex;
170 align-items: center;
27bc9586 171 padding: 0 pvar(--horizontalMarginContent);
7034b3c9 172 height: $sub-menu-height;
173 margin-bottom: $sub-menu-margin-bottom;
d7941370 174 overflow-x: auto;
ae2dd046
C
175
176 &.sub-menu-fixed {
ae2dd046 177 position: fixed;
d6eace77 178 z-index: #{z('sub-menu') - 1};
d7941370 179 max-width: pvar(--mainColWidth);
a949f676 180 }
c30745f3
C
181 }
182
7034b3c9 183 // Use an appropriate offset top when sub-menu fixed
184 .margin-content.offset-content {
185 padding-top: $sub-menu-height + $sub-menu-margin-bottom;
186 }
187
c30745f3
C
188 // Override some properties if the main content is expanded (no menu on the left)
189 &.expanded {
d7941370
C
190 --horizontalMarginContent: #{$expanded-horizontal-margins};
191 --mainColWidth: 100vw;
192
27bc9586 193 @include margin-left(0);
c4741804 194 width: 100%;
602eb142 195 }
b15fe00f 196
931d3430 197 &.lock-scroll .main-row > router-outlet + * { /* stylelint-disable-line selector-max-compound-selectors */
b15fe00f
K
198 // Lock and hide body scrollbars
199 position: fixed;
200
201 // Lock and hide sub-menu scrollbars
931d3430 202 .sub-menu { /* stylelint-disable-line */
b15fe00f
K
203 overflow-x: hidden;
204 }
205 }
383bfc83 206}
602eb142 207
59aa1e5e 208.title-page {
931d3430 209 @include disable-default-a-behaviour;
27bc9586 210 @include margin-right(55px);
931d3430 211
ed5bb517 212 opacity: 0.6;
e66883b3 213 color: pvar(--mainForegroundColor);
59aa1e5e
C
214 font-size: 16px;
215 display: inline-block;
59aa1e5e 216 font-weight: $font-semibold;
ed5bb517
K
217 border-bottom: 2px solid transparent;
218
219 &.title-page-single {
59aa1e5e
C
220 margin-top: 30px;
221 margin-bottom: 25px;
222 }
cadb46d8 223
d6ed9ccc 224 &.active {
ed5bb517 225 border-bottom-color: pvar(--mainColor);
d6ed9ccc
RK
226 }
227
228 &.title-page-single {
229 font-size: 125%;
230 }
231
931d3430
C
232 &:hover,
233 &:active,
234 &:focus {
e66883b3 235 color: pvar(--mainForegroundColor);
04e0fc48 236 }
1952a538 237
931d3430
C
238 &.active,
239 &:hover,
240 &:active,
241 &:focus,
242 &.title-page-single {
ed5bb517 243 opacity: 1;
931d3430 244 outline: 0 hidden !important;
ed5bb517
K
245 }
246
ece3029b 247 @media screen and (max-width: $mobile-view) {
27bc9586 248 @include margin-left(15px);
1952a538 249 }
cadb46d8 250}
04e0fc48 251
482fa503
RK
252.title-page-about,
253.title-page-settings {
e61151b0 254 white-space: nowrap;
482fa503 255 font-size: 115%;
482fa503
RK
256}
257
cd83ea1b
C
258.admin-sub-header {
259 display: flex;
260 align-items: center;
261 margin-bottom: 30px;
262
08c1efbe 263 .form-sub-title {
cd83ea1b
C
264 flex-grow: 1;
265 }
65b247dd
C
266
267 .admin-sub-nav a {
268 @include disable-default-a-behaviour;
269
270 font-size: 16px;
e66883b3 271 color: pvar(--mainForegroundColor);
65b247dd
C
272 padding: 5px 15px;
273 border-radius: 0.25rem;
ed5bb517
K
274 font-weight: $font-semibold;
275 opacity: 0.6;
65b247dd
C
276
277 &.active {
218f730c 278 background-color: pvar(--submenuBackgroundColor);
ed5bb517
K
279 }
280
931d3430
C
281 &.active,
282 &:hover,
283 &:active,
284 &:focus {
ed5bb517 285 opacity: 1;
65b247dd
C
286 }
287 }
cd83ea1b
C
288}
289
08c1efbe 290.form-sub-title {
04e0fc48
C
291 font-size: 20px;
292 font-weight: bold;
59aa1e5e
C
293}
294
fb4fd623
C
295// In tables, don't have a hover different background
296table {
931d3430
C
297 .action-button-edit,
298 .action-button-delete {
299 &:hover,
300 &:active,
301 &:focus,
302 &[disabled],
303 &.disabled {
457bb213 304 background-color: $grey-background-color !important;
fb4fd623
C
305 }
306 }
307}
308
2d3741d6
C
309.no-results {
310 height: 40vh;
22839330
RK
311 max-height: 500px;
312
2d3741d6 313 display: flex;
82f443de 314 flex-direction: column;
2d3741d6
C
315 align-items: center;
316 justify-content: center;
317 font-size: 16px;
318 font-weight: $font-semibold;
319}
320
eb7c7a51
RK
321.dropdown-item {
322 @include dropdown-with-icon-item;
323
324 my-global-icon {
325 width: 22px;
326 height: 22px;
327 }
328}
329
7034b3c9 330/* offsetTop for scrollToAnchor */
331
45e0d669
RK
332.anchor {
333 position: relative;
7034b3c9 334 top: #{-($header-height + 20px)};
335}
336
337.offset-content { // if sub-menu fixed
338 .anchor {
339 top: #{-($header-height + $sub-menu-height + 20px)};
340 }
45e0d669
RK
341}
342
c29039e7
C
343.form-group-description {
344 @extend .text-muted;
345
346 font-size: 90%;
347 margin-top: 10px;
348}
349
4872e946
C
350ngx-loading-bar {
351 z-index: z(header) + 1 !important;
352}
353
165ee292 354@media screen and (max-width: #{breakpoint(xxl)}) {
0f7407d9 355 .main-col {
931d3430
C
356 --horizontalMarginContent: #{$not-expanded-horizontal-margins / 2};
357 --videosHorizontalMarginContent: 30px;
0f7407d9
C
358
359 &.expanded {
360 --horizontalMarginContent: #{$expanded-horizontal-margins / 2};
361 }
2303a803
RK
362 }
363}
364
165ee292 365@media screen and (max-width: #{breakpoint(lg)}) {
0a6785d1
C
366 .main-col {
367 --videosHorizontalMarginContent: #{pvar(--horizontalMarginContent)};
368 }
369
1def3c52 370 /* the following applies from 500px to 900px and is partially overriden from 500px to 800px by changes below to $small-view */
d7941370
C
371 .main-col,
372 .main-col.expanded {
0f7407d9 373 --horizontalMarginContent: #{$expanded-horizontal-margins / 3};
dd778941 374
d7941370 375 .sub-menu {
27bc9586 376 padding: 0 50px;
22a16e36 377
d7941370
C
378 .title-page {
379 font-size: 17px;
dd778941 380 }
1f788f20
C
381 }
382 }
383}
384
1f6d2449 385@media screen and (min-width: $mobile-view) and (max-width: $small-view) {
ac6ac4e2 386 .main-col {
387 width: 100%;
388 }
389}
390
8ff3f883 391@media screen and (max-width: $small-view) {
d7941370
C
392 .main-col,
393 .main-col.expanded {
394 --horizontalMarginContent: 15px;
b15fe00f 395
27bc9586 396 @include margin-left(0);
7a03209d 397
d7941370
C
398 .sub-menu {
399 width: 100vw;
27bc9586 400 padding: 0 15px;
d7941370
C
401 margin-bottom: $sub-menu-margin-bottom-small-view;
402 overflow-x: auto;
165ee292
K
403 }
404
d7941370
C
405 // Use an appropriate offset top when sub-menu fixed
406 .margin-content.offset-content {
407 padding-top: $sub-menu-height + $sub-menu-margin-bottom-small-view;
165ee292 408 }
165ee292 409
d7941370 410 .admin-sub-header {
bc4c9cc1
C
411 flex-direction: column;
412
413 .form-sub-title {
27bc9586
C
414 @include margin-right(0 !important);
415
bc4c9cc1
C
416 margin-bottom: 10px;
417 text-align: center;
418 }
419
420 .admin-sub-nav {
421 display: block;
422 overflow-x: auto;
423 white-space: nowrap;
424 height: 50px;
425 padding: 10px 0;
426 width: 100%;
427
428 a {
27bc9586 429 @include margin-left(5px);
bc4c9cc1
C
430 }
431 }
165ee292
K
432 }
433
d7941370
C
434 my-markdown-textarea {
435 .root {
436 max-width: 100% !important;
437 }
165ee292 438 }
165ee292 439
d7941370
C
440 input[type=text],
441 input[type=password],
442 input[type=email],
443 textarea,
444 .peertube-select-container {
445 flex-grow: 1;
165ee292 446 }
8544d8f5 447
d7941370
C
448 .caption input[type=text] {
449 width: unset !important;
450 flex-grow: 1;
7a03209d
K
451 }
452 }
453}