]> git.plutz.net Git - serve0/blob - style.css
animated thumbnail show
[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: contain;
66   transform: translate(-00%, 0);
67 }
68 .itemlist .list img:hover {
69   animation-name: thumbscroll;
70   animation-duration: 10s;
71   animation-iteration-count: infinite;
72 }
73 @keyframes thumbscroll {
74    0%   { transform: translate(-00%, 0); }
75    9.9% { transform: translate(-00%, 0); }
76   10%   { transform: translate(-10%, 0); }
77   19.9% { transform: translate(-10%, 0); }
78   20%   { transform: translate(-20%, 0); }
79   29.9% { transform: translate(-20%, 0); }
80   30%   { transform: translate(-30%, 0); }
81   39.9% { transform: translate(-30%, 0); }
82   40%   { transform: translate(-40%, 0); }
83   49.9% { transform: translate(-40%, 0); }
84   50%   { transform: translate(-50%, 0); }
85   59.9% { transform: translate(-50%, 0); }
86   60%   { transform: translate(-60%, 0); }
87   69.9% { transform: translate(-60%, 0); }
88   70%   { transform: translate(-70%, 0); }
89   79.9% { transform: translate(-70%, 0); }
90   80%   { transform: translate(-80%, 0); }
91   89.9% { transform: translate(-80%, 0); }
92   90%   { transform: translate(-90%, 0); }
93  100%   { transform: translate(-90%, 0); }
94 }
95
96 .itemlist .list label {
97   display: block;
98   font-weight: bolder;
99   word-break: break-word;
100 }
101 .itemlist .list .time,
102 .itemlist .list .dim {
103   position: absolute; top: 9.75em;
104   background-color: rgba(0,0,0,.5);
105   padding: .125em .25em;
106 }
107 .itemlist .list .time { right: 0; }
108 .itemlist .list .dim { left: 0; }
109 .itemlist .list input[type=checkbox] { display: none; }
110 .itemlist .list .tag,
111 .itemlist .list input[type=checkbox] + label {
112   display: inline-block;
113   background-color: #333;
114   margin-top: .125em;
115   margin-left: 0;
116   padding: 0 .25em;
117   border-radius: 1pt;
118 }
119 .itemlist .list input[type=checkbox]:checked + label {
120   background-color: #383;
121 }
122
123
124 /* ====== PAGINATION LIST ====== */
125
126 .pagination {
127   display: block;
128   font-size: 1.25em;
129   max-width: 98%;
130   margin: 0 auto;
131   padding: .25em 0;
132   background-color: #333;
133   border-radius: 2pt;
134 }
135 .pagination a {
136   display: inline-block;
137   padding: 0 .5em;
138   margin: 0 .5em;
139   border-radius: 2pt;
140 }
141 .pagination a.current {
142   background-color: #BBB;
143 }
144
145 /* ====== BOOKMARK PANEL ====== */
146
147 #bookmarks:target,
148 #prefs:target {
149   display: block; position: fixed;
150   top: 50%; left: 50%;
151   transform: translate( -50%, -50% );
152   width: 40em; max-width: 90%;
153   height: 30em; max-height: 90vh;
154   background-color: #333;
155   padding: 0 .5em;
156   z-index: 1;
157   box-shadow: .25em .25em .5em #000;
158   overflow-y: auto;
159 }
160
161 #bookmarks label {
162   display: block;
163   font-weight: bold;
164   font-size: 1.125em;
165   margin-left: 0;
166   margin-top: .75em;
167   word-break: break-word;
168 }
169
170 /* ====== ADVSEARCH / FILTER PANEL ====== */
171
172 #advsearch:target {
173   display: block; position: fixed;
174   top: 0; width: 100%;
175   height: 30em; max-height: 90vh;
176   background-color: #333;
177   padding: 0 .5em;
178   z-index: 1;
179   box-shadow: .25em .25em .5em #000;
180   overflow-y: auto;
181 }
182
183 -#advsearch { text-align: center; }
184 -#advsearch > * { text-align: left; }
185
186 #advsearch .help {
187   width: 95%;
188   margin: 1em auto; padding: 0 .5em;
189   background-color: #444;
190   white-space: pre-line;
191 }
192
193 #advsearch input.and + label {
194   display: inline-block;
195   vertical-align: top;
196   font-weight: bold;
197 }
198 #advsearch fieldset.select {
199   display: inline-block;
200   width: 99%;
201   margin: 0 .5%; margin-bottom: .75em; padding: 0 .375em;
202   box-shadow: .125em .125em .25em #000;
203 }
204
205 #advsearch fieldset.select > label.head {
206   display: none;
207   width: 40%;
208   text-align: right;
209 }
210 #advsearch fieldset.select > input.cat { display: none; }
211 #advsearch fieldset.select > input.cat + label + .catselect { display: none; }
212 #advsearch fieldset.select > input.cat + label {
213   display: block;
214   width: 40%;
215   margin: 0; padding: 0 .5em;
216   text-align: right;
217 }
218 #advsearch fieldset.select > input.cat:checked + label { background-color: #444; }
219 #advsearch fieldset.select > input.cat:checked + label + .catselect {
220   display: block; position: absolute;
221   top: 1.5em; bottom: 0; right: 0;
222   width: 60%;
223   padding: 0 .25em;
224   background-color: #444;
225   overflow-y: auto;
226 }
227 #advsearch fieldset.select > input.cat + label + .catselect > * {
228   display: block;
229   white-space: pre;
230 }
231
232 #advsearch input.and { display: none; }
233 #advsearch input.and + label { display: none; }
234 #advsearch input.and + label + fieldset { display: none; }
235 #advsearch input.and:checked + label + fieldset,
236 #advsearch input.and:first-of-type + label + fieldset { display: inline-block; }
237 #advsearch input.and:checked + label + fieldset + input + label,
238 #advsearch input.and:first-of-type + label + fieldset + input + label { display: inline-block; }
239 #advsearch input.and:checked + label + fieldset + input:checked + label { display: none; }
240 #advsearch input.and:first-of-type + label + fieldset + input:checked + label { display: none; }
241
242
243 /* ====== MULTITAG DIALOG ====== */
244
245 #multitag:target {
246   display: block; position: fixed;
247   bottom: 0; left: 0; width: 100%;
248   height: 30em; max-height: 90vh;
249   background-color: #333;
250   padding: 0 .5em;
251   z-index: 1;
252   box-shadow: .25em .25em .5em #000;
253   overflow-y: auto;
254 }
255
256 -#multitag { text-align: center; }
257 -#multitag > * { text-align: left; }
258
259 #multitag fieldset {
260   display: inline-block;
261   width: 99%;
262   margin: 0 .5%; margin-top: 1em;
263 }
264
265 #multitag fieldset select {
266   width: 100%; height: 10em;
267 }
268 #multitag fieldset .tagselect {
269   height: 10em;
270   background-color: #444;
271   overflow-y: auto;
272 }
273 #multitag fieldset .tagselect > label {
274   display: block;
275   white-space: pre;
276 }
277
278
279 /* ====== VIEW PAGE ====== */
280
281 body#view video {
282   display: block;
283   max-height: 80vh;
284   margin: 0 auto;
285 }
286
287 body#view .tag {
288   display: inline-block;
289   background-color: #333;
290   margin-top: .125em;
291   margin-left: 0;
292   padding: 0 .25em;
293   border-radius: 1pt;
294 }
295
296
297 /* ====== SCALE BLOCK ELEMENTS ====== */
298
299 @media(min-width:  20em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 49%; } }
300 @media(min-width:  40em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 32%; } }
301 @media(min-width:  60em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 24%; } }
302 @media(min-width:  80em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 19%; } }
303 @media(min-width: 100em) { .itemlist .list, #advsearch fieldset.select, #multitag fieldset { max-width: 19em; } }