]> git.plutz.net Git - serve0/blob - static/common.css
better touch handling of tagger
[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   box-sizing: border-box;
22   -moz-transition: all .3s linear;
23   transition: all .3s linear;
24 }
25
26 body {
27   padding: 0;
28   margin: 0;
29   background-color: #000;
30   color: #DDD;
31 }
32 a { color: #EEE; }
33 legend, label, .label { font-weight: bold; }
34
35 input.tabhandle { display: none; }
36 .tabcontent { display: none; }
37 input.tabhandle:checked + label.tabhandle + .tabcontent { display: inline-block; }
38 input.tabhandle:checked + .tabcontent { display: inline-block; }
39
40 textarea {
41   display: block;
42   width: 100%;
43 }
44
45 .info {
46   margin: 0;
47   padding: 0 .25em;
48   background-color: #BBD;
49   color: #000;
50   border: #000 1px solid;
51 }
52 .info.tag {
53   line-height: 1.6em;
54   background-color: #DBB;
55   margin-right: -.75ex;
56 }
57
58 .pagination_nav {
59   display: inline-block;
60   position: absolute;
61   right: 2ex; bottom: .25em;
62   transition: none;
63   border: none;
64   background-color: #333;
65   text-align: right;
66   line-height: 1.75em;
67 }
68 .pagination_nav a {
69   display: none;
70   text-decoration: none;
71   padding-left: 1.5ex;
72 }
73 .pagination_nav a.previous,
74 .pagination_nav a.current,
75 .pagination_nav a.next { display: inline-block; }
76 .pagination_nav a.current { color: #F66; font-weight: bold; }
77
78 .pagination_nav:hover {
79   left: 0; right: 0;
80   padding: .5em 3ex .5em 0;
81   overflow: auto;
82 }
83 #search .pagination_nav:hover {
84   top: 0; bottom: auto;
85   padding-top: 2.5em;
86   border-bottom: 1px solid #FFF;
87 }
88 #foot .pagination_nav:hover {
89   top: auto; bottom: 0;
90   padding-bottom: 2.5em;
91   border-top: 1px solid #FFF;
92 }
93 .pagination_nav:hover a { display: inline; }
94
95 /* == Panels == */
96
97 .panel {
98   position: relative;
99   display: block;
100   width: 100%;
101   margin: 0;
102   padding: .25em .5em;
103   background-color: #333;
104   border-width: 1px;
105   border-style: none none solid none;
106 }
107
108 a.panel {
109   font-weight: bold;
110   display: inline-block;
111   border: none;
112   width: auto;
113   padding: 0;
114   margin-right: 1em;
115   margin-bottom: 1ex;
116 }
117
118 .panel .help { display: block;}
119
120 /* == Top Panel == */
121 .panel#advfilter {
122   position: absolute;
123   top: 0;
124 }
125
126 body.playctl .panel#advfilter,
127 body.playctl .panel#search {
128   margin-top: 1.25em;
129   border-top: 1px solid #FFF;
130 }
131
132 /* == Bottom Panels == */
133 .panel#preferences,
134 .panel#tagger,
135 .panel#foot {
136   position: fixed;
137   bottom: 0px;
138   border-style: solid none none none;
139 }
140
141
142 /* == Switchable Panels == */
143
144 form.panel,
145 div.panel {
146   z-index: 1;
147   overflow: hidden;
148   min-height: 0; max-height: 0;
149   padding-top: 0; padding-bottom: 0;
150 }
151
152 .panel#search,
153 .panel#foot {
154   max-height: 100%;
155   z-index: 0;
156   padding: .25em 6em 0 .5em;
157   overflow: visible;
158 }
159
160 body.playctl .panel#search,
161 body.playctl .panel#foot { padding-right: .25em; }
162
163 .panel:target {
164   max-height: 100%;
165   overflow-y: scroll;
166 }
167 .panel#advfilter:target{ padding-bottom: 1em; }
168
169 /* == Panel Switches == */
170
171 .panel#playctl a.panel,
172 .panel#advfilter a.panel,
173 .panel#preferences a.panel,
174 .panel#tagger a.panel {
175   display: block;
176   border-style: none none solid none;
177   border-width: 1px;
178 }
179 .panel#preferences a.panel,
180 .panel#tagger a.panel {
181   border-style: solid none none none;
182   margin-top: .5em;
183 }
184
185
186 /* == Panel Elements == */
187
188 .panel#advfilter .quicklinks,
189 .panel#advfilter .filter,
190 .panel#tagger .newtag,
191 .panel#tagger input[type=submit],
192 .panel#preferences > * {
193   display: inline-block;
194   vertical-align: top;
195   margin-top: 1em;
196 }
197
198
199 /* == Advanced Filters == */
200
201 /* == Filter Boxes == */
202 #advfilter .filter {
203   border: solid 1px #FFF;
204   border-radius: .25em;
205   padding: .25em .5em;
206 }
207 #advfilter .filter .tabcontainer {
208   position: relative;
209   width: 16em;
210   font-weight:normal;
211 }
212 #advfilter .filter .tabcontainer input + .category.tabhandle {
213   display: block;
214   width: 50%;
215 }
216 #advfilter .filter .tabcontainer input:checked + .category.tabhandle {
217   background: #FFF;
218   color: #000;
219 }
220 #advfilter .filter .tabcontainer .category.tabcontent {
221   position: absolute;
222   top: 0; right: 0;
223   width: 50%;
224   height: 100%;
225   min-height: 4em;
226   border: 2px #FFF solid;
227   border-radius: 0 .25em .25em 0;
228 }
229
230 #advfilter > label.tabhandle {
231   text-align: right;
232   width: 4em;
233   margin-left: 4em;
234 }
235
236 /* == Dynamic Appearance of Boxes == */
237 .panel#advfilter > .tabhandle + label { display: none; }
238 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle + label { display: inline-block; }
239 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle:checked + label { display: none; }
240 .panel#advfilter > .tabhandle + label + .tabcontent {
241   display: inline-block;
242   overflow: hidden;
243   max-width: 0;
244   max-height: 0;
245   padding: 0;
246   border: none;
247 }
248 .panel#advfilter > .tabhandle:checked + label + .tabcontent {
249   max-width: 100%;
250   max-height: 100%;
251   padding: .25em .5em;
252   border: solid 1px #FFF;
253 }
254
255 #advfilter .filter.final {
256   width: 16em;
257   margin-left: 1em;
258 }
259
260 #advfilter .quicklinks {width: 100%;}
261
262 /* == Recent filters == */
263
264 p.quicklinks { padding-bottom: 3em; }
265 p.quicklinks :first-child {width: 100%;}
266 p.quicklinks input { display: block; }
267 p.quicklinks a {
268   display: block;
269   word-wrap: break-word;
270   margin-left: 10%;
271   margin-bottom: .75em;
272   margin-top: -1.5em;
273 }
274 p.quicklinks input:checked,
275 p.quicklinks input:checked + a { display: none;}
276
277 /* == Thumblist == */
278
279 #thumblist {
280   width: 100%;
281   padding: .5em 0 3em 0;
282   text-align: center;
283 }
284
285 #thumblist .thumb {
286   display: inline-block;
287   text-align: left;
288   width: 90%;
289   padding: 0 .5em;
290   margin: .5%;
291   margin-bottom: .75em;
292   vertical-align: top;
293   word-wrap: break-word;
294 }
295 @media (min-width: 460px){#thumblist .thumb{width: 48%;}}
296 @media (min-width: 620px){#thumblist .thumb{width: 32%;}}
297 @media (min-width: 1004px){#thumblist .thumb{width: 250px; margin: 2px;}}
298
299 #thumblist .thumb img {
300   width: 100%;
301   margin: 0; padding: 0;
302 }
303 #thumblist .thumb h2 {
304   font-size: 1em;
305   font-weight: normal;
306   margin: 0;
307 }
308 #thumblist .thumb button {
309   display: block;
310   width: 100%;
311   margin: 0; padding: 0;
312   border: none;
313   line-height: 0;
314   background-color: transparent;
315 }
316 #thumblist input {
317   margin: .75em .5em;
318 }
319
320 /* == Filelist == */
321
322 #thumblist .file {
323   color: #000;
324   display: inline-block;
325   text-align: left;
326   width: 90%;
327   padding: .5em .5em;
328   margin: .5%;
329   margin-bottom: .75em;
330   vertical-align: top;
331   word-wrap: break-word;
332 }
333 @media (min-width: 460px){#thumblist .file{width: 48%;}}
334 @media (min-width: 620px){#thumblist .file{width: 32%;}}
335 @media (min-width: 1004px){#thumblist .file{width: 250px; margin: 2px;}}
336
337 #thumblist .file.directory { background-color: #BBD; }
338 #thumblist .file.plain { background-color: #111; color: #777; }
339 #thumblist .file.video { background-color: #DBB; }
340
341 .panel#tagger .newtag { width: 50%;}
342 .panel#tagger .newtag.additional,
343 .panel#tagger .newtag.description { width: 100%;}
344 .panel#tagger .newtag select,
345 .panel#tagger .newtag .label{
346   display: block;
347   width: 100%;
348 }
349 .panel#tagger input[type=submit],
350 .panel#tagger button {
351   min-width: 10em; height: 3em;
352 }
353 @media (min-width: 460px){
354 .panel#tagger .newtag { width: 10em;}
355 .panel#tagger .newtag.additional,
356 .panel#tagger .newtag.description { width: 20em; max-width: 40%; }
357 }
358
359 .panel#preferences > fieldset {
360   border: solid 1px;
361   border-radius: .25em;
362 }
363 .panel#preferences > input { display: block; }
364
365 /* == Client side player == */
366
367 #videoview h1, 
368 #playctl h1 { font-size: 1.25em;}
369 #videoview h1, #videoview > a,
370 #playctl h1, #playctl > a {
371   display: inline-block;
372   margin-right: 1em;
373   padding: 0; margin: .5em 0;
374 }
375 #videoview video {
376   display: block;
377   margin: 0;
378   width: 100%;
379 }
380
381 /* == Server side player == */
382
383 form.playctl fieldset {
384   display: block;
385   position: relative;
386   width: 100%;
387   border: none;
388   text-align: center;
389 }
390 form.playctl fieldset.playback  { height: 12em; }
391 form.playctl fieldset.playback button {
392   position: absolute;
393   height: 6em;
394   padding-top: 1em;
395   background-color: #EEE;
396   border: 1px solid #333;
397 }
398 form.playctl fieldset.playback button[value="-60"] {top: 6em; left: 0; width: 20%;}
399 form.playctl fieldset.playback button[value="-10"] {top: 6em; left: 20%; width: 30%;}
400 form.playctl fieldset.playback button[value="stop"] {top: 0; left: 0; width: 40%;}
401 form.playctl fieldset.playback button[value="pause"] {top: 0; right: 0; width: 60%;}
402 form.playctl fieldset.playback button[value="+10"] {top: 6em; right: 20%; width: 30%;}
403 form.playctl fieldset.playback button[value="+60"] {top: 6em; right: 0; width: 20%;}
404
405 form.playctl fieldset.volume { height: 3em; }
406 form#advctl.playctl fieldset.volume { height: 4em; }
407 form.playctl fieldset.volume button[name="amp"] {position: absolute; width: 50%; height: 4em; top: 0;}
408 form.playctl fieldset.volume button[value="off"] {left:0;}
409 form.playctl fieldset.volume button[value="on"] {right:0;}
410 form.playctl fieldset.volume button[name="vol"] {position: relative; display: inline-block; width: 4%;}
411 form.playctl fieldset.volume button[name="vol"].selected { background-color: #FA6;}
412 form.playctl fieldset.volume button[name="vol"][value="100"],
413 form.playctl fieldset.volume button[name="vol"][value="0"] { width: 4%;}
414 form.playctl fieldset.pasink button { width: 100%; height: 3em;}
415
416 span.progress {
417   display: block;
418   position: fixed;
419   top: 0em;
420   width: 100%; left:0; right: 0;
421   color: white;
422   background-color: black;
423   border-top: 1px solid white;
424   padding: 0;
425   height: 1em;
426   overflow: hidden;
427 }
428 span.progress > span {
429   display: block;
430   position: absolute;
431   text-align: center;
432   background-color: #333;
433   min-width: 2em;
434 }