]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - assets/default/scss/shaarli.scss
a7f091e95d938f8ce9c6d10202f2288867fb7390
[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 .search-highlight {
676 background-color: yellow;
677 }
678 }
679
680 .linklist-item-buttons {
681 position: relative;
682 z-index: 99;
683 background: transparent;
684 width: 23px;
685 }
686
687 .linklist-item-buttons-right {
688 float: right;
689 margin-right: -25px;
690 }
691
692 .linklist-item-buttons * {
693 display: block;
694 float: left;
695 margin: auto;
696 width: 100%;
697 text-align: center;
698 }
699
700 .linklist-item-title {
701 position: relative;
702 margin: 0;
703 background: $almost-white;
704 word-wrap: break-word;
705
706 h2 {
707 margin: 0;
708 padding: 3px 10px 0;
709 line-height: 30px;
710 word-wrap: break-word;
711
712 a {
713 vertical-align: middle;
714 text-decoration: none;
715 color: $dark-grey;
716 font-size: .7em;
717
718 &:visited {
719 .linklist-link {
720 color: var(--dark-main-color);
721 }
722 }
723
724 &:hover {
725 color: $dark-grey;
726 }
727 }
728 }
729
730 .linklist-link {
731 color: var(--main-color);
732 font-size: 1.1em;
733
734 &:hover {
735 color: $dark-grey;
736 }
737 }
738
739 .label {
740 font-family: Arial, sans-serif;
741 font-size: .65em;
742 }
743
744 .label-private {
745 border: solid 1px $orange;
746 color: $orange;
747 }
748
749 .label-sticky {
750 border: solid 1px $blue;
751 color: $blue;
752 }
753 }
754
755 .fold-button {
756 display: none;
757 color: $dark-grey;
758 }
759
760 .linklist-item-editbuttons {
761 float: right;
762 padding: 8px 5px;
763
764 * {
765 display: block;
766 float: left;
767 margin: 0 1px;
768 }
769
770 a {
771 font-size: 1em;
772 }
773
774 .link-checkbox {
775 display: none;
776 }
777 }
778
779 .edit-link {
780 color: $blue;
781 font-size: 1.2em;
782 }
783
784 .delete-link {
785 color: $red !important;
786 font-size: 1.3em;
787 }
788
789 .pin-link {
790 font-size: 1.3em;
791 }
792
793 .pinned-link {
794 color: $blue !important;
795 }
796
797 .linklist-item-description {
798 position: relative;
799 padding: 0 10px;
800 line-height: 1.3em;
801 color: $dark-grey;
802 word-wrap: break-word;
803
804 a {
805 text-decoration: none;
806 color: var(--main-color);
807
808 &:hover {
809 color: $dark-grey;
810 }
811
812 &:visited {
813 color: var(--dark-main-color);
814 }
815 }
816 }
817
818 .linklist-item-thumbnail {
819 position: relative;
820 float: right;
821 z-index: 50;
822 margin: 0;
823 padding: 0 0 0 5px;
824 height: 90px;
825 }
826
827 .linklist-item-infos {
828 background: $background-linklist-info;
829 padding: 4px 8px;
830 color: $dark-grey;
831
832 a {
833 text-decoration: none;
834 color: $dark-grey;
835
836 &:hover {
837 color: $black;
838 }
839 }
840
841 .linklist-item-tags {
842 font-size: .8em;
843 }
844
845 .label-tag {
846 font-size: 1em;
847 }
848
849 .mobile-buttons {
850 text-align: right;
851 }
852
853 .linklist-plugin-icon {
854 display: inline-block;
855 margin: 0 2px;
856 width: 16px;
857 height: 16px;
858 }
859 }
860
861 .linklist-item-infos-dateblock {
862 font-size: .9em;
863 }
864
865 .linklist-plugin-icon {
866 width: 13px;
867 height: 13px;
868 }
869
870 .linklist-item-infos-url {
871 height: 23px;
872 overflow: hidden;
873 text-align: right;
874 text-overflow: ellipsis;
875 line-height: 23px;
876 white-space: nowrap;
877 font-size: .8em;
878 }
879
880 .linklist-item-infos-controls-group {
881 display: inline-block;
882 border-right: 1px solid $light-grey;
883 padding-right: 6px;
884 }
885
886 .ctrl-edit {
887 margin: 0 7px;
888 }
889
890 .ctrl-delete {
891 margin: 0 7px 0 0;
892 }
893
894 // 64em -> lg
895 @media screen and (max-width: 64em) {
896 .linklist-item-infos-url {
897 text-align: left;
898 }
899 }
900
901 // Footer
902 .footer-container {
903 margin: 20px 0;
904 padding: 5px;
905 text-align: center;
906 color: $dark-grey;
907
908 &::before {
909 display: block;
910 margin: 10px auto;
911 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
912 width: 80%;
913 height: 1px;
914 content: '';
915 }
916
917 a {
918 color: $dark-grey;
919 }
920 }
921
922 // PAGE FORM
923 %page-form-input {
924 margin: 10px 0;
925 border: solid 1px $form-input-border;
926 border-radius: 2px;
927 background: $form-input-background;
928 padding: 5px 5px 3px 15px;
929 width: 90%;
930 height: 35px;
931 color: $dark-grey;
932 box-sizing: border-box;
933 }
934
935 %page-form-button {
936 display: inline-block;
937 margin: 15px 5px;
938 border: 0;
939 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;
940 background: var(--main-color);
941 min-width: 150px;
942 height: 35px;
943 vertical-align: center;
944 text-decoration: none;
945 line-height: 35px;
946 color: $almost-white;
947 font-size: 1.2em;
948 font-weight: normal;
949 }
950
951 .page-form {
952 margin: 20px 0 0;
953 box-shadow: 1px 1px 2px $light-grey;
954 background: $almost-white;
955 overflow: hidden;
956 color: $dark-grey;
957
958 .window-title {
959 margin: 0 0 10px;
960 background: $almost-white;
961 padding: 10px 0;
962 width: 100%;
963 text-align: center;
964 color: var(--main-color);
965 }
966
967 .window-subtitle {
968 text-align: center;
969 }
970
971 a {
972 text-decoration: none;
973 color: var(--main-color);
974 font-weight: bold;
975
976 &.button {
977 @extend %page-form-button;
978 }
979 }
980
981 p {
982 margin: 0;
983 padding: 5px 10px;
984 }
985
986 input {
987 &[type='text'] {
988 @extend %page-form-input;
989
990 &::-webkit-input-placeholder {
991 color: $light-grey;
992 }
993 }
994
995 &[type='password'] {
996 @extend %page-form-input;
997
998 &::-webkit-input-placeholder {
999 color: $light-grey;
1000 }
1001 }
1002
1003 &[type='submit'] {
1004 @extend %page-form-button;
1005 }
1006 }
1007
1008 textarea {
1009 @extend %page-form-input;
1010
1011 padding: 15px 5px 3px 15px;
1012 min-height: 240px;
1013 resize: vertical;
1014 overflow-y: auto;
1015 word-wrap: break-word;
1016 }
1017
1018 select {
1019 color: $dark-grey;
1020 }
1021
1022 .button {
1023 &.button-red {
1024 background: $red;
1025 }
1026
1027 &.button-grey {
1028 background: $light-grey;
1029 }
1030 }
1031
1032 .submit-buttons {
1033 margin-bottom: 10px;
1034 }
1035
1036 section {
1037 margin: 10px 0 25px;
1038 }
1039
1040 table,
1041 th,
1042 td {
1043 border-width: 1px 0;
1044 border-style: solid;
1045 border-color: $light-grey;
1046 }
1047
1048 th,
1049 td {
1050 padding: 5px;
1051 }
1052
1053 table {
1054 margin: 10px auto 25px auto;
1055 width: 90%;
1056
1057 .order {
1058 text-decoration: none;
1059 color: $dark-grey;
1060 }
1061 }
1062
1063 .awesomplete {
1064 width: 90%;
1065
1066 input {
1067 width: 100%;
1068 }
1069 }
1070
1071 div {
1072 .awesomplete {
1073 > ul {
1074 color: $black;
1075 }
1076 }
1077 }
1078 }
1079
1080 @media screen and (min-width: 64em) {
1081 .page-form {
1082 .submit-buttons {
1083 position: relative;
1084
1085 .button {
1086 &.button-red {
1087 position: absolute;
1088 right: 5%;
1089 }
1090
1091 &.button-grey {
1092 position: absolute;
1093 left: 5%;
1094 }
1095 }
1096 }
1097 }
1098 }
1099
1100 @media screen and (max-width: 64em) {
1101 .page-form {
1102 .submit-buttons {
1103 .button {
1104 margin: auto;
1105 }
1106 }
1107 }
1108 }
1109
1110 // PAGE FORM - LIGHT
1111 .page-form-light {
1112 div,
1113 p {
1114 text-align: center;
1115 }
1116 }
1117
1118 // PAGE FORM - COMPLETE
1119 %page-form-valign {
1120 position: absolute;
1121 top: 50%;
1122 transform: translateY(-50%);
1123 }
1124
1125 .page-form-complete {
1126 div,
1127 p {
1128 color: $dark-grey;
1129 }
1130
1131 .form-label,
1132 .form-input {
1133 position: relative;
1134 height: 60px;
1135 }
1136
1137 .form-label {
1138 label {
1139 @extend %page-form-valign;
1140
1141 right: 0;
1142 padding: 0 20px;
1143 text-align: right;
1144 }
1145 }
1146
1147 .label-name {
1148 font-weight: bold;
1149 }
1150
1151 .label-desc {
1152 font-size: .8em;
1153 }
1154
1155 .form-input {
1156 input {
1157 @extend %page-form-valign;
1158
1159 &[type='text'],
1160 &[type='password'] {
1161 margin: 0;
1162 }
1163 }
1164
1165 select {
1166 &.align {
1167 @extend %page-form-valign;
1168 }
1169 }
1170 }
1171
1172 textarea {
1173 margin: 0;
1174 }
1175
1176 .timezone {
1177 @extend %page-form-valign;
1178 }
1179 }
1180
1181 // Awesomeplete fix
1182 div {
1183 &.awesomplete {
1184 width: inherit;
1185
1186 > input {
1187 display: inherit;
1188 }
1189
1190 > ul {
1191 z-index: 9999;
1192 }
1193 }
1194 }
1195
1196 form {
1197 &[name='linkform'] {
1198 &.page-form {
1199 overflow: visible;
1200 }
1201 }
1202 }
1203
1204 @media screen and (max-width: 64em) {
1205 %page-form-valign-mobile {
1206 position: inherit;
1207 top: inherit;
1208 transform: translateY(0);
1209 }
1210
1211 .page-form-complete {
1212 .form-label {
1213 height: inherit;
1214
1215 label {
1216 @extend %page-form-valign-mobile;
1217
1218 display: block;
1219 margin: 10px 0 0;
1220 text-align: left;
1221 }
1222 }
1223
1224 .form-input {
1225 text-align: center;
1226
1227 input {
1228 @extend %page-form-valign-mobile;
1229
1230 &[type='checkbox'] {
1231 position: absolute;
1232 top: 50%;
1233 right: 50%;
1234 transform: translateY(-50%);
1235 }
1236 }
1237 }
1238
1239 .timezone {
1240 @extend %page-form-valign-mobile;
1241 }
1242
1243 .radio-buttons {
1244 padding: 5px 15px;
1245 text-align: left;
1246 }
1247 }
1248
1249 .timezone-continent {
1250 &::after {
1251 white-space: pre;
1252 content: '\a\a';
1253 }
1254 }
1255 }
1256
1257 // Page visitor (page form extended)
1258 .page-visitor {
1259 color: $dark-grey;
1260 }
1261
1262 .page-error-container {
1263 color: $dark-grey;
1264
1265 h2 {
1266 margin: 70px 0 25px;
1267 }
1268
1269 pre {
1270 margin: 0 20%;
1271 padding: 20px 0;
1272 text-align: left;
1273 line-height: .7em;
1274 }
1275 }
1276
1277 // EDIT LINK
1278 .edit-link-container {
1279 .created-date {
1280 margin-bottom: 10px;
1281 color: $light-grey;
1282 }
1283 }
1284
1285 .loading-input {
1286 position: relative;
1287
1288 @keyframes around {
1289 0% {
1290 transform: rotate(0deg);
1291 }
1292
1293 100% {
1294 transform: rotate(360deg);
1295 }
1296 }
1297
1298 .icon-container {
1299 position: absolute;
1300 right: 60px;
1301 top: calc(50% - 10px);
1302 }
1303
1304 .loader {
1305 position: relative;
1306 height: 20px;
1307 width: 20px;
1308 display: inline-block;
1309 animation: around 5.4s infinite;
1310
1311 &::after,
1312 &::before {
1313 content: "";
1314 background: $form-input-background;
1315 position: absolute;
1316 display: inline-block;
1317 width: 100%;
1318 height: 100%;
1319 border-width: 2px;
1320 border-color: #333 #333 transparent transparent;
1321 border-style: solid;
1322 border-radius: 20px;
1323 box-sizing: border-box;
1324 top: 0;
1325 left: 0;
1326 animation: around 0.7s ease-in-out infinite;
1327 }
1328
1329 &::after {
1330 animation: around 0.7s ease-in-out 0.1s infinite;
1331 background: transparent;
1332 }
1333 }
1334 }
1335
1336 // LOGIN
1337 .login-form-container {
1338 .remember-me {
1339 margin: 5px 0;
1340 }
1341 }
1342
1343 // Search results
1344 .search-result {
1345 a {
1346 text-decoration: none;
1347 color: $white;
1348 }
1349
1350 .label-tag {
1351 border-color: $white;
1352
1353 .remove {
1354 margin: 0 0 0 5px;
1355 border-left: $white 1px solid;
1356 padding: 0 0 0 5px;
1357 }
1358 }
1359
1360 .label-private {
1361 border: 1px solid $white;
1362 }
1363 }
1364
1365 // TOOLS
1366 .tools-item {
1367 margin: 10px 0;
1368
1369 .pure-button {
1370 &:hover {
1371 background-color: var(--main-color);
1372 background-image: none;
1373 color: $almost-white;
1374 }
1375 }
1376 }
1377
1378 // PLUGIN ADMIN
1379 .pluginform-container {
1380 .mobile-row {
1381 font-size: .9em;
1382 }
1383
1384 .more {
1385 margin-top: 10px;
1386 }
1387 }
1388
1389 @media screen and (max-width: 64em) {
1390 .pluginform-container {
1391 .main-row {
1392 border-top-style: none;
1393 border-bottom-style: none;
1394
1395 td {
1396 border-top-style: none;
1397 border-bottom-style: none;
1398 }
1399 }
1400 }
1401 }
1402
1403 // IMPORT
1404 .import-field-container {
1405 margin: 15px 0;
1406 }
1407
1408 // TAG CLOUD
1409 .cloudtag-container {
1410 padding: 10px;
1411 text-align: center;
1412 text-decoration: none;
1413 color: $dark-grey;
1414
1415 a {
1416 text-decoration: none;
1417 color: $dark-grey;
1418 }
1419
1420 .count {
1421 color: $light-grey;
1422 }
1423 }
1424
1425 // TAG LIST
1426 .taglist-container {
1427 padding: 0 10px;
1428
1429 a {
1430 text-decoration: none;
1431 color: $dark-grey;
1432 }
1433
1434 .count {
1435 display: inline-block;
1436 width: 35px;
1437 text-align: right;
1438 color: $light-grey;
1439 }
1440
1441 .rename-tag-form {
1442 display: none;
1443 }
1444
1445 .delete-tag {
1446 display: none;
1447 color: $red;
1448 }
1449
1450 .rename-tag {
1451 color: $blue;
1452 }
1453
1454 .validate-rename-tag {
1455 color: var(--main-color);
1456 }
1457 }
1458
1459 // Picture wall CSS
1460 .picwall-container {
1461 clear: both;
1462 margin: 0 10px 10px;
1463 background-color: $almost-white;
1464 color: $dark-grey;
1465 }
1466
1467 .picwall-pictureframe {
1468 display: table-cell;
1469 position: relative;
1470 float: left;
1471 z-index: 5;
1472 margin: 2px;
1473 background-color: $almost-white;
1474 width: 90px;
1475 height: 90px;
1476 overflow: hidden;
1477 vertical-align: middle;
1478 text-align: center;
1479
1480 // Adapt the width of the image
1481 img {
1482 max-width: 100%;
1483 height: auto;
1484 color: transparent;
1485 }
1486
1487 a {
1488 text-decoration: none;
1489 }
1490
1491 span {
1492 &.info {
1493 display: none;
1494 font-family: Arial, sans-serif;
1495 }
1496 }
1497
1498 // CSS to show title when hovering an image - no javascript required.
1499 &:hover {
1500 span {
1501 &.info {
1502 display: block;
1503 position: absolute;
1504 top: 0;
1505 left: 0;
1506 background-color: $dark-shadow;
1507 width: 90px;
1508 height: 90px;
1509 text-align: left;
1510 color: $almost-white;
1511 font-size: 9pt;
1512 font-weight: bold;
1513 }
1514 }
1515 }
1516 }
1517
1518 .b-lazy {
1519 transition: opacity 500ms ease-in-out;
1520 opacity: 0;
1521 -webkit-transition: opacity 500ms ease-in-out;
1522 -moz-transition: opacity 500ms ease-in-out;
1523 -o-transition: opacity 500ms ease-in-out;
1524 min-width: 1px;
1525 min-height: 1px;
1526
1527 &.b-loaded {
1528 opacity: 1;
1529 }
1530 }
1531
1532 // DAILY
1533 .daily-desc {
1534 color: $light-grey;
1535 font-size: .8em;
1536
1537 a {
1538 text-decoration: none;
1539 color: $dark-grey;
1540
1541 &:hover {
1542 color: $light-grey;
1543 }
1544 }
1545 }
1546
1547 .daily-about {
1548 h3 {
1549 &::before,
1550 &::after {
1551 display: block;
1552 margin: 10px auto;
1553 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
1554 width: 90%;
1555 height: 1px;
1556 content: '';
1557 }
1558 }
1559 }
1560
1561 .daily-entry {
1562 padding: 0 10px;
1563
1564 .daily-entry-title {
1565 margin: 10px 0 0;
1566
1567 a {
1568 text-decoration: none;
1569 color: $black;
1570 }
1571
1572 &::after {
1573 display: block;
1574 margin: 5px auto;
1575 background: linear-gradient(to right, $white, $light-grey, $white);
1576 width: 70%;
1577 height: 1px;
1578 content: '';
1579 }
1580 }
1581
1582 .daily-entry-description {
1583 padding: 5px 5px 0;
1584 text-align: justify;
1585 font-size: .9em;
1586 word-wrap: break-word;
1587 }
1588
1589 .daily-entry-tags {
1590 padding: 0 5px 5px;
1591 font-size: .8em;
1592 }
1593 }
1594
1595 .daily-entry-thumbnail {
1596 float: left;
1597 margin: 15px 5px 5px 15px;
1598 }
1599
1600 .daily-entry-description {
1601 a {
1602 text-decoration: none;
1603 color: var(--main-color);
1604
1605 &:hover {
1606 text-shadow: 1px 1px $background-linklist-info;
1607 }
1608
1609 &:visited {
1610 color: var(--dark-main-color);
1611 }
1612 }
1613 }
1614
1615 // Fix empty bookmarklet name in Firefox
1616 .pure-button {
1617 -moz-user-select: auto;
1618 }
1619
1620 .tag-sort {
1621 margin-top: 30px;
1622 text-align: center;
1623
1624 a {
1625 background: $almost-white;
1626 display: inline-block;
1627 padding: 5px;
1628 text-decoration: none;
1629 color: $dark-grey;
1630 }
1631 }
1632
1633 // Markdown
1634 .markdown {
1635 p {
1636 margin: 0 !important;
1637 }
1638
1639 p + p {
1640 margin: .5em 0 0 !important;
1641 }
1642
1643 * {
1644 &:first-child {
1645 margin-top: 0 !important;
1646 }
1647
1648 &:last-child {
1649 margin-bottom: 5px !important;
1650 }
1651 }
1652 }
1653
1654 // Pure Button
1655 .pure-button-success,
1656 .pure-button-error,
1657 .pure-button-warning,
1658 .pure-button-primary,
1659 .pure-button-shaarli,
1660 .pure-button-secondary {
1661 border-radius: 4px;
1662 text-shadow: 0 1px 1px $dark-shadow;
1663 color: $white !important;
1664 }
1665
1666 .pure-button-shaarli {
1667 background-color: var(--main-color);
1668 }
1669
1670 .progressbar {
1671 border-radius: 6px;
1672 background-color: var(--main-color);
1673 padding: 1px;
1674
1675 > div {
1676 border-radius: 10px;
1677 background:
1678 repeating-linear-gradient(
1679 -45deg,
1680 $almost-white,
1681 $almost-white 6px,
1682 var(--background-color) 6px,
1683 var(--background-color) 12px
1684 );
1685 width: 0%;
1686 height: 10px;
1687 }
1688 }
1689
1690 .thumbnails-page-container {
1691 .progress-counter {
1692 padding: 10px 0 20px;
1693 }
1694
1695 .thumbnail-placeholder {
1696 margin: 10px auto;
1697 background-color: $light-grey;
1698 }
1699
1700 .thumbnail-link-title {
1701 padding-bottom: 20px;
1702 overflow: hidden;
1703 text-overflow: ellipsis;
1704 white-space: nowrap;
1705 }
1706 }
1707
1708 // SERVER PAGE
1709
1710 .server-tables-page,
1711 .server-tables {
1712 .window-subtitle {
1713 &::before {
1714 display: block;
1715 margin: 8px auto;
1716 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
1717 width: 50%;
1718 height: 1px;
1719 content: '';
1720 }
1721 }
1722
1723 .server-row {
1724 p {
1725 height: 25px;
1726 padding: 0 10px;
1727 }
1728 }
1729
1730 .server-label {
1731 text-align: right;
1732 font-weight: bold;
1733 }
1734
1735 i {
1736 &.fa-color-green {
1737 color: $main-green;
1738 }
1739
1740 &.fa-color-orange {
1741 color: $orange;
1742 }
1743
1744 &.fa-color-red {
1745 color: $red;
1746 }
1747 }
1748
1749 @media screen and (max-width: 64em) {
1750 .server-label {
1751 text-align: center;
1752 }
1753
1754 .server-row {
1755 p {
1756 text-align: center;
1757 }
1758 }
1759 }
1760 }
1761
1762 // Batch creation
1763 input[name='save_edit_batch'] {
1764 @extend %page-form-button;
1765 }
1766
1767 .addlink-batch-show-more {
1768 display: flex;
1769 align-items: center;
1770 margin: 20px 0 8px;
1771
1772 a {
1773 color: var(--main-color);
1774 text-decoration: none;
1775 }
1776
1777 &::before,
1778 &::after {
1779 content: "";
1780 flex-grow: 1;
1781 background: rgba(0, 0, 0, 0.35);
1782 height: 1px;
1783 font-size: 0;
1784 line-height: 0;
1785 }
1786
1787 &::before {
1788 margin: 0 16px 0 0;
1789 }
1790
1791 &::after {
1792 margin: 0 0 0 16px;
1793 }
1794 }
1795
1796 .dark-layer {
1797 display: none;
1798 position: fixed;
1799 height: 100%;
1800 width: 100%;
1801 z-index: 998;
1802 background-color: rgba(0, 0, 0, .75);
1803 color: #fff;
1804
1805 .screen-center {
1806 display: flex;
1807 flex-direction: column;
1808 justify-content: center;
1809 align-items: center;
1810 text-align: center;
1811 min-height: 100vh;
1812 }
1813
1814 .progressbar {
1815 width: 33%;
1816 }
1817 }
1818
1819 .addlink-batch-form-block {
1820 .pure-alert {
1821 margin: 25px 0 0 0;
1822 }
1823 }
1824
1825 // Print rules
1826 @media print {
1827 .shaarli-menu {
1828 position: absolute;
1829 }
1830
1831 .search-linklist,
1832 .link-count-block,
1833 .linklist-item-infos-controls-group,
1834 .mobile-buttons {
1835 display: none;
1836 }
1837 }