]> git.plutz.net Git - serve0/blob - static/common.css
2e8effc0450459a2f204949abc3533b8ac19781c
[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   border: none;
62   right: 0; bottom: .25em;
63   padding: .125em .5em 0 0;
64 }
65
66 .pagination_nav a {
67   display: none;
68   margin: 1ex 1px;
69   padding: 0 1ex;
70   text-decoration: none;
71 }
72
73 .pagination_nav a.previous,
74 .pagination_nav a.current,
75 .pagination_nav a.next { display: inline; }
76 .pagination_nav a.current {
77   color: #F66;
78   font-weight: bold;
79 }
80 .pagination_nav:hover {
81   position: fixed;
82   padding-top: 2.5em;
83   bottom: auto;
84   text-align: right;
85   background-color: #333;
86   border-bottom: 1px solid #FFF;
87   line-height: 1.75em;
88   transition: none;
89   overflow: auto;
90   min-height: 1em;
91   z-index: 2;
92 }
93 .pagination_nav:hover a {
94   display: inline;
95 }
96
97 /* == Panels == */
98
99 .panel {
100   position: relative;
101   display: block;
102   width: 100%;
103   margin: 0;
104   padding: .25em .5em;
105   background-color: #333;
106   border-width: 1px;
107   border-style: none none solid none;
108 }
109
110 a.panel {
111   font-weight: bold;
112   display: inline-block;
113   border: none;
114   width: auto;
115   padding: 0;
116   margin-right: 1em;
117   margin-bottom: 1ex;
118 }
119
120 .panel .help { display: block;}
121
122 /* == Top Panel == */
123 .panel#advfilter {
124   position: absolute;
125   top: 0;
126 }
127
128 body.playctl .panel#advfilter,
129 body.playctl .panel#search {
130   margin-top: 1.25em;
131   border-top: 1px solid #FFF;
132 }
133
134 /* == Bottom Panels == */
135 .panel#preferences,
136 .panel#tagger,
137 .panel#foot {
138   position: fixed;
139   bottom: 0px;
140   border-style: solid none none none;
141 }
142
143
144 /* == Switchable Panels == */
145
146 form.panel,
147 div.panel {
148   z-index: 1;
149   overflow: hidden;
150   min-height: 0; max-height: 0;
151   padding-top: 0; padding-bottom: 0;
152 }
153
154 .panel#search,
155 .panel#foot {
156   max-height: 100%;
157   z-index: 0;
158   padding: .25em 6em 0 .5em;
159   overflow: visible;
160 }
161
162 body.playctl .panel#search,
163 body.playctl .panel#foot { padding-right: .25em; }
164
165 .panel:target {
166   max-height: 100%;
167   overflow-y: scroll;
168 }
169 .panel#advfilter:target{ padding-bottom: 1em; }
170
171 /* == Panel Switches == */
172
173 .panel#playctl a.panel,
174 .panel#advfilter a.panel,
175 .panel#preferences a.panel,
176 .panel#tagger a.panel {
177   display: block;
178   border-style: none none solid none;
179   border-width: 1px;
180 }
181 .panel#preferences a.panel,
182 .panel#tagger a.panel {
183   border-style: solid none none none;
184   margin-top: .5em;
185 }
186
187
188 /* == Panel Elements == */
189
190 .panel#advfilter .quicklinks,
191 .panel#advfilter .filter,
192 .panel#tagger .newtag,
193 .panel#tagger input[type=submit],
194 .panel#preferences > * {
195   display: inline-block;
196   vertical-align: top;
197   margin-top: 1em;
198 }
199
200
201 /* == Advanced Filters == */
202
203 /* == Filter Boxes == */
204 #advfilter .filter {
205   border: solid 1px #FFF;
206   border-radius: .25em;
207   padding: .25em .5em;
208 }
209 #advfilter .filter .tabcontainer {
210   position: relative;
211   width: 16em;
212   font-weight:normal;
213 }
214 #advfilter .filter .tabcontainer input + .category.tabhandle {
215   display: block;
216   width: 50%;
217 }
218 #advfilter .filter .tabcontainer input:checked + .category.tabhandle {
219   background: #FFF;
220   color: #000;
221 }
222 #advfilter .filter .tabcontainer .category.tabcontent {
223   position: absolute;
224   top: 0; right: 0;
225   width: 50%;
226   height: 100%;
227   min-height: 4em;
228   border: 2px #FFF solid;
229   border-radius: 0 .25em .25em 0;
230 }
231
232 #advfilter > label.tabhandle {
233   text-align: right;
234   width: 4em;
235   margin-left: 4em;
236 }
237
238 /* == Dynamic Appearance of Boxes == */
239 .panel#advfilter > .tabhandle + label { display: none; }
240 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle + label { display: inline-block; }
241 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle:checked + label { display: none; }
242 .panel#advfilter > .tabhandle + label + .tabcontent {
243   display: inline-block;
244   overflow: hidden;
245   max-width: 0;
246   max-height: 0;
247   padding: 0;
248   border: none;
249 }
250 .panel#advfilter > .tabhandle:checked + label + .tabcontent {
251   max-width: 100%;
252   max-height: 100%;
253   padding: .25em .5em;
254   border: solid 1px #FFF;
255 }
256
257 #advfilter .filter.final {
258   width: 16em;
259   margin-left: 1em;
260 }
261
262 #advfilter .quicklinks {width: 100%;}
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 select,
342 .panel#tagger .newtag .label{
343   display: block;
344   width: 10em;
345 }
346
347 .panel#preferences > fieldset {
348   border: solid 1px;
349   border-radius: .25em;
350 }
351 .panel#preferences > input { display: block; }
352
353 #videoview h1, 
354 #playctl h1 { font-size: 1.25em;}
355 #videoview h1, #videoview > a,
356 #playctl h1, #playctl > a {
357   display: inline-block;
358   margin-right: 1em;
359   padding: 0; margin: .5em 0;
360 }
361 #videoview video {
362   display: block;
363   margin: 0;
364   width: 100%;
365 }
366
367 #playctl form { text-align: center; }
368 #playctl form button {
369   display: inline-block;
370   height: 100%;
371   min-height: 4em;
372   margin: 0 -.75ex .5em 0;
373   background-color: #EEE;
374   border: 1px solid #333;
375   vertical-align: bottom;
376   padding-top: 1em;
377 }
378 #playctl form button[name="seek"],
379 #playctl form button[name="ctl"] { width: 40%;}
380 #playctl form button[name="amp"] { width: 40%; margin-top: 2em;}
381 #playctl form button[name="vol"] { width: 5%; min-height: 1em;}
382 #playctl form button[name="vol"].selected { background-color: #FA6;}
383 #playctl form button[name="vol"][value="100"],
384 #playctl form button[name="vol"][value="0"] { width: 6%;}
385
386 span.progress {
387   display: block;
388   position: fixed;
389   top: 0em;
390   width: 100%; left:0; right: 0;
391   color: white;
392   background-color: black;
393   border-top: 1px solid white;
394   padding: 0;
395   height: 1em;
396 }
397 span.progress > * {
398   display: block;
399   text-align: center;
400   background-color: #333;
401 }
402
403 @media (min-width: 460px){
404   #playctl form button {
405     max-width: 4em;
406     min-height: 2em;
407     padding-top: 0em;
408     margin-bottom: 2em;
409   }
410   #playctl form button[name="seek"],
411   #playctl form button[name="ctl"] { width: 16%;}
412   #playctl form button[name="amp"] { width: 15%;}
413   #playctl form button[name="vol"] { width: 3%;}
414   #playctl form button[name="amp"] + br {display: none;}
415 }
416