]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/sass/bootstrap.scss
Merge branch 'release/3.3.0' into develop
[github/Chocobozzz/PeerTube.git] / client / src / sass / bootstrap.scss
CommitLineData
2f4c784a 1$icon-font-path: '~@neos21/bootstrap3-glyphicons/assets/fonts/';
2f4c784a 2
8cbc40b2
C
3@use '_variables' as *;
4@use '_mixins' as *;
5
6@import './_bootstrap-variables';
7
8@import '~bootstrap/scss/functions';
9@import '~bootstrap/scss/variables';
10
11@import '~bootstrap/scss/mixins';
12@import '~bootstrap/scss/root';
13@import '~bootstrap/scss/reboot';
14@import '~bootstrap/scss/type';
15@import '~bootstrap/scss/grid';
16@import '~bootstrap/scss/tables';
17@import '~bootstrap/scss/forms';
18@import '~bootstrap/scss/buttons';
19@import '~bootstrap/scss/dropdown';
20@import '~bootstrap/scss/button-group';
21@import '~bootstrap/scss/input-group';
22@import '~bootstrap/scss/nav';
23@import '~bootstrap/scss/card';
24@import '~bootstrap/scss/badge';
25@import '~bootstrap/scss/alert';
26@import '~bootstrap/scss/close';
27@import '~bootstrap/scss/modal';
28@import '~bootstrap/scss/tooltip';
29@import '~bootstrap/scss/popover';
30@import '~bootstrap/scss/utilities';
31
32@import '~@neos21/bootstrap3-glyphicons/assets/stylesheets/bootstrap3-glyphicons';
2f4c784a
C
33
34// Thanks https://gist.github.com/alexandrevicenzi/680147013e902a4eaa5d
35.glyphicon-refresh-animate {
931d3430 36 animation: spin 0.7s infinite linear;
2f4c784a
C
37}
38
6b1ef956 39.glyphicon-duplicate {
40 font-size: 70%;
41}
42
f409f0c3
RK
43.flex-auto {
44 flex: auto;
45}
46
d3217560
RK
47.c-hand {
48 cursor: pointer;
49}
50
2f4c784a 51@keyframes spin {
a3705089
C
52 from {
53 transform: scale(1) rotate(0deg);
54 }
931d3430 55
a3705089
C
56 to {
57 transform: scale(1) rotate(360deg);
58 }
2f4c784a
C
59}
60
757ffdfe 61/* rules for dropdowns excepts when in button group, to avoid impacting the dropdown-toggle */
81d5be91
K
62.dropdown,
63.dropup {
f8cce49c 64 z-index: z(dropdown) !important;
2856af48 65}
26ede95e 66
2856af48
C
67.list-overflow-menu,
68.parent-entry {
09f7837d 69 z-index: z(menu) - 1 !important;
eb7c7a51
RK
70}
71
2856af48
C
72.btn-group,
73.dropdown-root,
74.action-dropdown,
75.input-group-prepend,
76.column-toggle {
77 z-index: inherit !important;
78}
79
d4132d3f
RK
80.btn-group > .btn:not(:first-child) {
81 border-top-left-radius: 0 !important;
82 border-bottom-left-radius: 0 !important;
83}
84
2f4c784a 85.dropdown-menu {
e0433a5f
C
86 z-index: z(dropdown) + 1 !important;
87
2f4c784a 88 border-radius: 3px;
6f6e89db 89 box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2);
2f4c784a
C
90 font-size: 15px;
91
0d3a2982 92 .dropdown-header {
27bc9586 93 @include padding-left(1rem);
0d3a2982
RK
94 }
95
2f4c784a
C
96 .dropdown-item {
97 padding: 3px 15px;
98
24e7916c 99 &.active {
e66883b3
RK
100 color: pvar(--mainBackgroundColor) !important;
101 background-color: pvar(--mainHoverColor);
931d3430 102 opacity: 0.9;
2f4c784a 103 }
45c6bcf3 104
0aa52e17
C
105 &:active {
106 color: pvar(--mainForegroundColor) !important;
107 }
108
d3217560
RK
109 &::after {
110 display: none;
111 }
2f4c784a
C
112 }
113
114 button {
115 @include disable-default-a-behaviour;
116 }
117
118 a {
119 @include disable-default-a-behaviour;
120 color: #000 !important;
121 }
122}
123
26171379
C
124.badge {
125 line-height: 1.1;
126}
3921166d 127
165ee292 128@media screen and (min-width: #{breakpoint(md)}) {
931d3430 129 .modal::before {
3921166d 130 vertical-align: middle;
931d3430 131 content: ' ';
3921166d
RK
132 height: 100%;
133 }
134
135 .modal-dialog {
27bc9586 136 text-align: start;
2bc9bd08
RK
137
138 &:not(.modal-lg):not(.modal-xl) {
139 min-width: 500px;
140 width: 40vw;
141 max-width: 900px;
142 }
3921166d
RK
143 }
144}
145
2f4c784a 146.modal {
3921166d
RK
147 text-align: center;
148
2f4c784a 149 .modal-content {
e66883b3 150 background-color: pvar(--mainBackgroundColor);
681276a6 151 word-break: break-word;
2f4c784a
C
152 }
153
154 .modal-header {
931d3430 155 border-bottom: 0;
2f4c784a
C
156 margin-bottom: 5px;
157
158 .modal-title {
159 font-size: 20px;
160 font-weight: $font-semibold;
161 }
162
163 my-global-icon {
54e78847 164 @include icon(22px);
2f4c784a
C
165
166 position: relative;
54e78847 167 top: 5px;
2f4c784a
C
168 float: right;
169
170 margin: 0;
171 padding: 0;
931d3430 172 opacity: 0.5;
8319d6ae 173
931d3430 174 &[iconName=cross] { /* stylelint-disable-line selector-max-compound-selectors */
8319d6ae 175 @include icon(16px);
931d3430 176
8319d6ae
RK
177 top: -3px;
178 }
2f4c784a
C
179 }
180 }
181
182 .inputs {
183 margin-bottom: 0;
27bc9586 184 text-align: end;
2f4c784a 185
266947e5 186 > .peertube-button:not(:first-child) {
27bc9586 187 @include margin-left(10px);
2f4c784a
C
188 }
189 }
190}
191
8110705d 192
193// On desktop browsers, make the content and header horizontally sticked to right not move when modal open and close
194.modal-open {
195 overflow-y: scroll !important; // Make sure vertical scroll bar is always visible on desktop browsers to get disabled scrollbar effect
17384fd8 196 width: 100vw; // Make sure the content fits all the available width
8110705d 197}
198
245b9d27
K
199// On touchscreen devices, simply overflow: hidden to avoid detached overlay on scroll
200@media (hover: none) and (pointer: coarse) {
931d3430
C
201 .modal-open,
202 .menu-open {
245b9d27
K
203 overflow: hidden !important;
204 }
205
206 // On touchscreen devices display content overlay when opened menu
207 .menu-open {
208 .main-col {
209 &::before {
931d3430 210 background-color: #000;
245b9d27
K
211 width: 100vw;
212 height: 100vh;
213 opacity: 0.75;
214 content: '';
215 display: block;
216 position: fixed;
43599029 217 z-index: z(overlay);
245b9d27
K
218 }
219 }
220 }
221}
222
2f4c784a
C
223// Nav customizations
224.nav .nav-link {
225 display: flex !important;
226 align-items: center;
227 height: 30px !important;
228 padding: 10px 15px !important;
229}
230
231.nav.nav-pills {
232 font-size: 16px !important;
ed5bb517 233 font-weight: $font-semibold !important;
2f4c784a 234
ed5bb517
K
235 .nav-link {
236 opacity: 0.6 !important;
237
931d3430
C
238 &.active,
239 &:hover,
240 &:active,
241 &:focus {
ed5bb517
K
242 opacity: 1 !important;
243 }
2f4c784a
C
244 }
245
246 a {
247 @include disable-default-a-behaviour;
248
e66883b3 249 color: pvar(--mainForegroundColor);
2f4c784a
C
250 }
251}
252
ed5bb517
K
253.nav-tabs .nav-link {
254 @include disable-default-a-behaviour;
2f4c784a 255
ed5bb517
K
256 color: pvar(--mainForegroundColor);
257 font-weight: $font-semibold;
931d3430 258 border: 0;
ed5bb517
K
259 border-bottom: 2px solid transparent;
260 opacity: 0.6;
2f4c784a 261
758f0d19 262 &.active {
ed5bb517 263 color: pvar(--mainForegroundColor);
e66883b3 264 background-color: pvar(--mainBackgroundColor) !important;
ed5bb517 265 border-bottom-color: pvar(--mainColor);
758f0d19 266 }
ed5bb517 267
931d3430
C
268 &.active,
269 &:hover,
270 &:active,
271 &:focus {
ed5bb517 272 opacity: 1;
758f0d19 273 }
2f4c784a
C
274}
275
a4610bc6 276.card {
e66883b3 277 background-color: pvar(--mainBackgroundColor);
a4610bc6
JM
278 border-color: #dee2e6;
279}
280
2f4c784a
C
281.collapse-transition {
282 // Animation when we show/hide the filters
283 transition: max-height 0.3s;
284 display: block !important;
285 overflow: hidden !important;
286 max-height: 0;
287
288 &.show {
289 max-height: 1500px;
290 }
291}
bc584963
RK
292
293.dropdown-divider {
294 margin: 0.3rem 0;
000eb0e4
RK
295}
296
297ngb-modal-backdrop {
36f2981f
RK
298 z-index: z(modal) - 1 !important;
299}
300
301ngb-modal-window {
302 z-index: z(modal) !important;
000eb0e4 303}
aa0f1963 304
757ffdfe
RK
305ngb-popover-window {
306 z-index: z(popover) !important;
307}
308
309ngb-tooltip-window {
310 z-index: z(tooltip) !important;
311}
312
947d0102
RK
313.btn-outline-secondary {
314 border-color: $input-border-color;
315
316 &:focus-within,
317 &:focus,
318 &:hover {
319 color: #fff;
320 background-color: #6c757d;
321 }
322}
323
aa0f1963 324.btn-outline-tertiary {
e66883b3
RK
325 color: pvar(--secondaryColor);
326 border-color: pvar(--secondaryColor);
a3705089 327
947d0102
RK
328 &:focus-within,
329 &:focus,
aa0f1963 330 &:hover {
e66883b3
RK
331 color: pvar(--mainBackgroundColor);
332 background-color: pvar(--secondaryColor);
aa0f1963
RK
333 }
334}
a6d5ff76
RK
335
336// input box-shadow on focus
337.form-control {
338 font-size: 15px;
e66883b3
RK
339 color: pvar(--mainForegroundColor);
340 background-color: pvar(--inputBackgroundColor);
a6d5ff76
RK
341 outline: none;
342
343 &:focus-within,
344 &:focus {
e66883b3 345 box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest);
a6d5ff76
RK
346
347 &.input-error {
6a4c30de 348 box-shadow: #{$focus-box-shadow-form} #{scale-color($red, $alpha: -75%)};
a6d5ff76
RK
349 }
350 }
351}
947d0102 352
0d3a2982 353.input-group {
931d3430 354 > .form-control {
0d3a2982
RK
355 flex: initial;
356 }
931d3430 357
25a42e29
RK
358 input.form-control {
359 width: unset !important;
360 flex-grow: 1;
0d3a2982
RK
361 }
362
363 .input-group-prepend + input {
364 border-top-left-radius: 0 !important;
365 border-bottom-left-radius: 0 !important;
366 }
947d0102 367}
25a42e29
RK
368
369.has-feedback.has-clear {
370 position: relative;
371
372 input {
27bc9586 373 @include padding-right(1.5rem !important);
25a42e29
RK
374 }
375
376 .form-control-clear {
377 color: rgba(0, 0, 0, 0.4);
378 /*
379 * Enable pointer events as they have been disabled since Bootstrap 3.3
380 * See https://github.com/twbs/bootstrap/pull/14104
381 */
382 pointer-events: all;
383 display: flex;
384 justify-content: center;
385 align-items: center;
386 position: absolute;
387 right: .5rem;
388 height: 95%;
4f5d0459 389 font-size: 14px;
25a42e29
RK
390
391 &:hover {
392 color: rgba(0, 0, 0, 0.7);
393 cursor: pointer;
394 }
395 }
396
397 input:placeholder-shown + .form-control-clear {
398 display: none;
399 }
400}
ea5cdc11
RK
401
402.callout {
728a1236
RK
403 padding: 1.25rem;
404 border: 1px solid #eee;
ea5cdc11
RK
405 border-radius: .25rem;
406
931d3430 407 > label {
ea5cdc11
RK
408 position: relative;
409 top: -5px;
410 left: -10px;
411 color: #6c757d !important;
412 }
413
414 &:not(.callout-light) {
415 border-left-width: .25rem;
416 }
26171379 417
ea5cdc11
RK
418 &.callout-info {
419 border-color: pvar(--mainColorLightest);
420 border-left-color: pvar(--mainColor);
421 }
422}
27bc9586
C
423
424// Override these properties for Bidi support
425@each $size, $length in $spacers {
426 .ml-#{$size} {
427 @include margin-left($length);
428 }
429
430 .mr-#{$size} {
431 @include margin-right($length);
432 }
433
434 .pl-#{$size} {
435 @include padding-left($length);
436 }
437
438 .pr-#{$size} {
439 @include padding-right($length);
440 }
441}