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