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