]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - assets/default/scss/shaarli.scss
Add a setting to retrieve bookmark metadata asynchrounously
[github/shaarli/Shaarli.git] / assets / default / scss / shaarli.scss
1 $fa-font-path: '~fork-awesome/fonts';
2
3 @import '~fork-awesome/scss/fork-awesome';
4 @import '~purecss/build/pure.css';
5 @import '~purecss/build/grids-responsive.css';
6 @import '~pure-extras/css/pure-extras.css';
7 @import '~awesomplete/awesomplete.css';
8
9 $white: #fff;
10 $black: #000;
11 $almost-white: #f5f5f5;
12 $dark-grey: #252525;
13 $light-grey: #797979;
14 $main-green: #1b926c;
15 $light-green: #b0ddce;
16 $dark-green: #186446;
17 $red: #ac2925;
18 $orange: #f89406;
19 $blue: #0b5ea6;
20 $background-color: #d0d0d0;
21 $background-linklist-info: #ddd;
22 $light-shadow: rgba(255, 255, 255, .078);
23 $dark-shadow: rgba(0, 0, 0, .298);
24 $warning-text: #97600d;
25 $form-input-border: #d8d8d8;
26 $form-input-background: #eee;
27
28 :root {
29 --main-color: #{$main-green};
30 --background-color: #{$background-color};
31 --dark-main-color: #{$dark-green};
32 }
33
34 // General
35 body {
36 background: var(--background-color);
37 }
38
39 .strong {
40 font-weight: bold;
41 }
42
43 .clear {
44 clear: both;
45 }
46
47 .center {
48 margin: auto;
49 text-align: center;
50 }
51
52 .label {
53 display: inline-block;
54 border-radius: .25rem;
55 padding: .25em .4em;
56 vertical-align: baseline;
57 text-align: center;
58 line-height: 1;
59 white-space: nowrap;
60 font-size: 75%;
61 font-weight: 700;
62 }
63
64 pre {
65 max-width: 100%;
66 }
67
68 @font-face {
69 font-family: 'Roboto';
70 font-weight: 400;
71 font-style: normal;
72 src:
73 local('Roboto'),
74 local('Roboto-Regular'),
75 url('../fonts/Roboto-Regular.woff2') format('woff2'),
76 url('../fonts/Roboto-Regular.woff') format('woff');
77 }
78
79 @font-face {
80 font-family: 'Roboto';
81 font-weight: 700;
82 font-style: normal;
83 src:
84 local('Roboto'),
85 local('Roboto-Bold'),
86 url('../fonts/Roboto-Bold.woff2') format('woff2'),
87 url('../fonts/Roboto-Bold.woff') format('woff');
88 }
89
90 body,
91 .pure-g [class*='pure-u'] {
92 font-family: Roboto, Arial, sans-serif;
93 }
94
95 // Extends Pure grids responsive to hide items.
96 // Use xx-0 to hide an item on xx screen.
97 // Display it at any level with xx-visible.
98 .pure-u-0 {
99 display: none !important;
100 }
101
102 @media screen and (min-width: 35.5em) {
103 .pure-u-sm-0 {
104 display: none !important;
105 }
106
107 .pure-u-sm-visible {
108 display: inline-block !important;
109 }
110 }
111
112 @media screen and (min-width: 48em) {
113 .pure-u-md-0 {
114 display: none !important;
115 }
116
117 .pure-u-md-visible {
118 display: inline-block !important;
119 }
120 }
121
122 @media screen and (min-width: 64em) {
123 .pure-u-lg-0 {
124 display: none !important;
125 }
126
127 .pure-u-lg-visible {
128 display: inline-block !important;
129 }
130 }
131
132 @media screen and (min-width: 80em) {
133 .pure-u-xl-0 {
134 display: none !important;
135 }
136
137 .pure-u-xl-visible {
138 display: inline-block !important;
139 }
140 }
141
142 // Make pure-extras alert closable.
143 .pure-alert-closable {
144 .fa-times {
145 float: right;
146 }
147 }
148
149 .pure-alert-close {
150 cursor: pointer;
151 }
152
153 .pure-alert-success {
154 background-color: var(--main-color);
155 }
156
157 .pure-alert-warning {
158 a {
159 color: $warning-text;
160 font-weight: bold;
161 }
162 }
163
164 .page-single-alert {
165 margin-top: 100px;
166 }
167
168 .anchor {
169 &:target {
170 padding-top: 40px;
171 }
172 }
173
174 // MENU
175 .shaarli-menu {
176 position: fixed;
177 top: 0;
178 transition: max-height .5s;
179 z-index: 999;
180 background: var(--main-color);
181 width: 100%;
182 // Hack to transition with auto height: http://stackoverflow.com/a/8331169/1484919
183 max-height: 45px;
184 overflow: hidden;
185 -webkit-font-smoothing: antialiased;
186
187 &.open {
188 transition: max-height .75s;
189 max-height: 500px;
190 }
191 }
192
193 .pure-menu-item {
194 // Chrome bugfix: with 100% height, it only displays the first element.
195 height: 45px;
196
197 &:hover {
198 &::after {
199 display: block;
200 margin: -4px auto 0;
201 background: $white;
202 width: 100%;
203 height: 4px;
204 content: '';
205 }
206 }
207 }
208
209 .head-logo {
210 float: left;
211 margin: 0 5px 0 0;
212 }
213
214 %menu-link {
215 padding: .8em 1em;
216 color: $almost-white;
217 }
218
219 %menu-link-hover {
220 background: transparent;
221 color: $white;
222 }
223
224 .pure-menu-link {
225 @extend %menu-link;
226
227 &:visited {
228 @extend %menu-link;
229 }
230
231 &:hover,
232 &:focus {
233 @extend %menu-link-hover;
234 }
235 }
236
237 .pure-menu-selected {
238 .pure-menu-link {
239 @extend %menu-link;
240
241 &:visited {
242 @extend %menu-link;
243 }
244
245 &:hover,
246 &:focus {
247 @extend %menu-link-hover;
248 }
249 }
250 }
251
252 .menu-toggle {
253 display: none;
254 position: absolute;
255 top: 5px;
256 right: 0;
257 width: 34px;
258 height: 45px;
259
260 .bar {
261 display: block;
262 position: absolute;
263 top: 18px;
264 right: 7px;
265 border-radius: 100px;
266 background-color: $light-green;
267 width: 20px;
268 height: 2px;
269 transition-duration: .5s;
270
271 &:first-child {
272 transform: translateY(-6px);
273 }
274 }
275
276 &.x {
277 .bar {
278 transform: rotate(45deg);
279
280 &:first-child {
281 transform: rotate(-45deg);
282 }
283 }
284 }
285 }
286
287 @media screen and (max-width: 64em) {
288 .menu-toggle {
289 display: block;
290 }
291 }
292
293 .header-buttons {
294 text-align: right;
295 }
296
297 .linkcount {
298 color: $dark-grey;
299 font-size: .8em;
300 }
301
302 @media screen and (min-width: 64em) {
303 .linkcount {
304 position: absolute;
305 right: 5px;
306 }
307 }
308
309 .searchform-block {
310 width: 100%;
311 text-align: center;
312
313 input {
314 &[type='text'] {
315 border: medium none currentColor;
316 border-radius: 2px;
317 box-shadow: 0 1px 0 $light-shadow, 0 1px 1px $dark-shadow inset;
318 background: $almost-white;
319 padding: 0 5px;
320 width: 260px;
321 height: 30px;
322 color: $dark-grey;
323
324 &::-webkit-input-placeholder {
325 color: $light-grey;
326 }
327 }
328 }
329
330 button {
331 border: 0;
332 border-radius: 2px;
333 background-color: var(--main-color);
334 padding: 4px 8px 6px;
335 color: $almost-white;
336 }
337 }
338
339 @media screen and (max-width: 64em) {
340 .searchform {
341 margin: 0 auto;
342 max-width: 260px;
343 }
344 }
345
346 .search-tagcloud {
347 button {
348 width: 90%;
349 }
350 }
351
352 @media screen and (max-width: 64em) {
353 .search-linklist {
354 button {
355 width: 100%;
356 }
357
358 .awesomplete {
359 margin: 5px 0;
360 }
361 }
362 }
363
364 .header-search,
365 .search-linklist,
366 .search-tagcloud {
367 button {
368 &:hover {
369 color: var(--background-color);
370 }
371 }
372 }
373
374 .header-search,
375 .search-linklist {
376 padding: 6px 0;
377 }
378
379 @media screen and (max-width: 64em) {
380 .header-search,
381 .header-search * {
382 visibility: hidden;
383 }
384 }
385
386 %subheader-form-input {
387 border: medium none currentColor;
388 border-radius: 2px;
389 box-shadow: 0 1px 0 $light-shadow, 0 1px 4px $dark-shadow inset;
390 background: $almost-white;
391 padding: 5px 5px 3px 15px;
392 color: $dark-grey;
393 }
394
395 .subheader-form {
396 display: block;
397 position: fixed;
398 visibility: hidden;
399 z-index: 999;
400 background: var(--main-color);
401 padding: 5px 0;
402 width: 100%;
403 height: 30px;
404 text-align: center;
405
406 input {
407 &[type='text'],
408 &[type='password'] {
409 @extend %subheader-form-input;
410
411 &::-webkit-input-placeholder {
412 color: $dark-grey;
413 }
414 }
415 }
416
417 &[type='submit'] {
418 display: inline-block;
419 margin: 0 0 5px;
420 border: 1px solid $almost-white;
421 border-radius: 2px;
422 background: var(--main-color);
423 padding: 4px 0;
424 width: 100px;
425 height: 28px;
426 color: $almost-white;
427
428 &:hover {
429 background: $almost-white;
430 color: var(--main-color);
431 }
432 }
433
434 .remember-me {
435 @extend %subheader-form-input;
436
437 display: inline-block;
438 cursor: pointer;
439 padding: 5px 20px 3px;
440 width: auto;
441
442 label,
443 input {
444 cursor: pointer;
445 }
446 }
447
448 a {
449 &.button {
450 border: 2px solid $almost-white;
451 border-radius: 5px;
452 padding: 3px 10px;
453 text-decoration: none;
454 color: $almost-white;
455 font-weight: bold;
456 }
457 }
458 }
459
460 .header-login-form {
461 input {
462 &[type='text'],
463 &[type='password'] {
464 width: 200px;
465
466 // because chrome
467 &::-webkit-input-placeholder {
468 color: $light-grey;
469 }
470 }
471 }
472 }
473
474 @media screen and (min-width: 64em) {
475 .subheader-form {
476 &.open {
477 visibility: visible;
478
479 * {
480 visibility: visible;
481 }
482 }
483 }
484 }
485
486 .new-version-message {
487 text-align: center;
488
489 a {
490 color: $warning-text;
491 font-weight: bold;
492 }
493 }
494
495 .header-alert-message {
496 text-align: center;
497 }
498
499 // CONTENT - GENERAL
500 .container {
501 position: relative;
502 z-index: 2;
503 margin-top: 45px;
504 }
505
506 // Plugins additional forms
507 .toolbar-plugin {
508 margin: 5px 0;
509 text-align: center;
510
511 input {
512 &[type='text'] {
513 border: medium none currentColor;
514 border-radius: 2px;
515 box-shadow: 0 1px 0 $light-shadow, 0 1px 1px $dark-shadow inset;
516 background: $almost-white;
517 padding: 0 5px;
518 width: 300px;
519 height: 30px;
520 color: $dark-grey;
521
522 &::-webkit-input-placeholder {
523 color: $light-grey;
524 }
525 }
526
527 &[type='submit'] {
528 border: medium none currentColor;
529 border-radius: 2px;
530 background: $almost-white;
531 padding: 0 10px;
532 height: 30px;
533 color: $dark-grey;
534
535 &:hover {
536 background: $white;
537 }
538 }
539 }
540 }
541
542 @media screen and (max-width: 64em) {
543 .toolbar-plugin {
544 input {
545 &[type='text'] {
546 width: 70%;
547 }
548 }
549 }
550 }
551
552 // CONTENT - LINKLIST PAGING
553 // 64em -> lg
554 .linklist-filters {
555 margin: 5px 0;
556 color: $dark-grey;
557 font-size: .9em;
558
559 a {
560 display: inline-block;
561 margin: 3px 0;
562 padding: 5px 8px;
563 text-decoration: none;
564 }
565
566 .filter-off {
567 background: $almost-white;
568 color: $dark-grey;
569 }
570
571 .filter-on {
572 background: var(--main-color);
573 color: $light-green;
574 }
575
576 .filter-block {
577 background: $red;
578 color: $almost-white;
579 }
580 }
581
582 .linklist-pages {
583 margin: 5px 0;
584 text-align: center;
585 color: $dark-grey;
586
587 a {
588 text-decoration: none;
589 color: $dark-grey;
590
591 &:hover {
592 color: $white;
593 }
594 }
595 }
596
597 %linksperpage-button {
598 display: inline-block;
599 width: 20px;
600 text-align: center;
601 }
602
603 .linksperpage {
604 margin: 5px 0;
605 text-align: right;
606 color: $dark-grey;
607 font-size: .9em;
608
609 form {
610 display: inline;
611 }
612
613 a {
614 @extend %linksperpage-button;
615
616 background: $almost-white;
617 padding: 5px;
618 text-decoration: none;
619 color: $dark-grey;
620
621 &.selected {
622 background: var(--main-color);
623 color: $white;
624 }
625 }
626
627 input {
628 &[type='text'] {
629 @extend %linksperpage-button;
630
631 margin: 0;
632 border: medium none currentColor;
633 background: $almost-white;
634 padding: 4px 5px 3px 8px;
635 height: 20px;
636 color: $dark-grey;
637 font-size: .8em;
638 }
639 }
640 }
641
642 // CONTENT - LINKLIST ITEMS
643 %private-border {
644 display: block;
645 position: absolute;
646 top: 0;
647 left: 3px;
648 z-index: 1;
649 background: $orange;
650 width: 2px;
651 height: 96%;
652 content: '';
653 }
654
655 .linklist-item {
656 position: relative;
657 margin: 0 0 10px;
658 box-shadow: 1px 1px 3px $light-grey;
659 background: $almost-white;
660
661 &.private {
662 &::before {
663 display: block;
664 position: absolute;
665 top: 0;
666 left: 0;
667 z-index: 1;
668 background: $orange;
669 width: 2px;
670 height: 100%;
671 content: '';
672 }
673 }
674 }
675
676 .linklist-item-buttons {
677 position: relative;
678 z-index: 99;
679 background: transparent;
680 width: 23px;
681 }
682
683 .linklist-item-buttons-right {
684 float: right;
685 margin-right: -25px;
686 }
687
688 .linklist-item-buttons * {
689 display: block;
690 float: left;
691 margin: auto;
692 width: 100%;
693 text-align: center;
694 }
695
696 .linklist-item-title {
697 position: relative;
698 margin: 0;
699 background: $almost-white;
700 word-wrap: break-word;
701
702 h2 {
703 margin: 0;
704 padding: 3px 10px 0;
705 line-height: 30px;
706 word-wrap: break-word;
707
708 a {
709 vertical-align: middle;
710 text-decoration: none;
711 color: $dark-grey;
712 font-size: .7em;
713
714 &:visited {
715 .linklist-link {
716 color: var(--dark-main-color);
717 }
718 }
719
720 &:hover {
721 color: $dark-grey;
722 }
723 }
724 }
725
726 .linklist-link {
727 color: var(--main-color);
728 font-size: 1.1em;
729
730 &:hover {
731 color: $dark-grey;
732 }
733 }
734
735 .label {
736 font-family: Arial, sans-serif;
737 font-size: .65em;
738 }
739
740 .label-private {
741 border: solid 1px $orange;
742 color: $orange;
743 }
744
745 .label-sticky {
746 border: solid 1px $blue;
747 color: $blue;
748 }
749 }
750
751 .fold-button {
752 display: none;
753 color: $dark-grey;
754 }
755
756 .linklist-item-editbuttons {
757 float: right;
758 padding: 8px 5px;
759
760 * {
761 display: block;
762 float: left;
763 margin: 0 1px;
764 }
765
766 a {
767 font-size: 1em;
768 }
769
770 .link-checkbox {
771 display: none;
772 }
773 }
774
775 .edit-link {
776 color: $blue;
777 font-size: 1.2em;
778 }
779
780 .delete-link {
781 color: $red !important;
782 font-size: 1.3em;
783 }
784
785 .pin-link {
786 font-size: 1.3em;
787 }
788
789 .pinned-link {
790 color: $blue !important;
791 }
792
793 .linklist-item-description {
794 position: relative;
795 padding: 0 10px;
796 line-height: 1.3em;
797 color: $dark-grey;
798 word-wrap: break-word;
799
800 a {
801 text-decoration: none;
802 color: var(--main-color);
803
804 &:hover {
805 color: $dark-grey;
806 }
807
808 &:visited {
809 color: var(--dark-main-color);
810 }
811 }
812 }
813
814 .linklist-item-thumbnail {
815 position: relative;
816 float: right;
817 z-index: 50;
818 margin: 0;
819 padding: 0 0 0 5px;
820 height: 90px;
821 }
822
823 .linklist-item-infos {
824 background: $background-linklist-info;
825 padding: 4px 8px;
826 color: $dark-grey;
827
828 a {
829 text-decoration: none;
830 color: $dark-grey;
831
832 &:hover {
833 color: $black;
834 }
835 }
836
837 .linklist-item-tags {
838 font-size: .8em;
839 }
840
841 .label-tag {
842 font-size: 1em;
843 }
844
845 .mobile-buttons {
846 text-align: right;
847 }
848
849 .linklist-plugin-icon {
850 display: inline-block;
851 margin: 0 2px;
852 width: 16px;
853 height: 16px;
854 }
855 }
856
857 .linklist-item-infos-dateblock {
858 font-size: .9em;
859 }
860
861 .linklist-plugin-icon {
862 width: 13px;
863 height: 13px;
864 }
865
866 .linklist-item-infos-url {
867 height: 23px;
868 overflow: hidden;
869 text-align: right;
870 text-overflow: ellipsis;
871 line-height: 23px;
872 white-space: nowrap;
873 font-size: .8em;
874 }
875
876 .linklist-item-infos-controls-group {
877 display: inline-block;
878 border-right: 1px solid $light-grey;
879 padding-right: 6px;
880 }
881
882 .ctrl-edit {
883 margin: 0 7px;
884 }
885
886 .ctrl-delete {
887 margin: 0 7px 0 0;
888 }
889
890 // 64em -> lg
891 @media screen and (max-width: 64em) {
892 .linklist-item-infos-url {
893 text-align: left;
894 }
895 }
896
897 // Footer
898 .footer-container {
899 margin: 20px 0;
900 padding: 5px;
901 text-align: center;
902 color: $dark-grey;
903
904 &::before {
905 display: block;
906 margin: 10px auto;
907 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
908 width: 80%;
909 height: 1px;
910 content: '';
911 }
912
913 a {
914 color: $dark-grey;
915 }
916 }
917
918 // PAGE FORM
919 %page-form-input {
920 margin: 10px 0;
921 border: solid 1px $form-input-border;
922 border-radius: 2px;
923 background: $form-input-background;
924 padding: 5px 5px 3px 15px;
925 width: 90%;
926 height: 35px;
927 color: $dark-grey;
928 box-sizing: border-box;
929 }
930
931 %page-form-button {
932 display: inline-block;
933 margin: 15px 5px;
934 border: 0;
935 box-shadow: 1px 1px 1px $form-input-border, -1px -1px 6px $form-input-border, -1px 1px 2px $form-input-border, 1px -1px 2px $form-input-border;
936 background: var(--main-color);
937 min-width: 150px;
938 height: 35px;
939 vertical-align: center;
940 text-decoration: none;
941 line-height: 35px;
942 color: $almost-white;
943 font-size: 1.2em;
944 font-weight: normal;
945 }
946
947 .page-form {
948 margin: 20px 0 0;
949 box-shadow: 1px 1px 2px $light-grey;
950 background: $almost-white;
951 overflow: hidden;
952 color: $dark-grey;
953
954 .window-title {
955 margin: 0 0 10px;
956 background: $almost-white;
957 padding: 10px 0;
958 width: 100%;
959 text-align: center;
960 color: var(--main-color);
961 }
962
963 .window-subtitle {
964 text-align: center;
965 }
966
967 a {
968 text-decoration: none;
969 color: var(--main-color);
970 font-weight: bold;
971
972 &.button {
973 @extend %page-form-button;
974 }
975 }
976
977 p {
978 margin: 0;
979 padding: 5px 10px;
980 }
981
982 input {
983 &[type='text'] {
984 @extend %page-form-input;
985
986 &::-webkit-input-placeholder {
987 color: $light-grey;
988 }
989 }
990
991 &[type='password'] {
992 @extend %page-form-input;
993
994 &::-webkit-input-placeholder {
995 color: $light-grey;
996 }
997 }
998
999 &[type='submit'] {
1000 @extend %page-form-button;
1001 }
1002 }
1003
1004 textarea {
1005 @extend %page-form-input;
1006
1007 padding: 15px 5px 3px 15px;
1008 min-height: 240px;
1009 resize: vertical;
1010 overflow-y: auto;
1011 word-wrap: break-word;
1012 }
1013
1014 select {
1015 color: $dark-grey;
1016 }
1017
1018 .button {
1019 &.button-red {
1020 background: $red;
1021 }
1022 }
1023
1024 .submit-buttons {
1025 margin-bottom: 10px;
1026 }
1027
1028 section {
1029 margin: 10px 0 25px;
1030 }
1031
1032 table,
1033 th,
1034 td {
1035 border-width: 1px 0;
1036 border-style: solid;
1037 border-color: $light-grey;
1038 }
1039
1040 th,
1041 td {
1042 padding: 5px;
1043 }
1044
1045 table {
1046 margin: auto;
1047 width: 90%;
1048
1049 .order {
1050 text-decoration: none;
1051 color: $dark-grey;
1052 }
1053 }
1054
1055 .awesomplete {
1056 width: 90%;
1057
1058 input {
1059 width: 100%;
1060 }
1061 }
1062
1063 div {
1064 .awesomplete {
1065 > ul {
1066 color: $black;
1067 }
1068 }
1069 }
1070 }
1071
1072 @media screen and (min-width: 64em) {
1073 .page-form {
1074 .submit-buttons {
1075 position: relative;
1076
1077 .button {
1078 &.button-red {
1079 position: absolute;
1080 right: 5%;
1081 }
1082 }
1083 }
1084 }
1085 }
1086
1087 @media screen and (max-width: 64em) {
1088 .page-form {
1089 .submit-buttons {
1090 .button {
1091 margin: auto;
1092 }
1093 }
1094 }
1095 }
1096
1097 // PAGE FORM - LIGHT
1098 .page-form-light {
1099 div,
1100 p {
1101 text-align: center;
1102 }
1103 }
1104
1105 // PAGE FORM - COMPLETE
1106 %page-form-valign {
1107 position: absolute;
1108 top: 50%;
1109 transform: translateY(-50%);
1110 }
1111
1112 .page-form-complete {
1113 div,
1114 p {
1115 color: $dark-grey;
1116 }
1117
1118 .form-label,
1119 .form-input {
1120 position: relative;
1121 height: 60px;
1122 }
1123
1124 .form-label {
1125 label {
1126 @extend %page-form-valign;
1127
1128 right: 0;
1129 padding: 0 20px;
1130 text-align: right;
1131 }
1132 }
1133
1134 .label-name {
1135 font-weight: bold;
1136 }
1137
1138 .label-desc {
1139 font-size: .8em;
1140 }
1141
1142 .form-input {
1143 input {
1144 @extend %page-form-valign;
1145
1146 &[type='text'],
1147 &[type='password'] {
1148 margin: 0;
1149 }
1150 }
1151
1152 select {
1153 &.align {
1154 @extend %page-form-valign;
1155 }
1156 }
1157 }
1158
1159 textarea {
1160 margin: 0;
1161 }
1162
1163 .timezone {
1164 @extend %page-form-valign;
1165 }
1166 }
1167
1168 // Awesomeplete fix
1169 div {
1170 &.awesomplete {
1171 width: inherit;
1172
1173 > input {
1174 display: inherit;
1175 }
1176
1177 > ul {
1178 z-index: 9999;
1179 }
1180 }
1181 }
1182
1183 form {
1184 &[name='linkform'] {
1185 &.page-form {
1186 overflow: visible;
1187 }
1188 }
1189 }
1190
1191 @media screen and (max-width: 64em) {
1192 %page-form-valign-mobile {
1193 position: inherit;
1194 top: inherit;
1195 transform: translateY(0);
1196 }
1197
1198 .page-form-complete {
1199 .form-label {
1200 height: inherit;
1201
1202 label {
1203 @extend %page-form-valign-mobile;
1204
1205 display: block;
1206 margin: 10px 0 0;
1207 text-align: left;
1208 }
1209 }
1210
1211 .form-input {
1212 text-align: center;
1213
1214 input {
1215 @extend %page-form-valign-mobile;
1216
1217 &[type='checkbox'] {
1218 position: absolute;
1219 top: 50%;
1220 right: 50%;
1221 transform: translateY(-50%);
1222 }
1223 }
1224 }
1225
1226 .timezone {
1227 @extend %page-form-valign-mobile;
1228 }
1229
1230 .radio-buttons {
1231 padding: 5px 15px;
1232 text-align: left;
1233 }
1234 }
1235
1236 .timezone-continent {
1237 &::after {
1238 white-space: pre;
1239 content: '\a\a';
1240 }
1241 }
1242 }
1243
1244 // Page visitor (page form extended)
1245 .page-visitor {
1246 color: $dark-grey;
1247 }
1248
1249 .page-error-container {
1250 color: $dark-grey;
1251
1252 h2 {
1253 margin: 70px 0 25px;
1254 }
1255
1256 pre {
1257 margin: 0 20%;
1258 padding: 20px 0;
1259 text-align: left;
1260 line-height: .7em;
1261 }
1262 }
1263
1264 // EDIT LINK
1265 .edit-link-container {
1266 .created-date {
1267 margin-bottom: 10px;
1268 color: $light-grey;
1269 }
1270 }
1271
1272 .loading-input {
1273 position: relative;
1274
1275 @keyframes around {
1276 0% {
1277 transform: rotate(0deg);
1278 }
1279
1280 100% {
1281 transform: rotate(360deg);
1282 }
1283 }
1284
1285 .icon-container {
1286 position: absolute;
1287 right: 60px;
1288 top: calc(50% - 10px);
1289 }
1290
1291 .loader {
1292 position: relative;
1293 height: 20px;
1294 width: 20px;
1295 display: inline-block;
1296 animation: around 5.4s infinite;
1297
1298 &::after,
1299 &::before {
1300 content: "";
1301 background: $form-input-background;
1302 position: absolute;
1303 display: inline-block;
1304 width: 100%;
1305 height: 100%;
1306 border-width: 2px;
1307 border-color: #333 #333 transparent transparent;
1308 border-style: solid;
1309 border-radius: 20px;
1310 box-sizing: border-box;
1311 top: 0;
1312 left: 0;
1313 animation: around 0.7s ease-in-out infinite;
1314 }
1315
1316 &::after {
1317 animation: around 0.7s ease-in-out 0.1s infinite;
1318 background: transparent;
1319 }
1320 }
1321 }
1322
1323 // LOGIN
1324 .login-form-container {
1325 .remember-me {
1326 margin: 5px 0;
1327 }
1328 }
1329
1330 // Search results
1331 .search-result {
1332 a {
1333 text-decoration: none;
1334 color: $white;
1335 }
1336
1337 .label-tag {
1338 border-color: $white;
1339
1340 .remove {
1341 margin: 0 0 0 5px;
1342 border-left: $white 1px solid;
1343 padding: 0 0 0 5px;
1344 }
1345 }
1346
1347 .label-private {
1348 border: 1px solid $white;
1349 }
1350 }
1351
1352 // TOOLS
1353 .tools-item {
1354 margin: 10px 0;
1355
1356 .pure-button {
1357 &:hover {
1358 background-color: var(--main-color);
1359 background-image: none;
1360 color: $almost-white;
1361 }
1362 }
1363 }
1364
1365 // PLUGIN ADMIN
1366 .pluginform-container {
1367 .mobile-row {
1368 font-size: .9em;
1369 }
1370
1371 .more {
1372 margin-top: 10px;
1373 }
1374 }
1375
1376 @media screen and (max-width: 64em) {
1377 .pluginform-container {
1378 .main-row {
1379 border-top-style: none;
1380 border-bottom-style: none;
1381
1382 td {
1383 border-top-style: none;
1384 border-bottom-style: none;
1385 }
1386 }
1387 }
1388 }
1389
1390 // IMPORT
1391 .import-field-container {
1392 margin: 15px 0;
1393 }
1394
1395 // TAG CLOUD
1396 .cloudtag-container {
1397 padding: 10px;
1398 text-align: center;
1399 text-decoration: none;
1400 color: $dark-grey;
1401
1402 a {
1403 text-decoration: none;
1404 color: $dark-grey;
1405 }
1406
1407 .count {
1408 color: $light-grey;
1409 }
1410 }
1411
1412 // TAG LIST
1413 .taglist-container {
1414 padding: 0 10px;
1415
1416 a {
1417 text-decoration: none;
1418 color: $dark-grey;
1419 }
1420
1421 .count {
1422 display: inline-block;
1423 width: 35px;
1424 text-align: right;
1425 color: $light-grey;
1426 }
1427
1428 .rename-tag-form {
1429 display: none;
1430 }
1431
1432 .delete-tag {
1433 display: none;
1434 color: $red;
1435 }
1436
1437 .rename-tag {
1438 color: $blue;
1439 }
1440
1441 .validate-rename-tag {
1442 color: var(--main-color);
1443 }
1444 }
1445
1446 // Picture wall CSS
1447 .picwall-container {
1448 clear: both;
1449 margin: 0 10px 10px;
1450 background-color: $almost-white;
1451 color: $dark-grey;
1452 }
1453
1454 .picwall-pictureframe {
1455 display: table-cell;
1456 position: relative;
1457 float: left;
1458 z-index: 5;
1459 margin: 2px;
1460 background-color: $almost-white;
1461 width: 90px;
1462 height: 90px;
1463 overflow: hidden;
1464 vertical-align: middle;
1465 text-align: center;
1466
1467 // Adapt the width of the image
1468 img {
1469 max-width: 100%;
1470 height: auto;
1471 color: transparent;
1472 }
1473
1474 a {
1475 text-decoration: none;
1476 }
1477
1478 span {
1479 &.info {
1480 display: none;
1481 font-family: Arial, sans-serif;
1482 }
1483 }
1484
1485 // CSS to show title when hovering an image - no javascript required.
1486 &:hover {
1487 span {
1488 &.info {
1489 display: block;
1490 position: absolute;
1491 top: 0;
1492 left: 0;
1493 background-color: $dark-shadow;
1494 width: 90px;
1495 height: 90px;
1496 text-align: left;
1497 color: $almost-white;
1498 font-size: 9pt;
1499 font-weight: bold;
1500 }
1501 }
1502 }
1503 }
1504
1505 .b-lazy {
1506 transition: opacity 500ms ease-in-out;
1507 opacity: 0;
1508 -webkit-transition: opacity 500ms ease-in-out;
1509 -moz-transition: opacity 500ms ease-in-out;
1510 -o-transition: opacity 500ms ease-in-out;
1511 min-width: 1px;
1512 min-height: 1px;
1513
1514 &.b-loaded {
1515 opacity: 1;
1516 }
1517 }
1518
1519 // DAILY
1520 .daily-desc {
1521 color: $light-grey;
1522 font-size: .8em;
1523
1524 a {
1525 text-decoration: none;
1526 color: $dark-grey;
1527
1528 &:hover {
1529 color: $light-grey;
1530 }
1531 }
1532 }
1533
1534 .daily-about {
1535 h3 {
1536 &::before,
1537 &::after {
1538 display: block;
1539 margin: 10px auto;
1540 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
1541 width: 90%;
1542 height: 1px;
1543 content: '';
1544 }
1545 }
1546 }
1547
1548 .daily-entry {
1549 padding: 0 10px;
1550
1551 .daily-entry-title {
1552 margin: 10px 0 0;
1553
1554 a {
1555 text-decoration: none;
1556 color: $black;
1557 }
1558
1559 &::after {
1560 display: block;
1561 margin: 5px auto;
1562 background: linear-gradient(to right, $white, $light-grey, $white);
1563 width: 70%;
1564 height: 1px;
1565 content: '';
1566 }
1567 }
1568
1569 .daily-entry-description {
1570 padding: 5px 5px 0;
1571 text-align: justify;
1572 font-size: .9em;
1573 word-wrap: break-word;
1574 }
1575
1576 .daily-entry-tags {
1577 padding: 0 5px 5px;
1578 font-size: .8em;
1579 }
1580 }
1581
1582 .daily-entry-thumbnail {
1583 float: left;
1584 margin: 15px 5px 5px 15px;
1585 }
1586
1587 .daily-entry-description {
1588 a {
1589 text-decoration: none;
1590 color: var(--main-color);
1591
1592 &:hover {
1593 text-shadow: 1px 1px $background-linklist-info;
1594 }
1595
1596 &:visited {
1597 color: var(--dark-main-color);
1598 }
1599 }
1600 }
1601
1602 // Fix empty bookmarklet name in Firefox
1603 .pure-button {
1604 -moz-user-select: auto;
1605 }
1606
1607 .tag-sort {
1608 margin-top: 30px;
1609 text-align: center;
1610
1611 a {
1612 background: $almost-white;
1613 display: inline-block;
1614 padding: 5px;
1615 text-decoration: none;
1616 color: $dark-grey;
1617 }
1618 }
1619
1620 // Markdown
1621 .markdown {
1622 p {
1623 margin: 0 !important;
1624 }
1625
1626 p + p {
1627 margin: .5em 0 0 !important;
1628 }
1629
1630 * {
1631 &:first-child {
1632 margin-top: 0 !important;
1633 }
1634
1635 &:last-child {
1636 margin-bottom: 5px !important;
1637 }
1638 }
1639 }
1640
1641 // Pure Button
1642 .pure-button-success,
1643 .pure-button-error,
1644 .pure-button-warning,
1645 .pure-button-primary,
1646 .pure-button-shaarli,
1647 .pure-button-secondary {
1648 border-radius: 4px;
1649 text-shadow: 0 1px 1px $dark-shadow;
1650 color: $white !important;
1651 }
1652
1653 .pure-button-shaarli {
1654 background-color: var(--main-color);
1655 }
1656
1657 .progressbar {
1658 border-radius: 6px;
1659 background-color: var(--main-color);
1660 padding: 1px;
1661
1662 > div {
1663 border-radius: 10px;
1664 background:
1665 repeating-linear-gradient(
1666 -45deg,
1667 $almost-white,
1668 $almost-white 6px,
1669 var(--background-color) 6px,
1670 var(--background-color) 12px
1671 );
1672 width: 0%;
1673 height: 10px;
1674 }
1675 }
1676
1677 .thumbnails-page-container {
1678 .progress-counter {
1679 padding: 10px 0 20px;
1680 }
1681
1682 .thumbnail-placeholder {
1683 margin: 10px auto;
1684 background-color: $light-grey;
1685 }
1686
1687 .thumbnail-link-title {
1688 padding-bottom: 20px;
1689 overflow: hidden;
1690 text-overflow: ellipsis;
1691 white-space: nowrap;
1692 }
1693 }
1694
1695 // Print rules
1696 @media print {
1697 .shaarli-menu {
1698 position: absolute;
1699 }
1700
1701 .search-linklist,
1702 .link-count-block,
1703 .linklist-item-infos-controls-group,
1704 .mobile-buttons {
1705 display: none;
1706 }
1707 }