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