Add CSS definition of offline marker.
[Sone.git] / src / main / resources / static / css / sone.css
1 /* Sone Main CSS File */
2
3 /* first, override some fproxy rules. */
4 #sone div, #sone span, #sone .post .time,#sone .post .delete,#sone .post .show-reply-form, input[type=text], textarea {
5         font: inherit;
6 }
7
8 input[type=text], textarea {
9         font-size: 90%;
10         margin: 0.5ex;
11         margin-left: 0;
12         border: solid 1px #ccc;
13         padding: 0.5ex;
14         height: 1.5em;
15         width: 50em;
16         outline: none;
17 }
18
19 input[type=text].short {
20         width: 25em;
21 }
22
23 textarea {
24         height: 4em;
25 }
26
27 #sone button {
28         background-color: #ddd;
29         border-width: 1px;
30         color: #444;
31         padding: 0.5ex 1.5ex;
32 }
33
34 #sone form {
35         margin: 0px;
36 }
37
38 #sone select {
39         color: #444;
40         padding: 0.5ex 1.5ex;
41 }
42
43 /* now for the real stuff. */
44
45 #sone {
46         width: 55em;
47         margin: auto;
48 }
49
50 #sone .hidden {
51         display: none;
52 }
53
54 #sone #formPassword {
55         display: none;
56 }
57
58 #sone a, #sone a:link, #sone a:visited {
59         color: rgb(28, 131, 191);
60         font-size: inherit;
61         text-decoration: none;
62 }
63
64 #sone a:active, #sone a:hover {
65         color: rgb(255, 172, 0);
66 }
67
68 #sone a.link {
69         cursor: pointer;
70 }
71
72 #sone a.internet {
73         color: rgb(255, 0, 0);
74 }
75
76 #sone a.internet:before {
77         content: '⚠ ';
78 }
79
80 #sone a.freenet:before {
81         content: '» ';
82 }
83
84 #sone a.freenet-trusted {
85         color: rgb(0, 128, 0);
86 }
87
88 #sone a.freenet-trusted:before {
89         content: '★ ';
90 }
91
92 #sone a.in-page-link:before {
93         content: '↓ ';
94 }
95
96 #sone a img {
97         border: none;
98 }
99
100 #sone #offline-marker {
101         display: none;
102         position: fixed;
103         top: 2em;
104         right: 2em;
105         width: 128px;
106         height: 128px;
107         background-image: url("../images/sone-offline.png");
108 }
109
110 #sone #notification-area {
111         margin-top: 1em;
112 }
113
114 #sone #notification-area .notification {
115         padding: 1ex;
116         border: solid 1px #ccc;
117         background-color: #ffffa0;
118         margin-bottom: 1ex;
119         min-height: 3.5ex;
120 }
121
122 #sone #notification-area .notification button {
123         margin-left: 1ex;
124 }
125
126 #sone #notification-area .notification .dismiss {
127         float: right;
128 }
129
130 #sone #notification-area .notification .post-count {
131         margin-left: 1ex;
132 }
133
134 #sone #notification-area .notification .mark-as-read {
135         float: right;
136 }
137
138 #sone #notification-area .notification .hidden {
139         display: none;
140 }
141
142 #sone #plugin-warning {
143         border: solid 0.5em red;
144         padding: 0.5em;
145         margin-bottom: 1em;
146 }
147
148 #sone #profile {
149         height: 80px;
150         margin-top: 1em;
151         margin-bottom: 1ex;
152 }
153
154 #sone .profile-link {
155         font-weight: bold;
156         color: rgb(28, 131, 191);
157 }
158
159 #sone #profile.online .picture {
160         position: absolute;
161 }
162
163 #sone #profile.offline .picture {
164         position: absolute;
165 }
166
167 #sone #profile.offline .edit-profile-link, #sone #profile.offline .profile-link {
168         display: none;
169 }
170
171 #sone #profile .edit-profile-link {
172         font-size: 85%;
173 }
174
175 #sone #home-sone {
176         margin-top: 1ex;
177         margin-left: 80px;
178         padding-left: 1ex;
179 }
180
181 #sone #update-status {
182         margin-bottom: 1em;
183 }
184
185 #sone #update-status label, #sone #post-message label {
186         display: none;
187 }
188
189 #sone #update-status input[type=text] {
190         width: 45em;
191 }
192
193 #sone #update-status textarea {
194         width: 45em;
195 }
196
197 #sone #update-status button {
198         float: right;
199 }
200
201 #sone #update-status .select-sender, #sone .create-reply .select-sender, #sone #post-message .select-sender {
202         display: none;
203 }
204
205 #sone #update-status .select-sender button, #sone #post-message .select-sender button {
206         display: inline;
207         float: left;
208 }
209
210 #sone .nice-name {
211         font-weight: bold;
212 }
213
214 #sone #main {
215         padding: 1em;
216         padding-top: 0px;
217 }
218
219 #sone #edit-profile #birth-day, #sone #edit-profile #birth-month, #sone #edit-profile #birth-year {
220         display: inline;
221         width: 15em;
222 }
223
224 #sone #edit-profile #birth-day input, #sone #edit-profile #birth-month input, #sone #edit-profile #birth-year input {
225         width: 4em;
226         text-align: right;
227 }
228
229 #sone .post {
230         padding: 1ex 0px;
231         border-bottom: solid 1px #ccc;
232         clear: both;
233 }
234
235 #sone .post.new {
236         background-color: #ffffa0;
237         padding-left: 1ex;
238 }
239
240 #sone .post.last {
241         padding: 1ex 0px;
242         border-bottom: none;
243 }
244
245 #sone .post > .avatar {
246         position: absolute;
247 }
248
249 #sone .post > .inner-part {
250         margin-left: 48px;
251         padding-left: 0.5em;
252         min-height: 48px;
253 }
254
255 #sone .post .author, #sone .post .recipient {
256         display: inline;
257         font-weight: bold;
258 }
259
260 #sone .post .text, #sone .post .raw-text {
261         display: inline;
262         white-space: pre-wrap;
263 }
264
265 #sone .post .text.hidden, #sone .post .raw-text.hidden {
266         display: none;
267 }
268
269 #sone .post .status-line {
270         margin-top: 0.5ex;
271         font-size: 85%;
272 }
273
274 #sone .separator {
275         font: inherit;
276         color: rgb(28, 131, 191);
277 }
278
279 #sone .show-source, #sone .show-reply-source {
280         display: inline;
281 }
282
283 #sone .permalink {
284         display: inline;
285 }
286
287 #sone .post .bookmarks {
288         display: inline;
289         color: rgb(28, 131, 191);
290 }
291
292 #sone .post .bookmark, #sone .post .unbookmark {
293         display: inline;
294         font: inherit;
295         margin: 0px;
296 }
297
298 #sone .post .time {
299         display: inline;
300         color: #666;
301 }
302
303 #sone .post .delete, #sone .post .likes, #sone .post .like, #sone .post .unlike, #sone .post .trust, #sone .post .distrust, #sone .post .untrust {
304         display: inline;
305         font: inherit;
306         margin: 0px;
307 }
308
309 #sone .post .likes.hidden {
310         display: none;
311 }
312
313 #sone .post .like.hidden, #sone .post .unlike.hidden, #sone .post .trust.hidden, #sone .post .distrust.hidden, #sone .post .untrust.hidden, #sone .post .bookmark.hidden, #sone .post .unbookmark.hidden {
314         display: none;
315 }
316
317 #sone .post .delete button, #sone .post .like button, #sone .post .unlike button, #sone .post .trust button, #sone .post .distrust button, #sone .post .untrust button, #sone .post .bookmark button, #sone .post .unbookmark button {
318         border: 0px;
319         background: none;
320         padding: 0px;
321         color: rgb(28, 131, 191);
322         font: inherit;
323         margin: 0px;
324 }
325
326 #sone .post .delete button.confirm {
327         color: red;
328         font-weight: bold;
329 }
330
331 #sone .post .trust button {
332         color: rgb(0, 128, 0);
333 }
334
335 #sone .post .distrust button {
336         color: rgb(255, 0, 0);
337 }
338
339 #sone .post .untrust button {
340         color: rgb(64, 64, 64);
341 }
342
343 #sone .post .delete button:hover, #sone .post .like button:hover, #sone .post .unlike button:hover, #sone .post .trust button:hover, #sone .post .distrust button:hover, #sone .post .untrust button:hover, #sone .post .bookmark button:hover, #sone .post .unbookmark button:hover {
344         border: 0px;
345         background: none;
346         padding: 0px;
347         color: rgb(255, 172, 0);
348         cursor: pointer;
349 }
350
351 #sone .post .likes span {
352         font: inherit;
353         color: green;
354 }
355
356 #sone .post .replies {
357         clear: both;
358         padding-top: 0.2ex;
359 }
360
361 #sone .post .replies .click-to-show {
362         background-color: #f0f0ff;
363         font-size: 85%;
364         padding: 0.5em;
365         cursor: pointer;
366 }
367
368 #sone .post .replies .click-to-show.new {
369         background-color: #ffffa0;
370 }
371
372 #sone .post .reply > .avatar {
373         position: absolute;
374 }
375
376 #sone .post .reply > .inner-part {
377         margin-left: 36px;
378         padding-left: 0.5em;
379         min-height: 36px;
380 }
381
382 #sone .post .reply {
383         clear: both;
384         background-color: #f0f0ff;
385         font-size: 85%;
386         margin: 1ex 0px;
387         padding: 1ex;
388 }
389
390 #sone .post .reply.new {
391         background-color: #ffffa0;
392 }
393
394 #sone .post .reply .time {
395         float: none;
396         display: inline;
397         color: #666;
398         font-size: inherit;
399 }
400
401 #sone .post .show-reply-form {
402         display: inline;
403 }
404
405 #sone .post .show-reply-form span {
406         color: rgb(28, 131, 191);
407         cursor: pointer;
408         font: inherit;
409 }
410
411 #sone .post .show-reply-form span:hover {
412         color: rgb(255, 172, 0);
413 }
414
415 #sone .post .create-reply {
416         clear: both;
417         background-color: #f0f0ff;
418         padding: 0.5ex;
419 }
420
421 #sone .post .create-reply input[type=text] {
422         margin-left: 0.5ex;
423         width: 42em;
424 }
425
426 #sone .post .create-reply textarea {
427         margin-left: 0.5ex;
428         width: 42em;
429         height: 4em;
430 }
431
432 #sone .post .create-reply button {
433         float: right;
434 }
435
436 #sone .create-reply .select-sender button, #sone #post-message .select-sender button {
437         display: inline;
438         float: left;
439 }
440
441 #sone .sone {
442         clear: both;
443         background-color: #f0f0ff;
444         border: 1px solid #ccc;
445         margin-bottom: 0.5ex;
446         padding: 0.5ex;
447 }
448
449 #sone .sone.local {
450         background-color: #f0fff0;
451 }
452
453 #sone .sone.new {
454         background-color: #ffffa0;
455 }
456
457 #sone .sone .profile-link {
458         display: block;
459 }
460
461 #sone .sone .short-request-uri {
462         clear: both;
463         float: right;
464 }
465
466 #sone .sone .unknown-marker, #sone .sone .download-marker, #sone .sone .insert-marker, #sone .sone .idle-marker, #sone .sone .modified-marker {
467         display: none;
468 }
469
470 #sone .sone.unknown .unknown-marker, #sone .sone.idle .idle-marker, #sone .sone.downloading .download-marker, #sone .sone.inserting .insert-marker, #sone .sone.modified .modified-marker {
471         display: inline;
472         float: right;
473         border: solid 1px #ccc;
474         border-right: none;
475         border-top: none;
476         padding: 0 0.5ex;
477         position: relative;
478         right: -0.5ex;
479         top: -0.5ex
480 }
481
482 #sone .sone.idle.modified .idle-marker {
483         display: none;
484 }
485
486 #sone .sone .last-update {
487         float: right;
488         display: inline;
489 }
490
491 #sone .sone .modified-marker, #sone .sone .unknown-marker {
492         color: red;
493         font-weight: bold;
494 }
495
496 #sone .sone form.follow, #sone .sone form.unfollow, #sone .sone form.lock, #sone .sone form.unlock {
497         display: inline;
498         border: solid 1px #ccc;
499         border-left: none;
500         border-bottom: none;
501         padding: 0 0.5ex;
502         position: relative;
503         left: -0.5ex;
504         bottom: -0.5ex
505 }
506
507 #sone .sone form.follow button, #sone .sone form.unfollow button, #sone .sone form.lock button, #sone .sone form.unlock button {
508         display: inline;
509         color: rgb(28, 131, 191);
510         background: none;
511         border: none;
512         font: inherit;
513         padding: 0px;
514 }
515
516 #sone .sone form.follow button:hover, #sone .sone form.unfollow button:hover, #sone .sone form.lock button:hover, #sone .sone form.unlock button:hover {
517         display: inline;
518         color: rgb(255, 172, 0);
519 }
520
521 #sone .sone.locked form.lock, #sone .sone.unlocked form.unlock {
522         display: none;
523 }
524
525 #sone .sone form.hidden {
526         display: none;
527 }
528
529 #sone .sone .spacer {
530         display: inline;
531 }
532
533 #sone .profile-field, #sone #edit-profile button[type=submit], #sone #delete-profile-field {
534         margin-top: 1em;
535 }
536
537 #sone .profile-field .name {
538         display: inline;
539         font-weight: bold;
540 }
541
542 #sone .profile-field .name.hidden {
543         display: none;
544 }
545
546 #sone .profile-field button.confirm.edit {
547         font-weight: bold;
548         color: #080;
549 }
550
551 #sone .profile-field button.cancel {
552         font-weight: bold;
553         color: red;
554 }
555
556 #sone .profile-field .value {
557         margin-left: 2em;
558 }
559
560 #sone #edit-profile .profile-field .value {
561         margin-left: inherit;
562 }
563
564 #sone .profile-field .edit-field-name, #sone .profile-field .move-up-field, #sone .profile-field .move-down-field, #sone .profile-field .delete-field-name {
565         float: right;
566         margin-top: -1ex;
567         position: relative;
568 }
569
570 #sone #search {
571         text-align: right;
572 }
573
574 #sone #search input[type=text] {
575         width: 35em;
576 }
577
578 #sone #sone-results + #sone #post-results {
579         clear: both;
580         padding-top: 1em;
581 }
582
583 #sone #tail {
584         margin-top: 1em;
585         border-top: solid 1px #ccc;
586         padding-top: 2em;
587         text-align: center;
588         font-size: 75%;
589         color: #888;
590 }
591
592 #sone #tail #version-information {
593         margin-top: 1em;
594 }
595
596 #sone #add-sone textarea, #sone #create-sone textarea, #sone #load-sone textarea, #sone #edit-profile textarea {
597         height: 1.5em;
598 }
599
600 #sone #add-sone button {
601         position: absolute;
602 }
603
604 #sone .navigation {
605         text-align: center;
606 }
607
608 #sone .navigation .first a, #sone .navigation .previous a, #sone .navigation .next a, #sone .navigation .last a, #sone .navigation .first span, #sone .navigation .previous span, #sone .navigation .next span, #sone .navigation .last span {
609         display: block;
610         height: 1.5em;
611         padding: 0.5ex;
612         width: 3em;
613         border: solid 1px #ccc;
614         background-color: #f0f0ff;
615         margin: 1ex 0;
616 }
617
618 #sone .navigation .first, #sone .navigation .previous {
619         float: left;
620 }
621
622 #sone .navigation .current-page, #sone .navigation .total-pages {
623         position: relative;
624         top: 0.5em;
625         margin-top: 0.5ex;
626         display: inline;
627 }
628
629 #sone .navigation .total-pages:before {
630         content: '/ ';
631 }
632
633 #sone .navigation .next, #sone .navigation .last {
634         float: right;
635 }
636
637 #sone h1 {
638         font-family: inherit;
639         font-size: 200%;
640         font-weight: bold;
641         clear: both;
642 }
643
644 #sone h2 {
645         font-family: inherit;
646         font-size: 150%;
647         font-weight: bold;
648         clear: both;
649 }
650
651 #sone .error label {
652         color: red;
653         font-weight: bold;
654 }
655
656 #sone input.default {
657         color: #888;
658 }
659
660 #sone input[type=text].key {
661         width: 130ex;;
662         font-size: 75%;
663 }
664
665 #sone .confirm {
666         font-weight: bold;
667         color: red;
668 }