]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - client/src/sass/application.scss
Add support button in channel page
[github/Chocobozzz/PeerTube.git] / client / src / sass / application.scss
... / ...
CommitLineData
1$icon-font-path: '~@neos21/bootstrap3-glyphicons/assets/fonts/';
2
3@import '_bootstrap-variables';
4@import '_variables';
5@import '_mixins';
6
7@import '_fonts';
8
9@import '~video.js/dist/video-js.css';
10
11$assets-path: '../../assets/';
12@import './player/index';
13
14@import './bootstrap';
15@import './primeng-custom';
16@import './ng-select.scss';
17
18@import './classes.scss';
19
20[hidden] {
21 display: none !important;
22}
23
24body {
25 /*** theme ***/
26 // now beware sass requires interpolation
27 // for css custom properties #{$var}
28 --mainColor: #{$main-color};
29 --mainColorLighter: #{$main-color-lighter};
30 --mainColorLightest: #{$main-color-lightest};
31 --mainHoverColor: #{$main-hover-color};
32 --mainBackgroundColor: #{$bg-color};
33 --mainForegroundColor: #{$fg-color};
34 --secondaryColor: #{$secondary-color};
35
36 --greyForegroundColor: #{$grey-foreground-color};
37 --greyBackgroundColor: #{$grey-background-color};
38
39 --menuBackgroundColor: #{$menu-background};
40 --menuForegroundColor: #{$menu-color};
41
42 --submenuColor: #{$sub-menu-color};
43 --channelBackgroundColor: #{$channel-background-color};
44
45 --inputForegroundColor: #{$input-foreground-color};
46 --inputBackgroundColor: #{$input-background-color};
47 --inputPlaceholderColor: #{$input-placeholder-color};
48
49 --textareaForegroundColor: #{$textarea-foreground-color};
50 --textareaBackgroundColor: #{$textarea-background-color};
51 --markdownTextareaBackgroundColor: #{$markdown-textarea-background-color};
52
53 --actionButtonColor: #{$grey-foreground-color};
54 --supportButtonBackgroundColor: #{transparent};
55 --supportButtonColor: #{pvar(--actionButtonColor)};
56 --supportButtonHeartColor: #{$support-button-heart};
57
58 --activatedActionButtonColor: #{$activated-action-button-color};
59
60 --expanded-horizontal-margin-content: #{$expanded-horizontal-margins};
61
62 font-family: $main-fonts;
63 font-weight: $font-regular;
64 color: pvar(--mainForegroundColor);
65 background-color: pvar(--mainBackgroundColor);
66 font-size: 14px;
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;
71}
72
73::selection {
74 color: pvar(--mainBackgroundColor);
75 background-color: pvar(--mainHoverColor);
76}
77
78noscript,
79#incompatible-browser {
80 display: block;
81 font-size: 1.2rem;
82 max-width: 600px;
83 margin: 1rem auto;
84}
85
86strong {
87 font-weight: $font-semibold;
88}
89
90input.readonly {
91 /* Force blank on readonly inputs */
92 background-color: pvar(--inputBackgroundColor) !important;
93}
94
95input, textarea {
96 outline: none;
97 color: pvar(--inputForegroundColor);
98}
99
100button {
101 background: unset;
102 @include disable-outline;
103}
104
105label {
106 font-weight: $font-bold;
107 font-size: 15px;
108}
109
110code {
111 background-color: pvar(--greyBackgroundColor);
112 color: pvar(--greyForegroundColor);
113 border-radius: 3px;
114 padding: .2em .4em;
115 margin: auto .4em;
116 font-size: 75%;
117 display: inline-block;
118 vertical-align: middle;
119}
120
121.form-error {
122 display: block;
123 color: $red;
124 margin-top: 5px;
125}
126
127.input-error
128my-input-toggle-hidden ::ng-deep input {
129 border-color: $red !important;
130}
131
132.fullWidth {
133 width: 100%;
134 margin-left: auto;
135 margin-right: auto;
136 max-width: initial;
137}
138
139.glyphicon-black {
140 color: black;
141}
142
143.row {
144 margin: 0 !important;
145}
146
147.main-col {
148 margin-left: $menu-width;
149 width: calc(100% - #{$menu-width});
150 outline: none;
151
152 .margin-content {
153 margin-left: $not-expanded-horizontal-margins;
154 margin-right: $not-expanded-horizontal-margins;
155 flex-grow: 1;
156 }
157
158 .sub-menu {
159 background-color: pvar(--submenuColor);
160 width: 100%;
161 display: flex;
162 align-items: center;
163 padding-left: $not-expanded-horizontal-margins;
164 padding-right: $not-expanded-horizontal-margins;
165 height: $sub-menu-height;
166 margin-bottom: $sub-menu-margin-bottom;
167
168 &.sub-menu-fixed {
169 position: fixed;
170 z-index: #{z('sub-menu') - 1};
171 }
172 }
173
174 // Use an appropriate offset top when sub-menu fixed
175 .margin-content.offset-content {
176 padding-top: $sub-menu-height + $sub-menu-margin-bottom;
177 }
178
179 // Override some properties if the main content is expanded (no menu on the left)
180 &.expanded {
181 margin-left: 0;
182 width: 100%;
183
184 .margin-content {
185 margin-left: var(--expanded-horizontal-margin-content);
186 margin-right: var(--expanded-horizontal-margin-content);
187 }
188
189 .sub-menu {
190 padding-left: var(--expanded-horizontal-margin-content);
191 padding-right: var(--expanded-horizontal-margin-content);
192 }
193 }
194
195 &.lock-scroll .main-row > router-outlet + * {
196 // Lock and hide body scrollbars
197 position: fixed;
198
199 // Lock and hide sub-menu scrollbars
200 .sub-menu {
201 overflow-x: hidden;
202 }
203 }
204}
205
206.title-page {
207 opacity: 0.6;
208 color: pvar(--mainForegroundColor);
209 font-size: 16px;
210 display: inline-block;
211 margin-right: 55px;
212 font-weight: $font-semibold;
213 @include disable-default-a-behaviour;
214
215 border-bottom: 2px solid transparent;
216
217 &.title-page-single {
218 margin-top: 30px;
219 margin-bottom: 25px;
220 }
221
222 &.active {
223 border-bottom-color: pvar(--mainColor);
224 }
225
226 &.title-page-single {
227 font-size: 125%;
228 }
229
230 &:hover, &:active, &:focus {
231 color: pvar(--mainForegroundColor);
232 }
233
234 &.active, &:hover, &:active, &:focus, &.title-page-single {
235 opacity: 1;
236 outline: 0px hidden !important;
237 }
238
239 @media screen and (max-width: $mobile-view) {
240 margin-right: 15px;
241 }
242}
243
244.title-page-about,
245.title-page-settings {
246 white-space: nowrap;
247 font-size: 115%;
248}
249
250.admin-sub-header {
251 display: flex;
252 align-items: center;
253 margin-bottom: 30px;
254
255 .form-sub-title {
256 flex-grow: 1;
257 }
258
259 .admin-sub-nav a {
260 @include disable-default-a-behaviour;
261
262 font-size: 16px;
263 color: pvar(--mainForegroundColor);
264 padding: 5px 15px;
265 border-radius: 0.25rem;
266 font-weight: $font-semibold;
267 opacity: 0.6;
268
269 &.active {
270 background-color: pvar(--submenuColor);
271 }
272
273 &.active, &:hover, &:active, &:focus {
274 opacity: 1;
275 }
276 }
277}
278
279.form-sub-title {
280 font-size: 20px;
281 font-weight: bold;
282}
283
284// In tables, don't have a hover different background
285table {
286 .action-button-edit, .action-button-delete {
287 &:hover, &:active, &:focus, &[disabled], &.disabled {
288 background-color: $grey-background-color !important;
289 }
290 }
291}
292
293.no-results {
294 height: 40vh;
295 max-height: 500px;
296
297 display: flex;
298 flex-direction: column;
299 align-items: center;
300 justify-content: center;
301 font-size: 16px;
302 font-weight: $font-semibold;
303}
304
305.dropdown-item {
306 @include dropdown-with-icon-item;
307
308 my-global-icon {
309 width: 22px;
310 height: 22px;
311 }
312}
313
314/* offsetTop for scrollToAnchor */
315
316.anchor {
317 position: relative;
318 top: #{-($header-height + 20px)};
319}
320
321.offset-content { // if sub-menu fixed
322 .anchor {
323 top: #{-($header-height + $sub-menu-height + 20px)};
324 }
325}
326
327.form-group-description {
328 @extend .text-muted;
329
330 font-size: 90%;
331 margin-top: 10px;
332}
333
334ngx-loading-bar {
335 z-index: z(header) + 1 !important;
336}
337
338@media screen and (max-width: #{breakpoint(xxl)}) {
339 .main-col {
340 &.expanded {
341 .margin-content {
342 --expanded-horizontal-margin-content: #{$expanded-horizontal-margins/2};
343 }
344 }
345 }
346}
347
348@media screen and (max-width: #{breakpoint(lg)}) {
349 /* the following applies from 500px to 900px and is partially overriden from 500px to 800px by changes below to $small-view */
350 .main-col {
351 &, &.expanded {
352 .margin-content {
353 --expanded-horizontal-margin-content: #{$expanded-horizontal-margins/3};
354 }
355
356 .sub-menu {
357 padding-left: 50px;
358 padding-right: 50px;
359
360 .title-page {
361 font-size: 17px;
362 }
363 }
364 }
365 }
366}
367
368@media screen and (min-width: $mobile-view) and (max-width: $small-view) {
369 .main-col {
370 width: 100%;
371 }
372}
373
374@media screen and (max-width: $small-view) {
375 .main-col {
376 margin-left: 0;
377
378 &, &.expanded {
379 .margin-content {
380 --expanded-horizontal-margin-content: 15px;
381 }
382
383 .sub-menu {
384 width: 100vw;
385 padding-left: 15px;
386 padding-right: 15px;
387 margin-bottom: $sub-menu-margin-bottom-small-view;
388 overflow-x: auto;
389 }
390
391 // Use an appropriate offset top when sub-menu fixed
392 .margin-content.offset-content {
393 padding-top: $sub-menu-height + $sub-menu-margin-bottom-small-view;
394 }
395
396 .admin-sub-header {
397 @include admin-sub-header-responsive(15px*2);
398 }
399
400 my-markdown-textarea {
401 .root {
402 max-width: 100% !important;
403 }
404 }
405
406 input[type=text],
407 input[type=password],
408 input[type=email],
409 textarea,
410 .peertube-select-container {
411 flex-grow: 1;
412 }
413
414 .caption input[type=text] {
415 width: unset !important;
416 flex-grow: 1;
417 }
418 }
419 }
420}
421
422// overflow-databale responsive rules
423@media screen and (min-width: #{breakpoint(lg)}) {
424 .main-col {
425 &.expanded {
426 @include overflow-datatable(breakpoint(lg), $expanded-horizontal-margins/2, $mobile-paginator: false);
427 }
428
429 &:not(.expanded) {
430 @include overflow-datatable(breakpoint(lg), $not-expanded-horizontal-margins + $menu-width/2, $mobile-paginator: false);
431 }
432 }
433}
434
435@media screen and (max-width: #{breakpoint(lg)}) {
436 .main-col {
437 &.expanded {
438 @include overflow-datatable(breakpoint(lg), $expanded-horizontal-margins/3);
439 }
440
441 &:not(.expanded) {
442 @include overflow-datatable(breakpoint(lg), $expanded-horizontal-margins/3 + $menu-width/2);
443 }
444 }
445}
446
447@media screen and (max-width: $small-view) {
448 .main-col {
449 &:not(.expanded),
450 &.expanded {
451 @include overflow-datatable(breakpoint(lg), 15px);
452 }
453 }
454}
455
456@media screen and (min-width: $small-view) and (max-width: #{$small-view + $menu-width}) {
457 .main-col {
458 &:not(.expanded) {
459 .admin-sub-header {
460 @include admin-sub-header-responsive($expanded-horizontal-margins/3 + $menu-width/2);
461 }
462
463 .sub-menu {
464 overflow-x: auto;
465 width: calc(100vw - #{$menu-width});
466 }
467 }
468 }
469}