]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/sass/bootstrap.scss
Merge branch 'release/4.2.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';
8cbc40b2 10@import '~bootstrap/scss/mixins';
4c8749cb
C
11@import '~bootstrap/scss/utilities';
12
8cbc40b2
C
13@import '~bootstrap/scss/root';
14@import '~bootstrap/scss/reboot';
15@import '~bootstrap/scss/type';
16@import '~bootstrap/scss/grid';
8cbc40b2
C
17@import '~bootstrap/scss/forms';
18@import '~bootstrap/scss/buttons';
19@import '~bootstrap/scss/dropdown';
20@import '~bootstrap/scss/button-group';
8cbc40b2
C
21@import '~bootstrap/scss/nav';
22@import '~bootstrap/scss/card';
4c8749cb 23@import '~bootstrap/scss/accordion';
8cbc40b2
C
24@import '~bootstrap/scss/alert';
25@import '~bootstrap/scss/close';
26@import '~bootstrap/scss/modal';
27@import '~bootstrap/scss/tooltip';
28@import '~bootstrap/scss/popover';
4c8749cb
C
29
30@import '~bootstrap/scss/helpers';
31@import '~bootstrap/scss/utilities/api';
8cbc40b2
C
32
33@import '~@neos21/bootstrap3-glyphicons/assets/stylesheets/bootstrap3-glyphicons';
2f4c784a
C
34
35// Thanks https://gist.github.com/alexandrevicenzi/680147013e902a4eaa5d
36.glyphicon-refresh-animate {
931d3430 37 animation: spin 0.7s infinite linear;
2f4c784a
C
38}
39
f409f0c3
RK
40.flex-auto {
41 flex: auto;
42}
43
d3217560 44.c-hand {
4c8749cb 45 cursor: pointer !important;
d3217560
RK
46}
47
2f4c784a 48@keyframes spin {
a3705089
C
49 from {
50 transform: scale(1) rotate(0deg);
51 }
931d3430 52
a3705089
C
53 to {
54 transform: scale(1) rotate(360deg);
55 }
2f4c784a
C
56}
57
58.dropdown-menu {
2f4c784a 59 font-size: 15px;
b788e691
C
60 color: pvar(--mainForegroundColor);
61 background-color: pvar(--mainBackgroundColor);
62
0d3a2982 63 .dropdown-header {
27bc9586 64 @include padding-left(1rem);
0d3a2982
RK
65 }
66
2f4c784a
C
67 .dropdown-item {
68 padding: 3px 15px;
69
24e7916c 70 &.active {
e66883b3
RK
71 color: pvar(--mainBackgroundColor) !important;
72 background-color: pvar(--mainHoverColor);
931d3430 73 opacity: 0.9;
2f4c784a 74 }
45c6bcf3 75
d3217560
RK
76 &::after {
77 display: none;
78 }
2f4c784a
C
79 }
80
2f4c784a
C
81 a {
82 @include disable-default-a-behaviour;
2f4c784a
C
83 }
84}
85
165ee292 86@media screen and (min-width: #{breakpoint(md)}) {
931d3430 87 .modal::before {
3921166d 88 vertical-align: middle;
931d3430 89 content: ' ';
3921166d
RK
90 height: 100%;
91 }
92
93 .modal-dialog {
27bc9586 94 text-align: start;
2bc9bd08
RK
95
96 &:not(.modal-lg):not(.modal-xl) {
97 min-width: 500px;
98 width: 40vw;
99 max-width: 900px;
100 }
3921166d
RK
101 }
102}
103
2f4c784a 104.modal {
3921166d
RK
105 text-align: center;
106
2f4c784a 107 .modal-content {
e66883b3 108 background-color: pvar(--mainBackgroundColor);
681276a6 109 word-break: break-word;
2f4c784a
C
110 }
111
112 .modal-header {
931d3430 113 border-bottom: 0;
2f4c784a
C
114 margin-bottom: 5px;
115
116 .modal-title {
117 font-size: 20px;
118 font-weight: $font-semibold;
119 }
120
121 my-global-icon {
54e78847 122 @include icon(22px);
2f4c784a
C
123
124 position: relative;
54e78847 125 top: 5px;
2f4c784a
C
126 float: right;
127
128 margin: 0;
129 padding: 0;
931d3430 130 opacity: 0.5;
8319d6ae 131
931d3430 132 &[iconName=cross] { /* stylelint-disable-line selector-max-compound-selectors */
8319d6ae 133 @include icon(16px);
931d3430 134
8319d6ae
RK
135 top: -3px;
136 }
2f4c784a
C
137 }
138 }
139
140 .inputs {
141 margin-bottom: 0;
27bc9586 142 text-align: end;
2f4c784a 143
26490335 144 > *:not(:first-child) {
27bc9586 145 @include margin-left(10px);
2f4c784a
C
146 }
147 }
148}
149
8110705d 150
151// On desktop browsers, make the content and header horizontally sticked to right not move when modal open and close
152.modal-open {
153 overflow-y: scroll !important; // Make sure vertical scroll bar is always visible on desktop browsers to get disabled scrollbar effect
17384fd8 154 width: 100vw; // Make sure the content fits all the available width
8110705d 155}
156
245b9d27
K
157// On touchscreen devices, simply overflow: hidden to avoid detached overlay on scroll
158@media (hover: none) and (pointer: coarse) {
931d3430
C
159 .modal-open,
160 .menu-open {
245b9d27
K
161 overflow: hidden !important;
162 }
163
164 // On touchscreen devices display content overlay when opened menu
165 .menu-open {
166 .main-col {
167 &::before {
931d3430 168 background-color: #000;
245b9d27
K
169 width: 100vw;
170 height: 100vh;
171 opacity: 0.75;
172 content: '';
173 display: block;
174 position: fixed;
43599029 175 z-index: z(overlay);
245b9d27
K
176 }
177 }
178 }
179}
180
2f4c784a
C
181// Nav customizations
182.nav .nav-link {
183 display: flex !important;
184 align-items: center;
185 height: 30px !important;
186 padding: 10px 15px !important;
187}
188
189.nav.nav-pills {
190 font-size: 16px !important;
ed5bb517 191 font-weight: $font-semibold !important;
2f4c784a 192
ed5bb517
K
193 .nav-link {
194 opacity: 0.6 !important;
195
931d3430
C
196 &.active,
197 &:hover,
198 &:active,
199 &:focus {
ed5bb517
K
200 opacity: 1 !important;
201 }
2f4c784a
C
202 }
203
204 a {
205 @include disable-default-a-behaviour;
206
e66883b3 207 color: pvar(--mainForegroundColor);
2f4c784a
C
208 }
209}
210
ed5bb517
K
211.nav-tabs .nav-link {
212 @include disable-default-a-behaviour;
2f4c784a 213
ed5bb517
K
214 color: pvar(--mainForegroundColor);
215 font-weight: $font-semibold;
931d3430 216 border: 0;
ed5bb517
K
217 border-bottom: 2px solid transparent;
218 opacity: 0.6;
2f4c784a 219
758f0d19 220 &.active {
ed5bb517 221 color: pvar(--mainForegroundColor);
e66883b3 222 background-color: pvar(--mainBackgroundColor) !important;
ed5bb517 223 border-bottom-color: pvar(--mainColor);
758f0d19 224 }
ed5bb517 225
931d3430
C
226 &.active,
227 &:hover,
228 &:active,
229 &:focus {
ed5bb517 230 opacity: 1;
758f0d19 231 }
2f4c784a
C
232}
233
a4610bc6 234.card {
e66883b3 235 background-color: pvar(--mainBackgroundColor);
a4610bc6
JM
236 border-color: #dee2e6;
237}
238
2f4c784a
C
239.collapse-transition {
240 // Animation when we show/hide the filters
241 transition: max-height 0.3s;
242 display: block !important;
243 overflow: hidden !important;
244 max-height: 0;
245
246 &.show {
247 max-height: 1500px;
dd24f1bb 248 overflow: inherit !important;
2f4c784a
C
249 }
250}
bc584963
RK
251
252.dropdown-divider {
253 margin: 0.3rem 0;
000eb0e4
RK
254}
255
947d0102
RK
256.btn-outline-secondary {
257 border-color: $input-border-color;
258
259 &:focus-within,
260 &:focus,
261 &:hover {
262 color: #fff;
263 background-color: #6c757d;
264 }
265}
266
aa0f1963 267.btn-outline-tertiary {
e66883b3
RK
268 color: pvar(--secondaryColor);
269 border-color: pvar(--secondaryColor);
a3705089 270
947d0102
RK
271 &:focus-within,
272 &:focus,
aa0f1963 273 &:hover {
e66883b3
RK
274 color: pvar(--mainBackgroundColor);
275 background-color: pvar(--secondaryColor);
aa0f1963
RK
276 }
277}
a6d5ff76 278
a8454bb2 279.btn-group.select-button {
2accfdd8
C
280 font-weight: $font-semibold;
281
282 .active {
283 @include orange-button;
284 }
285
286 :not(.active) {
287 @include grey-button;
288 }
289
290 > * {
291 @include peertube-button-link;
292
293 box-shadow: none !important;
294
295 &:not(:first-child) {
296 border-top-left-radius: 0 !important;
297 border-bottom-left-radius: 0 !important;
298 }
299
300 &:not(:last-child) {
301 border-top-right-radius: 0 !important;
302 border-bottom-right-radius: 0 !important;
303 }
304 }
305}
306
a6d5ff76
RK
307// input box-shadow on focus
308.form-control {
309 font-size: 15px;
e66883b3
RK
310 color: pvar(--mainForegroundColor);
311 background-color: pvar(--inputBackgroundColor);
a6d5ff76
RK
312 outline: none;
313
314 &:focus-within,
315 &:focus {
e66883b3 316 box-shadow: #{$focus-box-shadow-form} pvar(--mainColorLightest);
a6d5ff76
RK
317
318 &.input-error {
6a4c30de 319 box-shadow: #{$focus-box-shadow-form} #{scale-color($red, $alpha: -75%)};
a6d5ff76
RK
320 }
321 }
322}
947d0102 323
0d3a2982 324.input-group {
4c8749cb
C
325 > .btn,
326 > .input-group-text {
327 height: $button-height;
0d3a2982 328 }
931d3430 329
4c8749cb
C
330 > .input-group-text {
331 font-size: 15px;
332 line-height: normal;
333 opacity: 0.9;
0d3a2982
RK
334 }
335
4c8749cb
C
336 .input-group-text > .dropdown-toggle {
337 display: flex;
338 }
339
340 .last-in-group {
341 border-top-right-radius: 3px !important;
342 border-bottom-right-radius: 3px !important;
0d3a2982 343 }
947d0102 344}
25a42e29 345
4c8749cb 346.has-clear {
25a42e29
RK
347 position: relative;
348
349 input {
27bc9586 350 @include padding-right(1.5rem !important);
25a42e29
RK
351 }
352
353 .form-control-clear {
354 color: rgba(0, 0, 0, 0.4);
25a42e29
RK
355 display: flex;
356 justify-content: center;
357 align-items: center;
358 position: absolute;
359 right: .5rem;
360 height: 95%;
4f5d0459 361 font-size: 14px;
25a42e29
RK
362
363 &:hover {
364 color: rgba(0, 0, 0, 0.7);
365 cursor: pointer;
366 }
367 }
368
369 input:placeholder-shown + .form-control-clear {
370 display: none;
371 }
372}