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