]> git.plutz.net Git - serve0/blob - style.css
yet improved display of different aspect ratios, prefer to cut away sides rather...
[serve0] / style.css
1 body {
2   color: #EEE;
3   background-color: #000;
4   padding-bottom: 2.5em;
5 }
6
7 /* ====== TOP CONTROL BAR ====== */
8
9 #navigation {
10   text-align: center;
11   margin-bottom: 1em; padding: 0 2em;
12   background-color: #333;
13   box-shadow: .125em .125em .25em #000;
14 }
15 #navigation > a {
16   position: absolute; bottom: .25em;
17   padding: 0 .125em;
18   font-size: 1.5em;
19   text-decoration: none;
20 }
21 #navigation > a[href="#bookmarks"] { left: 0; }
22 #navigation > a[href="#prefs"] { right: 0; }
23
24 #bookmarks, #advsearch, #prefs, #multitag {
25   -display: none;
26   height: 0;
27   overflow: hidden;
28 }
29
30 #editing {
31   position: fixed;
32   bottom: 0; width: 100%;
33   padding: 0 .5em;
34   background-color: #333;
35 }
36
37 :target a[href="#"] {
38   position: absolute;
39   top: 0; right: 0;
40   font-size: 1.5em;
41   font-weight: bold;
42   text-decoration: none;
43   padding: 0 .25em;
44   z-index: 1;
45 }
46
47 /* ====== MAIN LIST VIEW ====== */
48
49 .itemlist { text-align: center; }
50 .itemlist > * { text-align: left; }
51 .itemlist .list {
52   display: inline-block;
53   vertical-align: top;
54   width: 99%;
55   -padding: 0 .25em;
56   margin: 0 .5%;
57   margin-bottom: 1em;
58   overflow: hidden;
59 }
60
61 .itemlist .list img {
62   -width: 1000%; height: 11em;
63   max-width: unset;
64   background-color: #111;
65   object-fit: cover;
66   transform: translate(-05%, 0);
67   margin-left: 50%;
68 }
69 .itemlist .list img:hover {
70   animation-name: thumbscroll;
71   animation-duration: 10s;
72   animation-iteration-count: infinite;
73 }
74 @keyframes thumbscroll {
75    0%    { transform: translate(-05%, 0); }
76    9.99% { transform: translate(-05%, 0); }
77   10%    { transform: translate(-15%, 0); }
78   19.99% { transform: translate(-15%, 0); }
79   20%    { transform: translate(-25%, 0); }
80   29.99% { transform: translate(-25%, 0); }
81   30%    { transform: translate(-35%, 0); }
82   39.99% { transform: translate(-35%, 0); }
83   40%    { transform: translate(-45%, 0); }
84   49.99% { transform: translate(-45%, 0); }
85   50%    { transform: translate(-55%, 0); }
86   59.99% { transform: translate(-55%, 0); }
87   60%    { transform: translate(-65%, 0); }
88   69.99% { transform: translate(-65%, 0); }
89   70%    { transform: translate(-75%, 0); }
90   79.99% { transform: translate(-75%, 0); }
91   80%    { transform: translate(-85%, 0); }
92   89.99% { transform: translate(-85%, 0); }
93   90%    { transform: translate(-95%, 0); }
94  100%    { transform: translate(-95%, 0); }
95 }
96
97 .itemlist .list label {
98   display: block;
99   font-weight: bolder;
100   word-break: break-word;
101 }
102 .itemlist .list .time,
103 .itemlist .list .dim {
104   position: absolute; top: 9.75em;
105   background-color: rgba(0,0,0,.5);
106   padding: .125em .25em;
107 }
108 .itemlist .list .time { right: 0; }
109 .itemlist .list .dim { left: 0; }
110 .itemlist .list input[type=checkbox] { display: none; }
111 .itemlist .list .tag,
112 .itemlist .list input[type=checkbox] + label {
113   display: inline-block;
114   background-color: #333;
115   margin-top: .125em;
116   margin-left: 0;
117   padding: 0 .25em;
118   border-radius: 1pt;
119 }
120 .itemlist .list input[type=checkbox]:checked + label {
121   background-color: #383;
122 }
123
124
125 /* ====== PAGINATION LIST ====== */
126
127 .pagination {
128   display: block;
129   font-size: 1.25em;
130   max-width: 98%;
131   margin: 0 auto;
132   padding: .25em 0;
133   background-color: #333;
134   border-radius: 2pt;
135 }
136 .pagination a {
137   display: inline-block;
138   padding: 0 .5em;
139   margin: 0 .5em;
140   border-radius: 2pt;
141 }
142 .pagination a.current {
143   background-color: #BBB;
144 }
145
146 /* ====== BOOKMARK PANEL ====== */
147
148 #bookmarks:target,
149 #prefs:target {
150   display: block; position: fixed;
151   top: 50%; left: 50%;
152   transform: translate( -50%, -50% );
153   width: 40em; max-width: 90%;
154   height: 30em; max-height: 90vh;
155   background-color: #333;
156   padding: 0 .5em;
157   z-index: 1;
158   box-shadow: .25em .25em .5em #000;
159   overflow-y: auto;
160 }
161
162 #bookmarks label {
163   display: block;
164   font-weight: bold;
165   font-size: 1.125em;
166   margin-left: 0;
167   margin-top: .75em;
168   word-break: break-word;
169 }
170
171 /* ====== ADVSEARCH / FILTER PANEL ====== */
172
173 #advsearch:target {
174   display: block; position: fixed;
175   top: 0; width: 100%;
176   height: 30em; max-height: 90vh;
177   background-color: #333;
178   padding: 0 .5em;
179   z-index: 1;
180   box-shadow: .25em .25em .5em #000;
181   overflow-y: auto;
182 }
183
184 -#advsearch { text-align: center; }
185 -#advsearch > * { text-align: left; }
186
187 #advsearch .help {
188   width: 95%;
189   margin: 1em auto; padding: 0 .5em;
190   background-color: #444;
191   white-space: pre-line;
192 }
193
194 #advsearch input.and + label {
195   display: inline-block;
196   vertical-align: top;
197   font-weight: bold;
198 }
199 #advsearch fieldset.select {
200   display: inline-block;
201   width: 99%;
202   margin: 0 .5%; margin-bottom: .75em; padding: 0 .375em;
203   box-shadow: .125em .125em .25em #000;
204 }
205
206 #advsearch fieldset.select > label.head {
207   display: none;
208   width: 40%;
209   text-align: right;
210 }
211 #advsearch fieldset.select > input.cat { display: none; }
212 #advsearch fieldset.select > input.cat + label + .catselect { display: none; }
213 #advsearch fieldset.select > input.cat + label {
214   display: block;
215   width: 40%;
216   margin: 0; padding: 0 .5em;
217   text-align: right;
218 }
219 #advsearch fieldset.select > input.cat:checked + label { background-color: #444; }
220 #advsearch fieldset.select > input.cat:checked + label + .catselect {
221   display: block; position: absolute;
222   top: 1.5em; bottom: 0; right: 0;
223   width: 60%;
224   padding: 0 .25em;
225   background-color: #444;
226   overflow-y: auto;
227 }
228 #advsearch fieldset.select > input.cat + label + .catselect > * {
229   display: block;
230   white-space: pre;
231 }
232
233 #advsearch input.and { display: none; }
234 #advsearch input.and + label { display: none; }
235 #advsearch input.and + label + fieldset { display: none; }
236 #advsearch input.and:checked + label + fieldset,
237 #advsearch input.and:first-of-type + label + fieldset { display: inline-block; }
238 #advsearch input.and:checked + label + fieldset + input + label,
239 #advsearch input.and:first-of-type + label + fieldset + input + label { display: inline-block; }
240 #advsearch input.and:checked + label + fieldset + input:checked + label { display: none; }
241 #advsearch input.and:first-of-type + label + fieldset + input:checked + label { display: none; }
242
243
244 /* ====== MULTITAG DIALOG ====== */
245
246 #multitag:target {
247   display: block; position: fixed;
248   bottom: 0; left: 0; width: 100%;
249   height: 30em; max-height: 90vh;
250   background-color: #333;
251   padding: 0 .5em;
252   z-index: 1;
253   box-shadow: .25em .25em .5em #000;
254   overflow-y: auto;
255 }
256
257 -#multitag { text-align: center; }
258 -#multitag > * { text-align: left; }
259
260 #multitag fieldset {
261   display: inline-block;
262   width: 99%;
263   margin: 0 .5%; margin-top: 1em;
264 }
265
266 #multitag fieldset select {
267   width: 100%; height: 10em;
268 }
269 #multitag fieldset .tagselect {
270   height: 10em;
271   background-color: #444;
272   overflow-y: auto;
273 }
274 #multitag fieldset .tagselect > label {
275   display: block;
276   white-space: pre;
277 }
278
279
280 /* ====== VIEW PAGE ====== */
281
282 body#view video {
283   display: block;
284   max-height: 80vh;
285   margin: 0 auto;
286 }
287
288 body#view .tag {
289   display: inline-block;
290   background-color: #333;
291   margin-top: .125em;
292   margin-left: 0;
293   padding: 0 .25em;
294   border-radius: 1pt;
295 }
296
297
298 /* ====== SCALE BLOCK ELEMENTS ====== */
299
300 @media(min-width:  20em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 49%; } }
301 @media(min-width:  40em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 32%; } }
302 @media(min-width:  60em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 24%; } }
303 @media(min-width:  80em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 19%; } }
304 @media(min-width: 100em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 19em; } }