themes: add necessary styles for ComboButton
[oweals/luci.git] / themes / luci-theme-bootstrap / htdocs / luci-static / bootstrap / mobile.css
1 header h3 a, header .brand {
2         display:none !important;
3 }
4
5 @media screen and (max-device-width: 600px) {
6         #maincontent.container {
7                 margin-top: 30px;
8         }
9
10         .tabs, .cbi-tabmenu {
11                 background: linear-gradient(#fff 20%, #ddd 100%);
12                 background-size: 1px 34px;
13                 margin-bottom: 10px;
14         }
15
16         .tabs > li, .cbi-tabmenu > li {
17                 height: 30px;
18         }
19
20         .tabs > li > a, .cbi-tabmenu > li > a {
21                 padding: 0 8px;
22                 line-height: 30px;
23         }
24
25         .table {
26                 display: flex;
27                 flex-direction: column;
28                 width: 100%;
29         }
30
31         .tr {
32                 display: flex;
33                 flex-direction: row;
34                 flex-wrap: wrap;
35                 align-items: flex-end;
36                 border-top: 1px solid #ddd;
37                 padding: 5px 0;
38                 margin: 0 -3px;
39         }
40
41         .table .th,
42         .table .td,
43         .table .tr::before {
44                 flex: 2 2 33%;
45                 align-self: flex-start;
46                 overflow: hidden;
47                 text-overflow: ellipsis;
48                 word-wrap: break-word;
49                 display: inline-block;
50                 border-top: none;
51                 padding: 3px;
52                 box-sizing: border-box;
53         }
54
55         .table .td.cbi-dropdown-open {
56                 overflow: visible;
57         }
58
59         .col-1 { flex: 1 1 30px !important; -webkit-flex: 1 1 30px !important; }
60         .col-2 { flex: 2 2 60px !important; -webkit-flex: 2 2 60px !important; }
61         .col-3 { flex: 3 3 90px !important; -webkit-flex: 3 3 90px !important; }
62         .col-4 { flex: 4 4 120px !important; -webkit-flex: 4 4 120px !important; }
63         .col-5 { flex: 5 5 150px !important; -webkit-flex: 5 5 150px !important; }
64         .col-6 { flex: 6 6 180px !important; -webkit-flex: 6 6 180px !important; }
65         .col-7 { flex: 7 7 210px !important; -webkit-flex: 7 7 210px !important; }
66         .col-8 { flex: 8 8 240px !important; -webkit-flex: 8 8 240px !important; }
67         .col-9 { flex: 9 9 270px !important; -webkit-flex: 9 9 270px !important; }
68         .col-10 { flex: 10 10 300px !important; -webkit-flex: 10 10 300px !important; }
69
70         .td select {
71                 word-wrap: normal;
72         }
73
74         .td[data-widget="button"],
75         .td[data-widget="fvalue"] {
76                 flex: 1 1 17%;
77                 text-align: left;
78         }
79
80         .td.cbi-value-field {
81                 align-self: flex-start;
82         }
83
84         .td.cbi-value-field .cbi-button {
85                 width: 100%;
86         }
87
88         .table.cbi-section-table {
89                 border: none;
90                 background: none;
91                 margin: 0;
92         }
93
94         .tr.table-titles,
95         .cbi-section-table-titles,
96         .cbi-section-table-descr {
97                 display: none;
98         }
99
100         .cbi-section-table-row {
101                 display: flex;
102                 flex-direction: row;
103                 flex-wrap: wrap;
104                 margin: 0 0 .5em 0;
105         }
106
107         .cbi-section-table + .cbi-section-create {
108                 padding-top: 0;
109         }
110
111         .tr[data-title]::before {
112                 display: block;
113                 flex: 1 1 100%;
114                 background: #f5f5f5 !important;
115                 font-size: 16px;
116                 border-bottom: 1px solid #ddd;
117         }
118
119         .td[data-title]::before,
120         .td[data-description]::after {
121                 display: block;
122         }
123
124         .td[data-title] ~ .td.cbi-section-actions {
125                 align-self: flex-start;
126         }
127
128         .td[data-title] ~ .td.cbi-section-actions::before {
129                 display: block;
130                 content: "\a0";
131         }
132
133         .td.cbi-section-actions {
134                 overflow: initial;
135                 max-width: 100%;
136                 padding: 3px 2px;
137         }
138
139         .hide-sm,
140         .hide-xs {
141                 display: none !important;
142         }
143
144         .td.cbi-value-field {
145                 flex-basis: 100%;
146         }
147
148         .td.cbi-value-field[data-widget="dvalue"] {
149                 flex-basis: 50%;
150         }
151
152         .td.cbi-value-field[data-widget="button"],
153         .td.cbi-value-field[data-widget="fvalue"] {
154                 flex-basis: 25%;
155                 text-align: left;
156         }
157
158         .cbi-section-table .tr:hover .td,
159         .cbi-section-table .tr:hover .th,
160         .cbi-section-table .tr:hover::before {
161                 background-color: transparent;
162         }
163
164         .cbi-value {
165                 padding-bottom: .5em;
166                 border-bottom: 1px solid #ddd;
167                 margin-bottom: .5em;
168         }
169
170         .cbi-value label.cbi-value-title {
171                 float: none;
172                 font-weight: bold;
173         }
174
175         .cbi-value-field, .cbi-dropdown {
176                 width: 100%;
177                 margin: 0;
178         }
179
180         input, textarea, select,
181         .cbi-dropdown > ul > li input[type="text"] {
182                 font-size: 16px !important;
183                 line-height: 28px;
184                 height: auto;
185         }
186
187         select, input[type="text"], input[type="password"] {
188                 width: 100%;
189                 height: 30px;
190         }
191
192         input.cbi-input-password {
193                 width: calc(100% - 25px);
194         }
195
196         [data-dynlist] {
197                 display: block;
198         }
199
200         [data-dynlist] > .add-item > input {
201                 width: calc(100% - 21px);
202         }
203
204         [data-dynlist] > .add-item > .cbi-button {
205                 margin-right: -1px;
206         }
207
208         input[type="text"] + .cbi-button,
209         input[type="password"] + .cbi-button,
210         select + .cbi-button {
211                 font-size: 14px !important;
212                 line-height:  28px;
213                 height: 30px;
214                 box-sizing: border-box;
215                 overflow: hidden;
216                 text-overflow: ellipsis;
217         }
218
219         .cbi-value-field input[type="checkbox"],
220         .cbi-value-field input[type="radio"] {
221                 margin: 0;
222         }
223
224         .btn, .cbi-button {
225                 font-size: 14px !important;
226                 padding: 4px 8px;
227         }
228
229         .actions,
230         .cbi-page-actions {
231                 border-top: none;
232                 margin-top: -.5em;
233                 padding: 8px;
234         }
235
236         [data-page="admin-status-overview"] .cbi-section:nth-of-type(1) .td:first-child,
237         [data-page="admin-status-overview"] .cbi-section:nth-of-type(2) .td:first-child {
238                 flex-grow: 1;
239         }
240
241         header .pull-right .label {
242                 white-space: normal;
243                 display: inline-block;
244                 text-align: center;
245                 line-height: 12px;
246                 margin: 1px 0;
247         }
248
249         header > .fill {
250                 padding: 1px;
251         }
252
253         header > .fill > .container {
254                 display: flex;
255                 flex-direction: row;
256         }
257
258         header .nav {
259                 flex: 3 3 80%;
260                 margin: 2px 5px 2px 0;
261                 display: flex;
262                 flex-wrap: wrap;
263                 justify-content: flex-start;
264         }
265
266         header .nav a {
267                 padding: 2px 6px;
268         }
269
270         header .pull-right {
271                 flex: 1 1 20%;
272                 display: flex;
273                 flex-direction: column;
274                 padding: 0;
275                 justify-content: space-around;
276         }
277
278         .menu-dropdown, .dropdown-menu {
279                 top: 23px;
280         }
281
282         body {
283                 padding-top: 30px;
284         }
285
286         .cbi-optionals,
287         .cbi-section-create {
288                 padding: 0 0 14px 0;
289         }
290
291         #cbi-network-switch_vlan .th,
292         #cbi-network-switch_vlan .td {
293                 flex-basis: 12%;
294         }
295
296         #cbi-network-switch_vlan .td.cbi-section-actions {
297                 flex-basis: 100%;
298         }
299
300         #cbi-network-switch_vlan .td.cbi-section-actions::before {
301                 display: none;
302         }
303
304         #cbi-network-switch_vlan .td.cbi-section-actions > * {
305                 width: auto;
306                 display: block;
307         }
308
309         #wifi_assoclist_table .td,
310         [data-page="admin-status-processes"] .td {
311                 flex-basis: 50% !important;
312         }
313
314         [data-page="admin-status-processes"] .td[data-widget="button"] {
315                 flex-basis: 33% !important;
316         }
317
318         [data-page="admin-status-processes"] .td[data-name="PID"],
319         [data-page="admin-status-processes"] .td[data-name="USER"] {
320                 flex-basis: 25% !important;
321         }
322
323         [data-page="admin-system-fstab"] .td[data-widget="button"]::before,
324         [data-page="admin-system-startup"] .td[data-widget="button"]::before,
325         [data-page="admin-status-processes"] .td[data-widget="button"]::before {
326                 display: none;
327         }
328 }
329
330 @media screen and (max-device-width: 375px) {
331         #maincontent.container {
332                 margin-top: 55px;
333         }
334
335         .cbi-page-actions {
336                 display: flex;
337                 flex-wrap: wrap;
338                 justify-content: space-between;
339                 margin: 0 -1px;
340                 padding: 0;
341         }
342
343         .cbi-page-actions .cbi-button:not(.cbi-dropdown) {
344                 flex: 1 1 calc(50% - 2px);
345                 margin: 1px !important;
346                 overflow: hidden;
347                 text-overflow: ellipsis;
348         }
349
350         .cbi-page-actions .cbi-button-negative,
351         .cbi-page-actions .cbi-button-primary,
352         .cbi-page-actions .cbi-button-apply {
353                 flex-basis: calc(100% - -2px);
354         }
355
356         .cbi-section-actions .cbi-button {
357                 overflow: hidden;
358                 text-overflow: ellipsis;
359         }
360
361         body[data-page="admin-network-wireless"] .td[data-name="_badge"] {
362                 max-width: 50px;
363                 align-self: center;
364         }
365
366         body[data-page="admin-network-wireless"] .td[data-name="_badge"] .ifacebadge {
367                 display: flex;
368                 align-items: center;
369                 flex-direction: column;
370         }
371
372         body[data-page="admin-network-wireless"] .td[data-name="_stat"] {
373                 flex-basis: 60%;
374         }
375
376         body[data-page="admin-network-network"] .td.cbi-section-actions::before,
377         body[data-page="admin-network-wireless"] .td.cbi-section-actions::before {
378                 content: none !important;
379         }
380 }
381
382 @media screen and (max-device-width: 200px) {
383         #maincontent.container {
384                 margin-top: 230px;
385         }
386 }
387
388 @media screen and (max-width: 375px) {
389         .td .ifacebox {
390                 width: 100%;
391                 margin: 0 !important;
392                 flex-direction: row;
393         }
394
395         .td .ifacebox .ifacebox-head {
396                 min-width: 25%;
397                 justify-content: space-around;
398         }
399
400         .td .ifacebox .ifacebox-head,
401         .td .ifacebox .ifacebox-body {
402                 display: flex;
403                 border-bottom: none;
404                 align-items: center;
405         }
406
407         .td .ifacebox .ifacebox-head > *,
408         .ifacebox .ifacebox-body > * {
409                 margin: .125em;
410         }
411 }