]> git.plutz.net Git - serve0/blob - static/common.css
submit page locators via post instead of relying on referrer
[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 /* == Bottom Panels == */
129 .panel#preferences,
130 .panel#tagger,
131 .panel#foot {
132   position: fixed;
133   bottom: 0px;
134   border-style: solid none none none;
135 }
136
137
138 /* == Switchable Panels == */
139
140 form.panel,
141 div.panel {
142   z-index: 1;
143   overflow: hidden;
144   min-height: 0; max-height: 0;
145   padding-top: 0; padding-bottom: 0;
146 }
147
148 .panel#search,
149 .panel#foot {
150   max-height: 100%;
151   z-index: 0;
152   padding: .25em 6em 0 .5em;
153   overflow: visible;
154 }
155
156 body.playctl .panel#search,
157 body.playctl .panel#foot { padding-right: .25em; }
158
159 .panel:target {
160   max-height: 100%;
161   overflow-y: scroll;
162 }
163 .panel#advfilter:target{ padding-bottom: 1em; }
164
165 /* == Panel Switches == */
166
167 .panel#playctl a.panel,
168 .panel#advfilter a.panel,
169 .panel#preferences a.panel,
170 .panel#tagger a.panel {
171   display: block;
172   border-style: none none solid none;
173   border-width: 1px;
174 }
175 .panel#preferences a.panel,
176 .panel#tagger a.panel {
177   border-style: solid none none none;
178   margin-top: .5em;
179 }
180
181
182 /* == Panel Elements == */
183
184 .panel#advfilter .quicklinks,
185 .panel#advfilter .filter,
186 .panel#tagger .newtag,
187 .panel#tagger input[type=submit],
188 .panel#preferences > * {
189   display: inline-block;
190   vertical-align: top;
191   margin-top: 1em;
192 }
193
194
195 /* == Advanced Filters == */
196
197 /* == Filter Boxes == */
198 #advfilter .filter {
199   border: solid 1px #FFF;
200   border-radius: .25em;
201   padding: .25em .5em;
202 }
203 #advfilter .filter .tabcontainer {
204   position: relative;
205   width: 16em;
206   font-weight:normal;
207 }
208 #advfilter .filter .tabcontainer input + .category.tabhandle {
209   display: block;
210   width: 50%;
211 }
212 #advfilter .filter .tabcontainer input:checked + .category.tabhandle {
213   background: #FFF;
214   color: #000;
215 }
216 #advfilter .filter .tabcontainer .category.tabcontent {
217   position: absolute;
218   top: 0; right: 0;
219   width: 50%;
220   height: 100%;
221   min-height: 4em;
222   border: 2px #FFF solid;
223   border-radius: 0 .25em .25em 0;
224 }
225
226 #advfilter > label.tabhandle {
227   text-align: right;
228   width: 4em;
229   margin-left: 4em;
230 }
231
232 /* == Dynamic Appearance of Boxes == */
233 .panel#advfilter > .tabhandle + label { display: none; }
234 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle + label { display: inline-block; }
235 .panel#advfilter > .tabhandle:checked + label + .tabcontent + .tabhandle:checked + label { display: none; }
236 .panel#advfilter > .tabhandle + label + .tabcontent {
237   display: inline-block;
238   overflow: hidden;
239   max-width: 0;
240   max-height: 0;
241   padding: 0;
242   border: none;
243 }
244 .panel#advfilter > .tabhandle:checked + label + .tabcontent {
245   max-width: 100%;
246   max-height: 100%;
247   padding: .25em .5em;
248   border: solid 1px #FFF;
249 }
250
251 #advfilter .filter.final {
252   width: 16em;
253   margin-left: 1em;
254 }
255
256 #advfilter .quicklinks {width: 100%;}
257
258 p.quicklinks { padding-bottom: 3em; }
259 p.quicklinks :first-child {width: 100%;}
260 p.quicklinks input { display: block; }
261 p.quicklinks a {
262   display: block;
263   word-wrap: break-word;
264   margin-left: 10%;
265   margin-bottom: .75em;
266   margin-top: -1.5em;
267 }
268 p.quicklinks input:checked,
269 p.quicklinks input:checked + a { display: none;}
270
271 /* == Thumblist == */
272
273 #thumblist {
274   width: 100%;
275   padding: .5em 0 3em 0;
276   text-align: center;
277 }
278
279 #thumblist .thumb {
280   display: inline-block;
281   text-align: left;
282   width: 90%;
283   padding: 0 .5em;
284   margin: .5%;
285   margin-bottom: .75em;
286   vertical-align: top;
287   word-wrap: break-word;
288 }
289 @media (min-width: 460px){#thumblist .thumb{width: 48%;}}
290 @media (min-width: 620px){#thumblist .thumb{width: 32%;}}
291 @media (min-width: 1004px){#thumblist .thumb{width: 250px; margin: 2px;}}
292
293 #thumblist .thumb img {
294   width: 100%;
295   margin: 0; padding: 0;
296 }
297 #thumblist .thumb h2 {
298   font-size: 1em;
299   font-weight: normal;
300   margin: 0;
301 }
302 #thumblist .thumb button {
303   display: block;
304   width: 100%;
305   margin: 0; padding: 0;
306   border: none;
307   line-height: 0;
308   background-color: transparent;
309 }
310 #thumblist input {
311   margin: .75em .5em;
312 }
313
314 /* == Filelist == */
315
316 #thumblist .file {
317   color: #000;
318   display: inline-block;
319   text-align: left;
320   width: 90%;
321   padding: .5em .5em;
322   margin: .5%;
323   margin-bottom: .75em;
324   vertical-align: top;
325   word-wrap: break-word;
326 }
327 @media (min-width: 460px){#thumblist .file{width: 48%;}}
328 @media (min-width: 620px){#thumblist .file{width: 32%;}}
329 @media (min-width: 1004px){#thumblist .file{width: 250px; margin: 2px;}}
330
331 #thumblist .file.directory { background-color: #BBD; }
332 #thumblist .file.plain { background-color: #111; color: #777; }
333 #thumblist .file.video { background-color: #DBB; }
334
335 .panel#tagger .newtag select,
336 .panel#tagger .newtag .label{
337   display: block;
338   width: 10em;
339 }
340
341 .panel#preferences > fieldset {
342   border: solid 1px;
343   border-radius: .25em;
344 }
345 .panel#preferences > input { display: block; }
346
347 #videoview h1, 
348 #playctl h1 { font-size: 1.25em;}
349 #videoview h1, #videoview > a,
350 #playctl h1, #playctl > a {
351   display: inline-block;
352   margin-right: 1em;
353   padding: 0; margin: .5em 0;
354 }
355 #videoview video {
356   display: block;
357   margin: 0;
358   width: 100%;
359 }
360
361 #playctl form { text-align: center; }
362 #playctl form button {
363   display: inline-block;
364   height: 100%;
365   min-height: 4em;
366   margin: 0 -.75ex .5em 0;
367   background-color: #EEE;
368   border: 1px solid #333;
369   vertical-align: bottom;
370   padding-top: 1em;
371 }
372 #playctl form button[name="seek"],
373 #playctl form button[name="ctl"] { width: 40%;}
374 #playctl form button[name="amp"] { width: 40%; margin-top: 2em;}
375 #playctl form button[name="vol"] { width: 5%; min-height: 1em;}
376 #playctl form button[name="vol"].selected { background-color: #FA6;}
377 #playctl form button[name="vol"][value="100"],
378 #playctl form button[name="vol"][value="0"] { width: 6%;}
379
380 span.progress {
381   display: block;
382   position: fixed;
383   bottom: 2.5em;
384   width: 100%; left:0; right: 0;
385   color: white;
386   background-color: black;
387   border-top: 1px solid white;
388   padding: 0;
389   height: 1em;
390 }
391 span.progress > * {
392   display: block;
393   text-align: center;
394   background-color: #333;
395 }
396
397 @media (min-width: 460px){
398   #playctl form button {
399     max-width: 4em;
400     min-height: 2em;
401     padding-top: 0em;
402     margin-bottom: 2em;
403   }
404   #playctl form button[name="seek"],
405   #playctl form button[name="ctl"] { width: 16%;}
406   #playctl form button[name="amp"] { width: 15%;}
407   #playctl form button[name="vol"] { width: 3%;}
408   #playctl form button[name="amp"] + br {display: none;}
409 }
410