💄 Try to undo Fred’s CSS mess
[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         /* workaround Fred’s CSS mess */
7         max-width: inherit;
8 }
9
10 input[type=text], textarea {
11         font-size: 90%;
12         margin: 0.5ex;
13         margin-left: 0;
14         border: solid 1px #ccc;
15         padding: 0.5ex;
16         height: 1.5em;
17         width: 50em;
18         outline: none;
19 }
20
21 input[type=text].short {
22         width: 25em;
23 }
24
25 textarea {
26         height: 4em;
27 }
28
29 #sone button {
30         background-color: #ddd;
31         border-width: 1px;
32         color: #444;
33         padding: 0.5ex 1.5ex;
34 }
35
36 #sone form {
37         margin: 0px;
38 }
39
40 #sone select {
41         color: #444;
42         padding: 0.5ex 1.5ex;
43 }
44
45 /* now for the real stuff. */
46
47 #sone {
48         width: 55em;
49         margin: auto;
50 }
51
52 #sone .hidden {
53         display: none;
54 }
55
56 #sone .toggle-link {
57         margin-top: 1em;
58 }
59
60 #sone #formPassword {
61         display: none;
62 }
63
64 #sone a, #sone a:link, #sone a:visited {
65         color: rgb(28, 131, 191);
66         font-size: inherit;
67         text-decoration: none;
68 }
69
70 #sone a:active, #sone a:hover {
71         color: rgb(255, 172, 0);
72 }
73
74 #sone a.link {
75         cursor: pointer;
76 }
77
78 #sone a.internet {
79         color: rgb(255, 0, 0);
80 }
81
82 #sone a.internet:before {
83         content: 'âš  ';
84 }
85
86 #sone a.freenet:before {
87         content: '» ';
88 }
89
90 #sone a.freenet-trusted {
91         color: rgb(0, 128, 0);
92 }
93
94 #sone a.freenet-trusted:before {
95         content: '★ ';
96 }
97
98 #sone a.in-page-link:before {
99         content: '↓ ';
100 }
101
102 #sone a img {
103         border: none;
104 }
105
106 #sone .small-link {
107         font-size: 85%;
108 }
109
110 #sone .parsed {
111         white-space: pre-wrap;
112 }
113
114 #sone #main.offline {
115         opacity: 0.5;
116 }
117
118 #sone #offline-marker {
119         display: none;
120         position: fixed;
121         top: 2em;
122         right: 2em;
123         width: 128px;
124         height: 128px;
125         background-image: url("../images/sone-offline.png");
126 }
127
128 #sone #notification-area {
129         margin-top: 1em;
130 }
131
132 #sone #notification-area .notification {
133         padding: 1ex;
134         border: solid 1px #ccc;
135         background-color: #ffffa0;
136         margin-bottom: 1ex;
137         min-height: 3.5ex;
138 }
139
140 #sone #notification-area .notification button {
141         margin-left: 1ex;
142 }
143
144 #sone #notification-area .notification .dismiss {
145         float: right;
146 }
147
148 #sone #notification-area .notification .post-count {
149         margin-left: 1ex;
150 }
151
152 #sone #notification-area .notification .mark-as-read {
153         float: right;
154 }
155
156 #sone #notification-area .notification .hidden {
157         display: none;
158 }
159
160 #sone #notification-area #local-post-notification, #sone #notification-area #local-reply-notification {
161         display: none;
162 }
163
164 #sone #plugin-warning {
165         border: solid 0.5em red;
166         padding: 0.5em;
167         margin-bottom: 1em;
168 }
169
170 #sone #profile {
171         height: 80px;
172         margin-top: 1em;
173         margin-bottom: 1ex;
174 }
175
176 #sone .profile-avatar {
177         display: inline-block;
178         width: 80px;
179         height: 80px;
180         overflow: hidden;
181         position: absolute;
182 }
183
184 #sone .profile-link {
185         font-weight: bold;
186         color: rgb(28, 131, 191);
187 }
188
189 #sone #profile.online .picture {
190         position: absolute;
191 }
192
193 #sone #profile.offline .picture {
194         position: absolute;
195 }
196
197 #sone #profile.offline .edit-profile-link, #sone #profile.offline .profile-link {
198         display: none;
199 }
200
201 #sone #profile .edit-profile-link {
202         font-size: 85%;
203 }
204
205 #sone #home-sone {
206         margin-top: 1ex;
207         margin-left: 80px;
208         padding-left: 1ex;
209 }
210
211 #sone #update-status {
212         margin-bottom: 1em;
213 }
214
215 #sone #update-status label, #sone #post-message label {
216         display: none;
217 }
218
219 #sone #update-status input[type=text] {
220         width: 45em;
221 }
222
223 #sone #update-status textarea {
224         width: 45em;
225 }
226
227 #sone #update-status button {
228         float: right;
229 }
230
231 #sone #update-status .select-sender, #sone .create-reply .select-sender, #sone #post-message .select-sender {
232         display: none;
233 }
234
235 #sone #update-status .select-sender button, #sone #post-message .select-sender button {
236         display: inline;
237         float: left;
238 }
239
240 #sone .nice-name {
241         font-weight: bold;
242 }
243
244 #sone #main {
245         padding: 1em;
246         padding-top: 0px;
247 }
248
249 #sone #edit-profile #birth-day, #sone #edit-profile #birth-month, #sone #edit-profile #birth-year {
250         display: inline;
251         width: 15em;
252 }
253
254 #sone #edit-profile #birth-day input, #sone #edit-profile #birth-month input, #sone #edit-profile #birth-year input {
255         width: 4em;
256         text-align: right;
257 }
258
259 #sone td.numeric {
260         text-align: right;
261 }
262
263 #sone .post {
264         padding: 1ex 0px;
265         border-bottom: solid 1px #ccc;
266         clear: both;
267         position: relative;
268 }
269
270 #sone .post.new {
271         background-color: #ffffa0;
272         padding-left: 1ex;
273 }
274
275 #sone .post.last {
276         padding: 1ex 0px;
277         border-bottom: none;
278 }
279
280 #sone .post .sone-menu {
281         position: absolute;
282         top: 0;
283         left: -1ex;
284         padding: 1ex 1ex;
285         margin: -1px -1px;
286         display: none;
287         background-color: rgb(255, 255, 224);
288         border: solid 1px rgb(0, 0, 0);
289         z-index: 1;
290 }
291
292 #sone .post .sone-menu .avatar {
293         position: absolute;
294         margin-right: 1ex;
295 }
296
297 #sone .menu-avatar {
298         display: inline-block;
299         width: 64px;
300         height: 64px;
301         overflow: hidden;
302 }
303
304 #sone .post .sone-menu .inner-menu {
305         margin-left: 64px;
306         padding-left: 1ex;
307         min-height: 64px;
308 }
309
310 #sone .sone-menu .follow, #sone .sone-menu .unfollow {
311         cursor: pointer;
312 }
313
314 #sone .post > .avatar {
315         position: absolute;
316 }
317
318 #sone .post-avatar {
319         display: inline-block;
320         width: 48px;
321         height: 48px;
322         overflow: hidden;
323 }
324
325 #sone .post > .inner-part {
326         margin-left: 48px;
327         padding-left: 0.5em;
328         min-height: 48px;
329 }
330
331 #sone .post .author, #sone .post .recipient {
332         display: inline;
333         font-weight: bold;
334 }
335
336 #sone .post .author-wot-link {
337         font-size: 90%;
338 }
339
340 #sone .post .text, #sone .post .raw-text, #sone .post .short-text {
341         display: inline;
342         white-space: pre-wrap;
343         word-wrap: break-word;
344 }
345
346 #sone .post .text.hidden, #sone .post .raw-text.hidden, #sone .post .short-text.hidden {
347         display: none;
348 }
349
350 #sone .post .expand-post-text:before, #sone .post .expand-reply-text:before {
351         content: "» ";
352 }
353
354 #sone .post .shrink-post-text:before, #sone .post .shrink-reply-text:before {
355         content: "« ";
356 }
357
358 #sone .post .shrink-post-text {
359         cursor: pointer;
360 }
361
362 #sone .post .status-line {
363         margin-top: 0.5ex;
364         font-size: 85%;
365 }
366
367 #sone .separator {
368         font: inherit;
369         color: rgb(28, 131, 191);
370 }
371
372 #sone .show-source, #sone .show-reply-source {
373         display: inline;
374 }
375
376 #sone .permalink {
377         display: inline;
378 }
379
380 #sone .post .bookmarks {
381         display: inline;
382         color: rgb(28, 131, 191);
383 }
384
385 #sone .post .bookmark, #sone .post .unbookmark {
386         display: inline;
387         font: inherit;
388         margin: 0px;
389 }
390
391 #sone .post .time {
392         display: inline;
393         color: #666;
394 }
395
396 #sone .post .delete, #sone .post .likes, #sone .post .like, #sone .post .unlike, #sone .post .wot-link {
397         display: inline;
398         font: inherit;
399         margin: 0px;
400 }
401
402 #sone .post .likes.hidden {
403         display: none;
404 }
405
406 #sone .post .like.hidden, #sone .post .unlike.hidden, #sone .post .bookmark.hidden, #sone .post .unbookmark.hidden {
407         display: none;
408 }
409
410 #sone .post .delete button, #sone .post .like button, #sone .post .unlike button, #sone .post .bookmark button, #sone .post .unbookmark button {
411         border: 0px;
412         background: none;
413         padding: 0px;
414         color: rgb(28, 131, 191);
415         font: inherit;
416         margin: 0px;
417 }
418
419 #sone .post .delete button.confirm {
420         color: red;
421         font-weight: bold;
422 }
423
424 #sone .post .delete button:hover, #sone .post .like button:hover, #sone .post .unlike button:hover, #sone .post .bookmark button:hover, #sone .post .unbookmark button:hover {
425         border: 0px;
426         background: none;
427         padding: 0px;
428         color: rgb(255, 172, 0);
429         cursor: pointer;
430 }
431
432 #sone .post .likes span {
433         font: inherit;
434         color: green;
435 }
436
437 #sone .post .linked-elements {
438         margin-top: 1ex;
439 }
440
441 #sone .linked-element.loaded .image {
442         display: inline-block;
443         border: solid 1px black;
444         width: 160px;
445         height: 120px;
446         background-size: cover;
447         background-position: center;
448         margin-right: 1ex;
449         margin-bottom: 1ex;
450 }
451
452 #sone .linked-element.loaded .html-page {
453         display: inline-block;
454         width: 160px;
455         max-height: 120px;
456         overflow: hidden;
457         vertical-align: top;
458 }
459
460 #sone .reply .linked-element.loaded .html-page {
461         width: 120px;
462         max-height: 90px;
463 }
464
465 #sone .linked-element.loaded .html-page .heading {
466         font-size: 115%;
467         font-weight: 600;
468         text-overflow: ellipsis;
469         overflow: hidden;
470         white-space: nowrap;
471 }
472
473 #sone .linked-element.loaded .html-page .description {
474         font-size: 85%;
475 }
476
477 #sone .linked-element.loaded .html-page {
478         display: inline-block;
479 }
480
481 #sone .post .replies {
482         clear: both;
483         padding-top: 0.2ex;
484 }
485
486 #sone .post .replies .click-to-show {
487         background-color: #f0f0ff;
488         font-size: 85%;
489         padding: 0.5em;
490         cursor: pointer;
491 }
492
493 #sone .post .replies .click-to-show.new {
494         background-color: #ffffa0;
495 }
496
497 #sone .post .reply > .avatar {
498         position: absolute;
499 }
500
501 #sone .reply-avatar {
502         display: inline-block;
503         width: 36px;
504         height: 36px;
505         overflow: hidden;
506 }
507
508 #sone .post .reply > .inner-part {
509         margin-left: 36px;
510         padding-left: 0.5em;
511         min-height: 36px;
512 }
513
514 #sone .post .reply {
515         position: relative;
516         clear: both;
517         background-color: #f0f0ff;
518         margin: 1ex 0px;
519         padding: 1ex;
520 }
521
522 #sone .post .reply .inner-part {
523         font-size: 85%;
524 }
525
526 #sone .post .reply.new {
527         background-color: #ffffa0;
528 }
529
530 #sone .post .reply .time {
531         float: none;
532         display: inline;
533         color: #666;
534         font-size: inherit;
535 }
536
537 #sone .post .reply .linked-elements {
538         margin-top: 1ex;
539 }
540
541 #sone .post .reply .linked-element.loaded .image {
542         display: inline-block;
543         border: solid 1px black;
544         width: 120px;
545         height: 90px;
546         background-size: cover;
547         background-position: center;
548         margin-right: 1ex;
549         margin-bottom: 1ex;
550 }
551
552 #sone .post .show-reply-form {
553         display: inline;
554 }
555
556 #sone .post .show-reply-form span {
557         color: rgb(28, 131, 191);
558         cursor: pointer;
559         font: inherit;
560 }
561
562 #sone .post .show-reply-form span:hover {
563         color: rgb(255, 172, 0);
564 }
565
566 #sone .post .create-reply {
567         clear: both;
568         background-color: #f0f0ff;
569         padding: 0.5ex;
570 }
571
572 #sone .post .create-reply input[type=text] {
573         margin-left: 0.5ex;
574         width: 42em;
575 }
576
577 #sone .post .create-reply textarea {
578         margin-left: 0.5ex;
579         width: 42em;
580         height: 4em;
581 }
582
583 #sone .post .create-reply button {
584         float: right;
585 }
586
587 #sone .create-reply .select-sender button, #sone #post-message .select-sender button {
588         display: inline;
589         float: left;
590 }
591
592 #sone .sone {
593         clear: both;
594         background-color: #f0f0ff;
595         border: 1px solid #ccc;
596         margin-bottom: 0.5ex;
597         padding: 0.5ex;
598 }
599
600 #sone .sone.local {
601         background-color: #f0fff0;
602 }
603
604 #sone .sone.new {
605         background-color: #ffffa0;
606 }
607
608 #sone .sone .profile-link {
609         display: inline;
610 }
611
612 #sone .sone .sone-stats {
613         display: inline;
614 }
615
616 #sone .sone .short-request-uri {
617         clear: both;
618         float: right;
619 }
620
621 #sone .sone .unknown-marker, #sone .sone .download-marker, #sone .sone .insert-marker, #sone .sone .idle-marker, #sone .sone .modified-marker {
622         display: none;
623 }
624
625 #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 {
626         display: inline;
627         float: right;
628         border: solid 1px #ccc;
629         border-right: none;
630         border-top: none;
631         padding: 0 0.5ex;
632         position: relative;
633         right: -0.5ex;
634         top: -0.5ex
635 }
636
637 #sone .sone.idle.modified .idle-marker {
638         display: none;
639 }
640
641 #sone .sone .last-update {
642         float: right;
643         display: inline;
644 }
645
646 #sone .sone .modified-marker, #sone .sone .unknown-marker {
647         color: red;
648         font-weight: bold;
649 }
650
651 #sone .sone form.follow, #sone .sone form.unfollow, #sone .sone form.lock, #sone .sone form.unlock {
652         display: inline;
653         border: solid 1px #ccc;
654         border-left: none;
655         border-bottom: none;
656         padding: 0 0.5ex;
657         position: relative;
658         left: -0.5ex;
659         bottom: -0.5ex
660 }
661
662 #sone .sone form.follow button, #sone .sone form.unfollow button, #sone .sone form.lock button, #sone .sone form.unlock button {
663         display: inline;
664         color: rgb(28, 131, 191);
665         background: none;
666         border: none;
667         font: inherit;
668         padding: 0px;
669 }
670
671 #sone .sone form.follow button:hover, #sone .sone form.unfollow button:hover, #sone .sone form.lock button:hover, #sone .sone form.unlock button:hover {
672         display: inline;
673         color: rgb(255, 172, 0);
674 }
675
676 #sone .sone.locked form.lock, #sone .sone.unlocked form.unlock {
677         display: none;
678 }
679
680 #sone .sone form.hidden {
681         display: none;
682 }
683
684 #sone .sone .spacer {
685         display: inline;
686 }
687
688 #sone .profile-field, #sone #edit-profile button[type=submit], #sone #delete-profile-field {
689         margin-top: 1em;
690 }
691
692 #sone .profile-field .name {
693         display: inline;
694         font-weight: bold;
695 }
696
697 #sone .profile-field .name.hidden {
698         display: none;
699 }
700
701 #sone .profile-field button.confirm.edit {
702         font-weight: bold;
703         color: #080;
704 }
705
706 #sone .profile-field button.cancel {
707         font-weight: bold;
708         color: red;
709 }
710
711 #sone .profile-field .value {
712         margin-left: 2em;
713 }
714
715 #sone #edit-profile .profile-field .value {
716         margin-left: inherit;
717 }
718
719 #sone .profile-field .edit-field-name, #sone .profile-field .move-up-field, #sone .profile-field .move-down-field, #sone .profile-field .delete-field-name {
720         float: right;
721         margin-top: -1ex;
722         position: relative;
723 }
724
725 #sone .backlinks {
726         font-size: 80%;
727         margin-bottom: 1em;
728 }
729
730 #sone .backlinks .backlink {
731         display: inline;
732 }
733
734 #sone .album {
735 }
736
737 #sone .image-row, #sone .album-row {
738         display: table-row;
739 }
740
741 #sone .image-container, #sone .album-container {
742         width: 250px;
743         height: 250px;
744         overflow: hidden;
745         padding: -1px;
746         border: solid 1px #000;
747 }
748
749 #sone .image, #sone .album {
750         display: table-cell;
751         vertical-align: top;
752         text-align: center;
753         padding: 0.5ex;
754 }
755
756 #sone .single-image img {
757         border: solid 1px #000;
758         background-color: #fff;
759 }
760
761 #sone .image .edit-image input, #sone .album .edit-album input {
762         width: 95%;
763 }
764
765 #sone .image .edit-image textarea, #sone .album .edit-album textarea {
766         width: 95%;
767 }
768
769 #sone .image .album-sone {
770         font-size: 80%;
771 }
772
773 #sone .image .image-title, #sone .album .album-title {
774         font-weight: bold;
775 }
776
777 #sone .image .image-description, #sone .album .album-description {
778         text-align: left;
779         width: 98%;
780         word-wrap: break-word;
781         max-height: 5em;
782         overflow: auto;
783 }
784
785 #sone .backlinks .separator {
786         display: inline;
787 }
788
789 #sone #search {
790         text-align: right;
791 }
792
793 #sone #search input[type=text] {
794         width: 35em;
795 }
796
797 #sone #sone-results + #sone #post-results {
798         clear: both;
799         padding-top: 1em;
800 }
801
802 #sone #tail {
803         margin-top: 1em;
804         border-top: solid 1px #ccc;
805         padding-top: 2em;
806         text-align: center;
807         font-size: 75%;
808         color: #888;
809 }
810
811 #sone #tail #version-information {
812         margin-top: 1em;
813 }
814
815 #sone #add-sone textarea, #sone #create-sone textarea, #sone #load-sone textarea, #sone #edit-profile textarea {
816         height: 1.5em;
817 }
818
819 #sone #add-sone button {
820         position: absolute;
821 }
822
823 #sone .navigation {
824         text-align: center;
825 }
826
827 #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 {
828         display: block;
829         height: 1.5em;
830         padding: 0.5ex;
831         width: 3em;
832         border: solid 1px #ccc;
833         background-color: #f0f0ff;
834         margin: 1ex 0;
835 }
836
837 #sone .navigation .first, #sone .navigation .previous {
838         float: left;
839 }
840
841 #sone .navigation .current-page, #sone .navigation .total-pages {
842         position: relative;
843         top: 0.5em;
844         margin-top: 0.5ex;
845         display: inline;
846 }
847
848 #sone .navigation .total-pages:before {
849         content: '/ ';
850 }
851
852 #sone .navigation .next, #sone .navigation .last {
853         float: right;
854 }
855
856 #sone .clear {
857         clear: both;
858 }
859
860 #sone h1 {
861         font-family: inherit;
862         font-size: 200%;
863         font-weight: bold;
864         clear: both;
865 }
866
867 #sone h1.backlink {
868         margin-bottom: 0px;
869 }
870
871 #sone h2 {
872         font-family: inherit;
873         font-size: 150%;
874         font-weight: bold;
875         clear: both;
876 }
877
878 #sone .error label {
879         color: red;
880         font-weight: bold;
881 }
882
883 #sone input.default, #sone textarea.default {
884         color: #888;
885 }
886
887 #sone input[type=text].key {
888         width: 130ex;;
889         font-size: 75%;
890 }
891
892 #sone .confirm {
893         font-weight: bold;
894         color: red;
895 }
896
897 #sone .warning {
898         color: red;
899         font-style: italic;
900 }
901
902 #sone #sort-options {
903         margin-bottom: 1em;
904 }
905
906 #sone ul#avatar-selection {
907         padding: 0;
908 }
909
910 #sone #avatar-selection li {
911         display: inline-block;
912 }
913
914 #sone #avatar-selection li .post-avatar {
915         vertical-align: middle;
916         margin-top: 0.5em;
917 }
918
919 #sone #avatar-selection li#no-avatar {
920         display: block;
921 }
922
923 #sone form#options ul {
924         padding-left: 1em;
925 }
926
927 #sone form#options li {
928         list-style-type: none;
929 }
930
931 #sone table thead tr {
932         font-weight: bold;
933 }