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