1 /* Copyright 2014 - 2016 Paul Hänsch
3 This file is part of Serve0
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.
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.
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/>.
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;
31 background-color: #000;
34 body.playctl { padding-top: 4.25em; }
36 legend, label, .label { font-weight: bold; }
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; }
51 background-color: rgba(208,208,255,.625 );
53 border: #000 1px solid;
57 background-color: #DBB;
62 display: inline-block;
66 background-color: #333;
71 text-decoration: none;
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; }
79 .pagination_nav:hover {
83 padding: .5em 3ex .5em 0;
86 #search .pagination_nav:hover {
89 border-bottom: 1px solid #FFF;
91 #foot .pagination_nav:hover {
93 padding-bottom: 2.5em;
94 border-top: 1px solid #FFF;
96 .pagination_nav:hover a { display: inline; }
101 position: absolute; display: block;
102 top: -1px; height: 2.25em; width: 100%;
103 background-color: #222;
104 margin: 0; padding: 0;
106 border-bottom: 1px solid #FFF;
109 body.playctl:before {
112 border-top: 1px solid #FFF;
115 input[name=topmenu] {display: none;}
116 input[name=topmenu] + label {
119 display: inline-block;
120 text-decoration: none;
124 border: 1px none #FFF;
127 @media (min-width: 620px){input[name=topmenu] + label { padding: .5em 1.5em; }}
129 input[name=topmenu]:checked + label {
130 background-color: #333;
131 margin-left: -1px; margin-top: -1px;
132 border-style: solid solid none solid;
134 input[name=topmenu]:checked + label + * + input + label { margin-left: -1px; }
136 .panel#search select { margin-right: .5em; }
137 .panel#search:after {
138 display: block; content: '';
142 .panel#search, .panel#foot,
143 .panel.top, .panel.bottom {
148 background-color: #333;
153 .panel#search, .panel.top {
154 border-style: none none solid none;
157 body.playctl .panel#search,
158 body.playctl .panel.top { top: 4em; }
162 .panel.top.switchable { position: absolute; min-height: 2.5em;}
163 .panel#foot, .panel.bottom {
166 border-style: solid none none none;
173 margin: 0; padding: 0;
177 input[name=topmenu]:checked + label + .panel.switchable,
178 .panel.switchable:target {
187 .panel#search > a, .panel#foot > a,
188 .panel.top > a, .panel.bottom > a{
189 display: inline-block;
191 text-decoration: none;
192 margin: .25em .5em 0 0;
195 .panel.switchable.top a:first-of-type {
196 display: block; display: none;
198 border-bottom: 1px solid #FFF;
200 .panel.switchable.bottom a:last-of-type {
203 border-top: 1px solid #FFF;
207 /* == Panel Elements == */
209 .panel.switchable > fieldset,
210 .panel.switchable > input[type=submit] {
212 display: inline-block;
217 #tagger > fieldset { max-width: 48%;}
218 #tagger > fieldset.additional,
219 #tagger > fieldset.description {
223 /* == Advanced Filters == */
225 /* == Filter Boxes == */
227 border: solid 1px #FFF;
228 border-radius: .25em;
231 #advfilter .filter .help {
233 height: 0; overflow: hidden;
235 #advfilter .filter .tabcontainer {
240 #advfilter .filter .tabcontainer input + .category.tabhandle {
244 #advfilter .filter .tabcontainer input:checked + .category.tabhandle {
248 #advfilter .filter .tabcontainer .category.tabcontent {
254 border: 2px #FFF solid;
255 border-radius: 0 .25em .25em 0;
258 #advfilter > label.tabhandle {
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;
276 .panel#advfilter > .tabhandle:checked + label + .tabcontent {
280 border: solid 1px #FFF;
283 #advfilter .filter.final {
289 /* == Recent filters == */
291 p.quicklinks { padding-bottom: 3em; }
292 p.quicklinks :first-child {width: 100%;}
293 p.quicklinks input { display: block; }
296 word-wrap: break-word;
298 margin-bottom: .75em;
301 p.quicklinks input:checked,
302 p.quicklinks input:checked + a { display: none;}
304 /* == Thumblist == */
308 padding: .5em 0 3em 0;
314 display: inline-block;
319 margin-bottom: .75em;
321 word-wrap: break-word;
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;}}
327 #thumblist .thumb img {
329 margin: 0; padding: 0;
331 #thumblist .thumb h2 {
338 border-bottom: 1px solid #333;
339 background: rgba(0,0,0,.5);
341 #thumblist .thumb .property {
342 position: absolute; left: .25em;
345 #thumblist .thumb .property:nth-of-type(2) { left: 5em;}
346 #thumblist .thumb button {
349 margin: 0; padding: 0;
352 background-color: transparent;
362 display: inline-block;
367 margin-bottom: .75em;
369 word-wrap: break-word;
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;}}
375 #thumblist .file.directory { background-color: #BBD; }
376 #thumblist .file.plain { background-color: #111; color: #777; }
377 #thumblist .file.video { background-color: #DBB; }
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{
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;
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%; }
399 .panel#preferences > fieldset {
401 border-radius: .25em;
403 .panel#preferences > input { display: block; }
405 /* == Client side player == */
408 #playctl h1 { font-size: 1.25em;}
409 #videoview h1, #videoview > a,
410 #playctl h1, #playctl > a {
411 display: inline-block;
413 padding: 0; margin: .5em 0;
421 /* == Server side player == */
423 form.playctl fieldset {
430 form.playctl fieldset.playback { height: 12em; }
431 form.playctl fieldset.playback button {
435 background-color: #EEE;
436 border: 1px solid #333;
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%;}
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;
453 border: 1px solid black; border-right: none;
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%;}
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;}
469 width: 100%; left:0; right: 0;
471 background-color: black;
472 border-top: 1px solid white;
477 span.progress > span {
481 background-color: #333;