Design admin data tables
[oweals/peertube.git] / client / src / sass / application.scss
1 $FontPathSourceSansPro: "../fonts/source-sans-pro";
2 @import '~source-sans-pro/source-sans-pro';
3 @import '~primeng/resources/themes/bootstrap/theme.css';
4 @import '~primeng/resources/primeng.css';
5 @import '~video.js/dist/video-js.css';
6 @import './video-js-custom.scss';
7
8 [hidden] {
9   display: none !important;
10 }
11
12 body {
13   font-family: 'Source Sans Pro';
14   font-weight: $font-regular;
15   color: #000;
16 }
17
18 input.readonly {
19   /* Force blank on readonly inputs */
20   background-color: #fff !important;
21 }
22
23 label {
24   font-weight: $font-bold;
25   font-size: 15px;
26 }
27
28 .form-error {
29   display: block;
30   color: $red-error;
31   margin-top: 5px;
32 }
33
34 .input-error {
35   border-color: $red-error !important;
36 }
37
38 .glyphicon-black {
39   color: black;
40 }
41
42 .main-col {
43   margin-left: $menu-width;
44
45   .margin-content {
46     margin-left: $not-expanded-horizontal-margins;
47     margin-right: $not-expanded-horizontal-margins;
48   }
49
50   .sub-menu {
51     background-color: #F7F7F7;
52     width: 100%;
53     height: 81px;
54     margin-bottom: 30px;
55     display: flex;
56     align-items: center;
57     padding-left: $not-expanded-horizontal-margins;
58   }
59
60   // Override some properties if the main content is expanded (no menu on the left)
61   &.expanded {
62     margin-left: 0;
63
64     .margin-content {
65       margin-left: $expanded-horizontal-margins;
66       margin-right: $expanded-horizontal-margins;
67     }
68
69     .sub-menu {
70       padding-left: $expanded-horizontal-margins;
71     }
72   }
73 }
74
75 .title-page {
76   color: #000;
77   font-size: 16px;
78   display: inline-block;
79   margin-right: 55px;
80   font-weight: $font-semibold;
81   @include disable-default-a-behaviour;
82
83   &.active, &.title-page-single {
84     border-bottom: 2px solid $orange-color;
85     font-weight: $font-bold;
86     margin-top: 30px;
87     margin-bottom: 25px;
88   }
89
90   &:hover, &:active, &:focus {
91     color: #000;
92   }
93 }
94
95 .admin-sub-header {
96   display: flex;
97   align-items: center;
98   margin-bottom: 30px;
99
100   .admin-sub-title {
101     flex-grow: 1;
102   }
103 }
104
105 .admin-sub-title {
106   font-size: 20px;
107   font-weight: bold;
108 }
109
110 // On small screen, menu is absolute and displayed over the page
111 @media screen and (max-width: 500px) {
112   .title-menu-left {
113     width: 120px;
114     position: absolute !important;
115     z-index: 10000;
116   }
117
118   .main-col {
119     width: 100% !important;
120   }
121
122   .fake-menu {
123     display: none;
124   }
125 }
126
127 // Thanks https://gist.github.com/alexandrevicenzi/680147013e902a4eaa5d
128 .glyphicon-refresh-animate {
129   -animation: spin .7s infinite linear;
130   -ms-animation: spin .7s infinite linear;
131   -webkit-animation: spinw .7s infinite linear;
132   -moz-animation: spinm .7s infinite linear;
133 }
134
135 @keyframes spin {
136   from { transform: scale(1) rotate(0deg);}
137   to { transform: scale(1) rotate(360deg);}
138 }
139
140 @-webkit-keyframes spinw {
141   from { -webkit-transform: rotate(0deg);}
142   to { -webkit-transform: rotate(360deg);}
143 }
144
145 @-moz-keyframes spinm {
146   from { -moz-transform: rotate(0deg);}
147   to { -moz-transform: rotate(360deg);}
148 }
149
150 // ngprime data table customizations
151 p-datatable {
152   font-size: 15px !important;
153
154   .ui-datatable-scrollable-header {
155     background-color: #fff !important;
156   }
157
158   .ui-widget-content {
159     border: none !important;
160   }
161
162   .ui-datatable-virtual-table {
163     border-top: none !important;
164   }
165
166   td {
167     border: 1px solid #E5E5E5 !important;
168     padding: 15px;
169   }
170
171   tr {
172     background-color: #fff !important;
173     height: 46px;
174
175     &:hover {
176       background-color: #f0f0f0 !important;
177     }
178
179     &:not(:hover) {
180       .action-cell * {
181         display: none !important;
182       }
183     }
184
185     &:first-child td {
186       border-top: none !important;
187     }
188   }
189
190   th {
191     border: none !important;
192     border-bottom: 1px solid #f0f0f0 !important;
193     text-align: left !important;
194     padding: 5px 0 5px 15px !important;
195     font-weight: $font-semibold !important;
196     color: #000 !important;
197
198     &.ui-state-active, &.ui-sortable-column:hover {
199       background-color: #f0f0f0 !important;
200       border: 1px solid #f0f0f0 !important;
201     }
202   }
203
204   .action-cell {
205     width: 250px !important;
206     padding: 0 !important;
207     text-align: center;
208   }
209
210   p-paginator {
211     overflow: hidden;
212     display: block;
213     padding-top: 2px;
214     border: 1px solid #f0f0f0 !important;
215     border-top: none !important;
216
217     .ui-paginator-bottom {
218       position: relative;
219       border: none !important;
220       border-top: 1px solid #f0f0f0 !important;
221       box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.16);
222       height: 40px;
223       display: flex;
224       justify-content: center;
225       align-items: center;
226
227       a {
228         color: #000 !important;
229         font-weight: $font-semibold !important;
230         margin-right: 20px !important;
231         outline: 0 !important;
232         border-radius: 3px !important;
233         padding: 5px 2px !important;
234
235         &.ui-state-active {
236           &, &:hover, &:active, &:focus {
237             color: #fff !important;
238             background-color: $orange-color !important;
239           }
240         }
241       }
242     }
243   }
244 }
245
246 // Bootstrap customizations
247 .dropdown-menu {
248   border-radius: 3px;
249   box-shadow: 0 3px 6px;
250   font-size: 15px;
251
252   .dropdown-item {
253     padding: 3px 15px;
254   }
255
256   a {
257     color: #000 !important;
258   }
259 }
260
261 .modal {
262   .modal-header {
263     border-bottom: none;
264
265     .title-page-single {
266       margin: 0;
267     }
268   }
269 }
270
271 .nav {
272   margin-top: 10px;
273   font-size: 16px !important;
274   border: none !important;
275
276   .nav-item .nav-link {
277     height: 30px !important;
278     margin-right: 30px;
279     padding: 0 15px;
280     display: flex;
281     align-items: center;
282     border-radius: 3px;
283     border: none !important;
284
285     &, & a {
286       color: #000 !important;
287     }
288
289     &.active, &:hover {
290       background-color: #F0F0F0;
291     }
292
293     &.active {
294       font-weight: $font-semibold !important;
295     }
296   }
297
298   .tab-content {
299     min-height: 75px;
300     padding: 15px;
301   }
302 }
303
304
305 .orange-button {
306   @include peertube-button;
307   @include orange-button;
308 }
309
310 .orange-button-link {
311   @include peertube-button-link;
312   @include orange-button;
313 }
314
315 .grey-button {
316   @include peertube-button;
317   @include grey-button;
318 }
319
320 .grey-button-link {
321   @include peertube-button-link;
322   @include grey-button;
323 }