4d2d6cb67669391d14d5d3f63157973b318d042b
[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
279 // PrimeNG calendar tweaks
280 p-calendar .ui-datepicker {
281   a {
282     @include disable-default-a-behaviour;
283   }
284
285   .ui-datepicker-header {
286
287     .ui-datepicker-year {
288       margin-left: 5px;
289     }
290
291     .ui-datepicker-next {
292       @extend .glyphicon-chevron-right;
293       @include glyphicon-light;
294
295       color: #000 !important;
296       text-align: right;
297
298       .pi.pi-chevron-right {
299         display: none !important;
300       }
301     }
302
303     .ui-datepicker-prev {
304       @extend .glyphicon-chevron-left;
305       @include glyphicon-light;
306
307       color: #000 !important;
308       text-align: left;
309
310       .pi.pi-chevron-left {
311         display: none !important;
312       }
313     }
314   }
315
316   .ui-timepicker {
317
318     .pi.pi-chevron-up {
319       @extend .glyphicon-chevron-up;
320       @include glyphicon-light;
321
322       color: #000 !important;
323     }
324
325     .pi.pi-chevron-down {
326       @extend .glyphicon-chevron-down;
327       @include glyphicon-light;
328
329       color: #000 !important;
330     }
331   }
332 }
333
334 p-tablecheckbox:hover div .ui-chkbox-box {
335   box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2);
336 }
337
338 .ui-chkbox {
339
340   &, .ui-chkbox-box {
341     width: 18px !important;
342     height: 18px !important;
343   }
344
345   .ui-chkbox-box {
346     &.ui-state-active {
347       border-color: var(--mainColor) !important;
348       background-color: var(--mainColor) !important;
349     }
350
351     .ui-chkbox-icon {
352       position: relative;
353       overflow: visible !important;
354
355       &:after {
356         content: '';
357         position: absolute;
358         top: 1px;
359         left: 6px;
360         width: 5px;
361         height: 12px;
362         opacity: 0;
363         transform: rotate(45deg) scale(0);
364         border-right: 2px solid var(--mainBackgroundColor);
365         border-bottom: 2px solid var(--mainBackgroundColor);
366       }
367
368       &.pi-check:after {
369         opacity: 1;
370         transform: rotate(45deg) scale(1);
371       }
372     }
373   }
374 }
375
376 p-inputswitch {
377   height: 26px;
378
379   .ui-inputswitch-checked .ui-inputswitch-slider {
380     background-color: var(--mainColor) !important;
381   }
382 }
383
384 p-toast {
385   .ui-toast {
386     z-index: z(notification) !important;
387   }
388
389   .ui-toast-message {
390     font-family: $main-fonts;
391     background-color: var(--mainBackgroundColor) !important;
392     border-radius: 5px;
393     box-sizing: border-box;
394     border: 1px solid #EBEEF5 !important;
395     box-shadow: 0 2px 12px 0 rgba(0, 0 , 0, .1);
396     overflow: hidden;
397
398     &.ui-toast-message-success .glyphicon {
399       color: #8BC34A !important;
400     }
401
402     &.ui-toast-message-error .glyphicon {
403       color: #F44336 !important;
404     }
405
406     &.ui-toast-message-warn .glyphicon {
407       color: #F1680D !important;
408     }
409
410     &.ui-toast-message-info .glyphicon {
411       color: #03A9F4 !important;
412     }
413
414     .notification-block {
415       display: flex;
416       align-items: center;
417       padding: 5px;
418
419       .message {
420         flex-grow: 1;
421
422         h3 {
423           font-size: 21px;
424         }
425
426         p {
427           font-size: 15px;
428           margin-bottom: 0;
429         }
430       }
431
432       .glyphicon {
433         font-size: 32px;
434         margin-right: 5px;
435       }
436     }
437   }
438 }
439
440 .ui-widget {
441   font-family: $main-fonts !important;
442 }