More discrete close icon for toast
[oweals/peertube.git] / client / src / sass / primeng-custom.scss
1 @import '_variables';
2 @import '_mixins';
3
4 @import '~primeng/resources/primeng.css';
5 @import '~primeng/resources/themes/nova-light/theme.css';
6
7 @mixin glyphicon-light {
8   font-family: 'Glyphicons Halflings';
9   text-decoration: none !important;
10   color: var(--mainForegroundColor) !important;
11   font-display: swap;
12 }
13
14 my-edit-button,
15 my-delete-button,
16 my-button {
17   height: max-content;
18 }
19
20 // data table customizations
21 p-table {
22   .ui-table-caption {
23     border: none !important;
24     background-color: var(--mainBackgroundColor) !important;
25
26     .caption {
27       height: 40px;
28       display: flex;
29       align-items: center;
30     }
31   }
32
33   th {
34     background-color: var(--mainBackgroundColor) !important;
35     outline: 0;
36   }
37
38   td, th {
39     font-family: $main-fonts;
40     font-size: 15px !important;
41     color: var(--mainForegroundColor) !important;
42   }
43
44   td {
45     padding-left: 15px !important;
46
47     &:not(.action-cell):not(.expand-cell) {
48       overflow: hidden !important;
49       text-overflow: ellipsis !important;
50       white-space: nowrap !important;
51     }
52   }
53
54   tr {
55     outline: 0;
56     background-color: var(--mainBackgroundColor) !important;
57     height: 46px;
58
59     &.ui-state-highlight {
60       background-color: var(--submenuColor) !important;
61
62       td, td > a {
63         color: var(--mainForegroundColor) !important;
64       }
65     }
66   }
67
68   .ui-table-tbody {
69     tr {
70       &:hover {
71         background-color: var(--submenuColor) !important;
72
73         .action-cell {
74           .dropdown-root,
75           my-edit-button,
76           my-delete-button,
77           my-button {
78             display: block !important;
79           }
80         }
81       }
82
83       td {
84         border: none !important;
85       }
86
87       &:first-child td {
88         border-top: none !important;
89       }
90
91       &:last-child td {
92         border-bottom: none !important;
93       }
94     }
95
96     .expander {
97       cursor: pointer;
98       position: relative;
99       top: 1px;
100     }
101   }
102
103   th {
104     border: none !important;
105     border-bottom: 1px solid !important;
106     border-color: var(--submenuColor) !important;
107     text-align: left !important;
108     padding: 5px 0 5px 15px !important;
109     font-weight: $font-semibold !important;
110     color: var(--mainForegroundColor) !important;
111
112     &.ui-sortable-column:hover {
113       background-color: var(--submenuColor) !important;
114       border: 1px solid !important;
115       border-color: var(--submenuColor) !important;
116       border-width: 0 1px !important;
117
118       &:first-child {
119         border-width: 0 1px 0 0 !important;
120       }
121     }
122
123     &.ui-state-highlight {
124       background-color: var(--submenuColor) !important;
125
126       .pi {
127         @extend .glyphicon;
128
129         color: #000 !important;
130         font-size: 11px !important;
131         top: 0 !important;
132
133         &.pi-sort-up {
134           @extend .glyphicon-triangle-top;
135
136           color: var(--mainForegroundColor) !important;
137         }
138
139         &.pi-sort-down {
140           @extend .glyphicon-triangle-bottom;
141
142           color: var(--mainForegroundColor) !important;
143         }
144       }
145     }
146   }
147
148   .action-cell {
149     width: 250px !important;
150     padding: 0 !important;
151     text-align: center;
152
153     .dropdown-root,
154     my-edit-button,
155     my-delete-button,
156     my-button {
157       display: none !important;
158
159       &.show {
160         display: block !important;
161       }
162     }
163
164     my-edit-button + my-delete-button {
165       margin-left: 5px;
166     }
167   }
168
169   p-paginator {
170     .ui-paginator-bottom {
171       background-color: var(--mainBackgroundColor) !important;
172       position: relative;
173       border: none;
174       border-top: 1px solid !important;
175       border-color: var(--submenuColor) !important;
176       height: 40px;
177       display: flex;
178       justify-content: center;
179       align-items: center;
180
181       .ui-paginator-first,
182       .ui-paginator-prev,
183       .ui-paginator-next,
184       .ui-paginator-last {
185         @include glyphicon-light;
186         padding: 5px 2px;
187         height: auto;
188         outline: none;
189         font-size: 13px;
190         top: -1px;
191
192         &.ui-state-disabled:hover {
193           background-color: #fff !important;
194         }
195
196         &.ui-paginator-first {
197           @extend .glyphicon-step-backward;
198         }
199
200         &.ui-paginator-prev {
201           @extend .glyphicon-chevron-left;
202
203           margin-right: 10px;
204         }
205
206         &.ui-paginator-next {
207           @extend .glyphicon-chevron-right;
208
209           margin-left: 10px;
210         }
211
212         &.ui-paginator-last {
213           @extend .glyphicon-step-forward;
214         }
215       }
216
217       .ui-paginator-pages {
218         height: auto !important;
219
220         a {
221           color: var(--mainForegroundColor) !important;
222           font-weight: $font-semibold !important;
223           margin: 0 5px !important;
224           outline: 0 !important;
225           border-radius: 3px !important;
226           padding: 5px 2px !important;
227           height: auto !important;
228           line-height: initial !important;
229
230           &.ui-state-active {
231             &, &:hover, &:active, &:focus {
232               color: #fff !important;
233               background-color: var(--mainColor) !important;
234             }
235           }
236         }
237       }
238     }
239   }
240 }
241
242 // multiselect customizations
243 p-multiselect {
244   .ui-multiselect-label {
245     font-size: 15px !important;
246     padding: 4px 30px 4px 12px !important;
247
248     $width: 338px;
249     width: $width !important;
250
251     @media screen and (max-width: $width) {
252       width: 100% !important;
253     }
254   }
255
256   .pi.pi-chevron-down{
257     margin-left: 0 !important;
258
259     &::after {
260       @include select-arrow-down;
261
262       right: 0;
263       margin-top: 6px;
264     }
265   }
266
267   .ui-chkbox-icon {
268     //position: absolute !important;
269     width: 18px;
270     height: 18px;
271     //left: 0;
272
273     //&::after {
274     //  left: -2px !important;
275     //}
276   }
277
278   .ui-multiselect-panel .ui-multiselect-items .ui-multiselect-item.ui-state-highlight {
279     background-color: var(--mainColorLighter);
280   }
281
282   .ui-inputtext:enabled:focus:not(.ui-state-error) {
283     border-color: var(--mainColorLighter) !important;
284     box-shadow: none;
285   }
286 }
287
288 // PrimeNG calendar tweaks
289 p-calendar .ui-datepicker {
290   a {
291     @include disable-default-a-behaviour;
292   }
293
294   .ui-datepicker-header {
295
296     .ui-datepicker-year {
297       margin-left: 5px;
298     }
299
300     .ui-datepicker-next {
301       @extend .glyphicon-chevron-right;
302       @include glyphicon-light;
303
304       color: #000 !important;
305       text-align: right;
306
307       .pi.pi-chevron-right {
308         display: none !important;
309       }
310     }
311
312     .ui-datepicker-prev {
313       @extend .glyphicon-chevron-left;
314       @include glyphicon-light;
315
316       color: #000 !important;
317       text-align: left;
318
319       .pi.pi-chevron-left {
320         display: none !important;
321       }
322     }
323   }
324
325   .ui-timepicker {
326
327     .pi.pi-chevron-up {
328       @extend .glyphicon-chevron-up;
329       @include glyphicon-light;
330
331       color: #000 !important;
332     }
333
334     .pi.pi-chevron-down {
335       @extend .glyphicon-chevron-down;
336       @include glyphicon-light;
337
338       color: #000 !important;
339     }
340   }
341 }
342
343 p-tablecheckbox:hover div .ui-chkbox-box {
344   box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2);
345 }
346
347 .ui-chkbox {
348
349   &, .ui-chkbox-box {
350     width: 18px !important;
351     height: 18px !important;
352   }
353
354   .ui-chkbox-box {
355     &.ui-state-active {
356       border-color: var(--mainColor) !important;
357       background-color: var(--mainColor) !important;
358     }
359
360     .ui-chkbox-icon {
361       position: relative;
362       overflow: visible !important;
363
364       &:after {
365         content: '';
366         position: absolute;
367         top: 1px;
368         left: 6px;
369         width: 5px;
370         height: 12px;
371         opacity: 0;
372         transform: rotate(45deg) scale(0);
373         border-right: 2px solid var(--mainBackgroundColor);
374         border-bottom: 2px solid var(--mainBackgroundColor);
375       }
376
377       &.pi-check:after {
378         opacity: 1;
379         transform: rotate(45deg) scale(1);
380       }
381     }
382   }
383 }
384
385 p-inputswitch {
386   height: 26px;
387
388   .ui-inputswitch-checked .ui-inputswitch-slider {
389     background-color: var(--mainColor) !important;
390   }
391
392   &.small {
393     height: 20px;
394
395     .ui-inputswitch {
396       width: 2.5em !important;
397       height: 1.45em !important;
398
399       .ui-inputswitch-slider::before {
400         height: 1em !important;
401         width: 1em !important;
402       }
403     }
404
405     .ui-inputswitch-checked .ui-inputswitch-slider::before {
406       transform: translateX(1em) !important;
407     }
408   }
409 }
410
411 p-toast {
412   .ui-toast {
413     z-index: z(notification) !important;
414
415     .ui-toast-close-icon {
416       font-family: "Glyphicons Halflings";
417       opacity: 0;
418
419       &:after {
420         content: "\e014";
421       }
422     }
423
424     &:hover .ui-toast-close-icon {
425       opacity: .3;
426     }
427   }
428
429   .ui-toast-message {
430     font-family: $main-fonts;
431     background-color: var(--mainBackgroundColor) !important;
432     border-radius: 5px;
433     box-sizing: border-box;
434     border: 1px solid #EBEEF5 !important;
435     box-shadow: 0 2px 12px 0 rgba(0, 0 , 0, .1);
436     overflow: hidden;
437
438     &.ui-toast-message-success .glyphicon {
439       color: #8BC34A !important;
440     }
441
442     &.ui-toast-message-error .glyphicon {
443       color: #F44336 !important;
444     }
445
446     &.ui-toast-message-warn .glyphicon {
447       color: #F1680D !important;
448     }
449
450     &.ui-toast-message-info .glyphicon {
451       color: #03A9F4 !important;
452     }
453
454     .notification-block {
455       display: flex;
456       align-items: center;
457       padding: 5px;
458
459       .message {
460         flex-grow: 1;
461
462         h3 {
463           font-size: 21px;
464         }
465
466         p {
467           font-size: 15px;
468           margin-bottom: 0;
469         }
470       }
471
472       .glyphicon {
473         font-size: 32px;
474         margin-right: 5px;
475       }
476     }
477   }
478 }
479
480 .ui-widget {
481   font-family: $main-fonts !important;
482 }