]> git.plutz.net Git - serve0/blob - static/common.css
bugfix: allow rime based update of meta file
[serve0] / static / common.css
1 /* Copyright 2014 - 2016 Paul Hänsch
2
3    This file is part of Serve0
4    
5    Serve0 is free software: you can redistribute it and/or modify
6    it under the terms of the GNU Affero General Public License as published by
7    the Free Software Foundation, either version 3 of the License, or
8    (at your option) any later version.
9    
10    Serve0 is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU Affero General Public License for more details.
14    
15    You should have received a copy of the GNU Affero General Public License
16    along with Serve0  If not, see <http://www.gnu.org/licenses/>. 
17 */
18
19 * {
20   -moz-box-sizing: border-box;
21   -webkit-box-sizing: border-box;
22   box-sizing: border-box;
23   -moz-transition: all .25s linear;
24   transition: all .25s linear;
25 }
26
27 body {
28   padding: 0;
29   padding-top: 3em;
30   margin: 0;
31   background-color: #000;
32   color: #DDD;
33 }
34 body.playctl { padding-top: 4.25em; }
35 a { color: #EEE; }
36 legend, label, .label { font-weight: bold; }
37
38 input.tabhandle { display: none; }
39 .tabcontent { display: none; }
40 input.tabhandle:checked + label.tabhandle + .tabcontent { display: inline-block; }
41 input.tabhandle:checked + .tabcontent { display: inline-block; }
42
43 textarea {
44   display: block;
45   width: 100%;
46 }
47
48 .info {
49   margin: 0;
50   padding: 0 .25em;
51   background-color: rgba(208,208,255,.625 );
52   color: #000;
53   border: #000 1px solid;
54 }
55 .info.tag {
56   line-height: 1.6em;
57   background-color: #DBB;
58   margin-right: -.75ex;
59 }
60
61 .pagination_nav {
62   display: inline-block;
63   float: right;
64   transition: none;
65   border: none;
66   background-color: #333;
67   text-align: right;
68 }
69 .pagination_nav a {
70   display: none;
71   text-decoration: none;
72   padding-left: 1.5ex;
73 }
74 .pagination_nav a.previous,
75 .pagination_nav a.current,
76 .pagination_nav a.next { display: inline-block; }
77 .pagination_nav a.current { color: #F66; font-weight: bold; }
78
79 .pagination_nav:hover {
80   position: absolute;
81   line-height: 1.75em;
82   left: 0; right: 0;
83   padding: .5em 3ex .5em 0;
84   overflow: auto;
85 }
86 #search .pagination_nav:hover {
87   top: 0; bottom: auto;
88   padding-top: 2.5em;
89   border-bottom: 1px solid #FFF;
90 }
91 #foot .pagination_nav:hover {
92   top: auto; bottom: 0;
93   padding-bottom: 2.5em;
94   border-top: 1px solid #FFF;
95 }
96 .pagination_nav:hover a { display: inline; }
97
98
99 /* == Panels == */
100 body:before {
101   position: absolute; display: block;
102   top: -1px; height: 2.25em; width: 100%;
103   background-color: #222;
104   margin: 0; padding: 0;
105   padding-top: .5em;
106   border-bottom: 1px solid #FFF;
107   content: '';
108 }
109 body.playctl:before {
110   top: -2px;
111   margin-top: 1.25em;
112   border-top: 1px solid #FFF;
113 }
114
115 input[name=topmenu] {display: none;}
116 input[name=topmenu] + label {
117   position: relative;
118   top: -2.5em;
119   display: inline-block;
120   text-decoration: none;
121   padding: .5em .5em;
122   line-height: 1.25em;
123   transition: none;
124   border: 1px none #FFF;
125   text-align: center;
126 }
127 @media (min-width: 620px){input[name=topmenu] + label { padding: .5em 1.5em; }}
128
129 input[name=topmenu]:checked + label {
130   background-color: #333;
131   margin-left: -1px; margin-top: -1px;
132   border-style: solid solid none solid;
133 }
134 input[name=topmenu]:checked + label + * + input + label { margin-left: -1px; }
135
136 .panel#search select { margin-right: .5em; }
137 .panel#search:after {
138   display: block; content: '';
139   clear: both;
140 }
141
142 .panel#search, .panel#foot,
143 .panel.top, .panel.bottom {
144   display: block;
145   width: 100%;
146   margin: 0;
147   padding: .25em .5em;
148   background-color: #333;
149   border-width: 1px;
150   z-index: 1;
151 }
152
153 .panel#search, .panel.top {
154   border-style: none none solid none;
155   top: 2.75em;
156 }
157 body.playctl .panel#search,
158 body.playctl .panel.top { top: 4em; }
159
160
161 .panel#search,
162 .panel.top.switchable { position: absolute; min-height: 2.5em;}
163 .panel#foot, .panel.bottom {
164   position: fixed;
165   bottom: 0;
166   border-style: solid none none none;
167 }
168
169 .panel.switchable {
170   display: none;
171   max-height: 0;
172   overflow: hidden;
173   margin: 0; padding: 0;
174   border-width: 0;
175 }
176
177 input[name=topmenu]:checked + label + .panel.switchable,
178 .panel.switchable:target {
179   display: block;
180   max-height: 80%;
181   overflow-y: auto;
182   padding: .25em .5em;
183   border-width: 1px;
184   z-index: 2;
185 }
186
187 .panel#search > a, .panel#foot > a,
188 .panel.top > a, .panel.bottom > a{
189   display: inline-block;
190   font-weight: bold;
191   text-decoration: none;
192   margin: .25em .5em 0 0;
193 }
194
195 .panel.switchable.top a:first-of-type {
196   display: block; display: none;
197   margin-bottom: .5em;
198   border-bottom: 1px solid #FFF;
199 }
200 .panel.switchable.bottom a:last-of-type {
201   display: block;
202   margin-top: .5em;
203   border-top: 1px solid #FFF;
204 }
205
206
207 /* == Panel Elements == */
208
209 .panel.switchable > fieldset,
210 .panel.switchable > input[type=submit] {
211   border: none;
212   display: inline-block;
213   vertical-align: top;
214   margin-top: 1em;
215 }
216
217 #tagger > fieldset { max-width: 48%;}
218 #tagger > fieldset.additional,
219 #tagger > fieldset.description {
220   max-width: 100%;
221 }
222
223 /* == Advanced Filters == */
224
225 /* == Filter Boxes == */
226 #advfilter .filter {
227   border: solid 1px #FFF;
228   border-radius: .25em;
229   padding: .25em .5em;
230 }
231 #advfilter .filter .help {
232   display: block;
233   height: 0; overflow: hidden;
234 }
235 #advfilter .filter .tabcontainer {
236   position: relative;
237   width: 16em;
238   font-weight:normal;
239 }
240 #advfilter .filter .tabcontainer input + .category.tabhandle {
241   display: block;
242   width: 50%;
243 }
244 #advfilter .filter .tabcontainer input:checked + .category.tabhandle {
245   background: #FFF;
246   color: #000;
247 }
248 #advfilter .filter .tabcontainer .category.tabcontent {
249   position: absolute;
250   top: 0; right: 0;
251   width: 50%;
252   height: 100%;
253   min-height: 4em;
254   border: 2px #FFF solid;
255   border-radius: 0 .25em .25em 0;
256 }
257
258 #advfilter > label.tabhandle {
259   text-align: right;
260   width: 4em;
261   margin-left: 4em;
262 }
263
264 /* == Dynamic Appearance of Boxes == */
265 .panel#advfilter > .tabhandle + label { display: none; }
266 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle + label { display: inline-block; }
267 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle:checked + label { display: none; }
268 .panel#advfilter > .tabhandle + label + .tabcontent {
269   display: inline-block;
270   overflow: hidden;
271   max-width: 0;
272   max-height: 0;
273   padding: 0;
274   border: none;
275 }
276 .panel#advfilter > .tabhandle:checked + label + .tabcontent {
277   max-width: 100%;
278   max-height: 100%;
279   padding: .25em .5em;
280   border: solid 1px #FFF;
281 }
282
283 #advfilter .filter.final {
284   width: 16em;
285   margin-left: 1em;
286 }
287
288
289 /* == Recent filters == */
290
291 p.quicklinks { padding-bottom: 3em; }
292 p.quicklinks :first-child {width: 100%;}
293 p.quicklinks input { display: block; }
294 p.quicklinks a {
295   display: block;
296   word-wrap: break-word;
297   margin-left: 10%;
298   margin-bottom: .75em;
299   margin-top: -1.5em;
300 }
301 p.quicklinks input:checked,
302 p.quicklinks input:checked + a { display: none;}
303
304 /* == Thumblist == */
305
306 #thumblist {
307   width: 100%;
308   padding: .5em 0 3em 0;
309   text-align: center;
310 }
311
312 #thumblist .thumb {
313   position: relative;
314   display: inline-block;
315   text-align: left;
316   width: 90%;
317   padding: 0 .5em;
318   margin: .5%;
319   margin-bottom: .75em;
320   vertical-align: top;
321   word-wrap: break-word;
322 }
323 @media (min-width: 460px){#thumblist .thumb{width: 48%;}}
324 @media (min-width: 620px){#thumblist .thumb{width: 32%;}}
325 @media (min-width: 1004px){#thumblist .thumb{width: 250px; margin: 2px;}}
326
327 #thumblist .thumb img {
328   width: 100%;
329   margin: 0; padding: 0;
330 }
331 #thumblist .thumb h2 {
332   position: absolute;
333   top: 0; width: 100%;
334   font-size: 1.125em;
335   font-weight: normal;
336   padding: .5ex .5em;
337   margin: 0;
338   border-bottom: 1px solid #333;
339   background: rgba(0,0,0,.5);
340 }
341 #thumblist .thumb .property {
342   position: absolute; left: .25em;
343   margin-top: -1.5em;
344 }
345 #thumblist .thumb .property:nth-of-type(2) { left: 5em;}
346 #thumblist .thumb button {
347   display: block;
348   width: 100%;
349   margin: 0; padding: 0;
350   border: none;
351   line-height: 0;
352   background-color: transparent;
353 }
354 #thumblist input {
355   margin: .75em .5em;
356 }
357
358 /* == Filelist == */
359
360 #thumblist .file {
361   color: #000;
362   display: inline-block;
363   text-align: left;
364   width: 90%;
365   padding: .5em .5em;
366   margin: .5%;
367   margin-bottom: .75em;
368   vertical-align: top;
369   word-wrap: break-word;
370 }
371 @media (min-width: 460px){#thumblist .file{width: 48%;}}
372 @media (min-width: 620px){#thumblist .file{width: 32%;}}
373 @media (min-width: 1004px){#thumblist .file{width: 250px; margin: 2px;}}
374
375 #thumblist .file.directory { background-color: #BBD; }
376 #thumblist .file.plain { background-color: #111; color: #777; }
377 #thumblist .file.video { background-color: #DBB; }
378
379 .panel#tagger .newtag { width: 50%;}
380 .panel#tagger .newtag.additional,
381 .panel#tagger .newtag.description { width: 100%;}
382 .panel#tagger .newtag select,
383 .panel#tagger .newtag .label{
384   display: block;
385   width: 100%;
386 }
387 .panel#tagger input[type=submit],
388 .panel#tagger button,
389 .panel#preferences button,
390 .panel#preferences input[type=submit] {
391   min-width: 10em; height: 3em;
392 }
393 @media (min-width: 460px){
394 .panel#tagger .newtag { width: 10em;}
395 .panel#tagger .newtag.additional,
396 .panel#tagger .newtag.description { width: 20em; max-width: 40%; }
397 }
398
399 .panel#preferences > fieldset {
400   border: solid 1px;
401   border-radius: .25em;
402 }
403 .panel#preferences > input { display: block; }
404
405 /* == Client side player == */
406
407 #videoview h1, 
408 #playctl h1 { font-size: 1.25em;}
409 #videoview h1, #videoview > a,
410 #playctl h1, #playctl > a {
411   display: inline-block;
412   margin-right: 1em;
413   padding: 0; margin: .5em 0;
414 }
415 #videoview video {
416   display: block;
417   margin: 0;
418   width: 100%;
419 }
420
421 /* == Server side player == */
422
423 form.playctl fieldset {
424   display: block;
425   position: relative;
426   width: 100%;
427   border: none;
428   text-align: center;
429 }
430 form.playctl fieldset.playback  { height: 12em; }
431 form.playctl fieldset.playback button {
432   position: absolute;
433   height: 6em;
434   padding-top: 1em;
435   background-color: #EEE;
436   border: 1px solid #333;
437 }
438 form.playctl fieldset.playback button[value="-60"] {top: 6em; left: 0; width: 20%;}
439 form.playctl fieldset.playback button[value="-10"] {top: 6em; left: 20%; width: 30%;}
440 form.playctl fieldset.playback button[value="stop"] {top: 0; left: 0; width: 40%;}
441 form.playctl fieldset.playback button[value="pause"] {top: 0; right: 0; width: 60%;}
442 form.playctl fieldset.playback button[value="+10"] {top: 6em; right: 20%; width: 30%;}
443 form.playctl fieldset.playback button[value="+60"] {top: 6em; right: 0; width: 20%;}
444
445 form.playctl fieldset.volume { height: 3em; }
446 form#advctl.playctl fieldset.volume { height: 4em; }
447 form.playctl fieldset.volume button[name="amp"] {position: absolute; width: 50%; height: 4em; top: 0;}
448 form.playctl fieldset.volume button[value="off"] {left:0;}
449 form.playctl fieldset.volume button[value="on"] {right:0;}
450 form.playctl fieldset.volume button[name="vol"] {
451   position: relative; display: inline-block;
452   width: 4%;
453   border: 1px solid black; border-right: none;
454 }
455 form.playctl fieldset.volume button[name="vol"].selected { width: 2%; background-color: #FA6;}
456 form.playctl fieldset.volume button[name="vol"].lselected,
457 form.playctl fieldset.volume button[name="vol"].gselected { width: 7.5%;}
458 form.playctl fieldset.volume button[name="vol"].llselected,
459 form.playctl fieldset.volume button[name="vol"].ggselected { width: 6.5%;}
460
461 /*form.playctl fieldset.volume button[name="vol"][value="100"],
462   form.playctl fieldset.volume button[name="vol"][value="0"] { width: 4%;}*/
463 form.playctl fieldset.pasink button { width: 100%; height: 3em;}
464
465 span.progress {
466   display: block;
467   position: fixed;
468   top: 0em;
469   width: 100%; left:0; right: 0;
470   color: white;
471   background-color: black;
472   border-top: 1px solid white;
473   padding: 0;
474   height: 1em;
475   overflow: hidden;
476 }
477 span.progress > span {
478   display: block;
479   position: absolute;
480   text-align: center;
481   background-color: #333;
482   min-width: 2em;
483 }
484