]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - assets/default/scss/shaarli.scss
Display error details even with dev.debug set to false
[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;
96746d71
A
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');
ad5c7570
A
77}
78
79@font-face {
c69585f3
A
80 font-family: 'Roboto';
81 font-weight: 700;
82 font-style: normal;
96746d71
A
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');
c69585f3
A
88}
89
90body,
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
402b0346 102@media screen and (min-width: 35.5em) {
c69585f3
A
103 .pure-u-sm-0 {
104 display: none !important;
105 }
106
107 .pure-u-sm-visible {
108 display: inline-block !important;
109 }
402b0346 110}
c69585f3 111
402b0346 112@media screen and (min-width: 48em) {
c69585f3
A
113 .pure-u-md-0 {
114 display: none !important;
115 }
116
117 .pure-u-md-visible {
118 display: inline-block !important;
119 }
402b0346 120}
c69585f3 121
402b0346 122@media screen and (min-width: 64em) {
c69585f3
A
123 .pure-u-lg-0 {
124 display: none !important;
125 }
126
127 .pure-u-lg-visible {
128 display: inline-block !important;
129 }
402b0346 130}
c69585f3 131
402b0346 132@media screen and (min-width: 80em) {
c69585f3
A
133 .pure-u-xl-0 {
134 display: none !important;
135 }
136
137 .pure-u-xl-visible {
138 display: inline-block !important;
139 }
402b0346
A
140}
141
c69585f3
A
142// Make pure-extras alert closable.
143.pure-alert-closable {
144 .fa-times {
402b0346 145 float: right;
c69585f3 146 }
402b0346 147}
c69585f3 148
402b0346 149.pure-alert-close {
c69585f3 150 cursor: pointer;
402b0346
A
151}
152
153.pure-alert-success {
a5a0c039 154 background-color: var(--main-color);
402b0346
A
155}
156
28f26524
A
157.pure-alert-warning {
158 a {
159 color: $warning-text;
160 font-weight: bold;
161 }
162}
163
e85b7a05
A
164.page-single-alert {
165 margin-top: 100px;
166}
167
c69585f3
A
168.anchor {
169 &:target {
402b0346 170 padding-top: 40px;
c69585f3 171 }
402b0346 172}
c69585f3
A
173
174// MENU
402b0346 175.shaarli-menu {
c69585f3
A
176 position: fixed;
177 top: 0;
178 transition: max-height .5s;
179 z-index: 999;
a5a0c039 180 background: var(--main-color);
c69585f3
A
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 }
402b0346
A
191}
192
402b0346 193.pure-menu-item {
c69585f3
A
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 }
402b0346
A
207}
208
209.head-logo {
c69585f3
A
210 float: left;
211 margin: 0 5px 0 0;
402b0346
A
212}
213
c69585f3
A
214%menu-link {
215 padding: .8em 1em;
216 color: $almost-white;
402b0346
A
217}
218
c69585f3
A
219%menu-link-hover {
220 background: transparent;
221 color: $white;
402b0346
A
222}
223
c69585f3
A
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 }
402b0346
A
235}
236
c69585f3
A
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 }
402b0346
A
250}
251
c69585f3
A
252.menu-toggle {
253 display: none;
254 position: absolute;
255 top: 5px;
256 right: 0;
257 width: 34px;
258 height: 45px;
259
260 .bar {
402b0346 261 display: block;
402b0346
A
262 position: absolute;
263 top: 18px;
264 right: 7px;
c69585f3
A
265 border-radius: 100px;
266 background-color: $light-green;
267 width: 20px;
268 height: 2px;
269 transition-duration: .5s;
402b0346 270
c69585f3
A
271 &:first-child {
272 transform: translateY(-6px);
273 }
274 }
402b0346 275
c69585f3
A
276 &.x {
277 .bar {
278 transform: rotate(45deg);
402b0346 279
c69585f3
A
280 &:first-child {
281 transform: rotate(-45deg);
282 }
283 }
284 }
402b0346
A
285}
286
287@media screen and (max-width: 64em) {
c69585f3
A
288 .menu-toggle {
289 display: block;
290 }
402b0346
A
291}
292
293.header-buttons {
c69585f3 294 text-align: right;
402b0346
A
295}
296
297.linkcount {
c69585f3
A
298 color: $dark-grey;
299 font-size: .8em;
402b0346
A
300}
301
302@media screen and (min-width: 64em) {
c69585f3
A
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 }
402b0346 327 }
c69585f3 328 }
402b0346 329
c69585f3
A
330 button {
331 border: 0;
402b0346 332 border-radius: 2px;
a5a0c039 333 background-color: var(--main-color);
c69585f3
A
334 padding: 4px 8px 6px;
335 color: $almost-white;
336 }
402b0346
A
337}
338
c69585f3
A
339@media screen and (max-width: 64em) {
340 .searchform {
341 margin: 0 auto;
342 max-width: 260px;
343 }
402b0346
A
344}
345
c69585f3
A
346.search-tagcloud {
347 button {
f210d94f 348 width: 90%;
c69585f3 349 }
402b0346
A
350}
351
f210d94f 352@media screen and (max-width: 64em) {
c69585f3
A
353 .search-linklist {
354 button {
355 width: 100%;
f210d94f 356 }
402b0346 357
c69585f3
A
358 .awesomplete {
359 margin: 5px 0;
402b0346 360 }
c69585f3 361 }
402b0346
A
362}
363
c69585f3
A
364.header-search,
365.search-linklist,
366.search-tagcloud {
367 button {
368 &:hover {
a5a0c039 369 color: var(--background-color);
c69585f3
A
370 }
371 }
29a837f3
A
372}
373
c69585f3
A
374.header-search,
375.search-linklist {
376 padding: 6px 0;
29a837f3
A
377}
378
c69585f3 379@media screen and (max-width: 64em) {
96746d71 380 .header-search,
c69585f3
A
381 .header-search * {
382 visibility: hidden;
383 }
402b0346
A
384}
385
c69585f3
A
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;
c69585f3 392 color: $dark-grey;
70401690
A
393}
394
402b0346 395.subheader-form {
c69585f3
A
396 display: block;
397 position: fixed;
398 visibility: hidden;
399 z-index: 999;
a5a0c039 400 background: var(--main-color);
c69585f3
A
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 }
402b0346 414 }
c69585f3 415 }
402b0346 416
c69585f3
A
417 &[type='submit'] {
418 display: inline-block;
419 margin: 0 0 5px;
420 border: 1px solid $almost-white;
402b0346 421 border-radius: 2px;
a5a0c039 422 background: var(--main-color);
c69585f3
A
423 padding: 4px 0;
424 width: 100px;
425 height: 28px;
426 color: $almost-white;
402b0346 427
c69585f3
A
428 &:hover {
429 background: $almost-white;
a5a0c039 430 color: var(--main-color);
c69585f3
A
431 }
432 }
433
434 .remember-me {
435 @extend %subheader-form-input;
402b0346 436
402b0346 437 display: inline-block;
402b0346 438 cursor: pointer;
c69585f3
A
439 padding: 5px 20px 3px;
440 width: auto;
402b0346 441
c69585f3
A
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 }
402b0346
A
458}
459
c69585f3
A
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 }
402b0346
A
472}
473
c69585f3
A
474@media screen and (min-width: 64em) {
475 .subheader-form {
476 &.open {
477 visibility: visible;
478
479 * {
480 visibility: visible;
481 }
482 }
483 }
402b0346
A
484}
485
486.new-version-message {
c69585f3 487 text-align: center;
402b0346 488
c69585f3
A
489 a {
490 color: $warning-text;
402b0346 491 font-weight: bold;
c69585f3 492 }
402b0346
A
493}
494
8eac2e54
A
495.header-alert-message {
496 text-align: center;
497}
498
c69585f3
A
499// CONTENT - GENERAL
500.container {
501 position: relative;
502 z-index: 2;
503 margin-top: 45px;
402b0346
A
504}
505
c69585f3 506// Plugins additional forms
402b0346 507.toolbar-plugin {
c69585f3
A
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 }
402b0346 526
c69585f3
A
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 }
70401690
A
540}
541
402b0346 542@media screen and (max-width: 64em) {
c69585f3
A
543 .toolbar-plugin {
544 input {
545 &[type='text'] {
402b0346 546 width: 70%;
c69585f3 547 }
402b0346 548 }
c69585f3 549 }
402b0346
A
550}
551
c69585f3
A
552// CONTENT - LINKLIST PAGING
553// 64em -> lg
402b0346 554.linklist-filters {
c69585f3
A
555 margin: 5px 0;
556 color: $dark-grey;
557 font-size: .9em;
402b0346 558
c69585f3 559 a {
54ee2408
A
560 display: inline-block;
561 margin: 3px 0;
402b0346
A
562 padding: 5px 8px;
563 text-decoration: none;
c69585f3 564 }
402b0346 565
c69585f3
A
566 .filter-off {
567 background: $almost-white;
568 color: $dark-grey;
569 }
402b0346 570
c69585f3 571 .filter-on {
a5a0c039 572 background: var(--main-color);
c69585f3
A
573 color: $light-green;
574 }
402b0346 575
c69585f3
A
576 .filter-block {
577 background: $red;
578 color: $almost-white;
579 }
9d4736a3
A
580}
581
402b0346 582.linklist-pages {
c69585f3
A
583 margin: 5px 0;
584 text-align: center;
585 color: $dark-grey;
402b0346 586
c69585f3 587 a {
402b0346 588 text-decoration: none;
c69585f3
A
589 color: $dark-grey;
590
591 &:hover {
592 color: $white;
593 }
594 }
402b0346
A
595}
596
c69585f3
A
597%linksperpage-button {
598 display: inline-block;
599 width: 20px;
600 text-align: center;
402b0346
A
601}
602
603.linksperpage {
c69585f3
A
604 margin: 5px 0;
605 text-align: right;
606 color: $dark-grey;
607 font-size: .9em;
402b0346 608
c69585f3
A
609 form {
610 display: inline;
611 }
402b0346 612
c69585f3
A
613 a {
614 @extend %linksperpage-button;
402b0346 615
c69585f3
A
616 background: $almost-white;
617 padding: 5px;
618 text-decoration: none;
619 color: $dark-grey;
c69585f3 620
e813934a
KC
621 &.selected {
622 background: var(--main-color);
623 color: $white;
96746d71 624 }
816ffba7
KC
625 }
626
c69585f3
A
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 }
402b0346
A
640}
641
c69585f3
A
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: '';
402b0346
A
653}
654
402b0346 655.linklist-item {
7b4fea0e 656 position: relative;
c69585f3
A
657 margin: 0 0 10px;
658 box-shadow: 1px 1px 3px $light-grey;
659 background: $almost-white;
660
661 &.private {
7b4fea0e
A
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: '';
c69585f3
A
672 }
673 }
4e3875c0
A
674
675 .search-highlight {
676 background-color: yellow;
677 }
94c17565
A
678}
679
680.linklist-item-buttons {
c69585f3
A
681 position: relative;
682 z-index: 99;
683 background: transparent;
684 width: 23px;
94c17565
A
685}
686
687.linklist-item-buttons-right {
c69585f3
A
688 float: right;
689 margin-right: -25px;
94c17565
A
690}
691
692.linklist-item-buttons * {
c69585f3
A
693 display: block;
694 float: left;
695 margin: auto;
696 width: 100%;
697 text-align: center;
402b0346
A
698}
699
700.linklist-item-title {
c69585f3
A
701 position: relative;
702 margin: 0;
703 background: $almost-white;
704 word-wrap: break-word;
402b0346 705
c69585f3
A
706 h2 {
707 margin: 0;
708 padding: 3px 10px 0;
402b0346 709 line-height: 30px;
c69585f3 710 word-wrap: break-word;
402b0346 711
c69585f3
A
712 a {
713 vertical-align: middle;
714 text-decoration: none;
715 color: $dark-grey;
716 font-size: .7em;
717
718 &:visited {
719 .linklist-link {
a5a0c039 720 color: var(--dark-main-color);
c69585f3
A
721 }
722 }
723
724 &:hover {
725 color: $dark-grey;
726 }
727 }
728 }
402b0346 729
c69585f3 730 .linklist-link {
a5a0c039 731 color: var(--main-color);
402b0346 732 font-size: 1.1em;
402b0346 733
c69585f3
A
734 &:hover {
735 color: $dark-grey;
736 }
737 }
402b0346 738
d3defcac
A
739 .label {
740 font-family: Arial, sans-serif;
741 font-size: .65em;
742 }
743
c69585f3
A
744 .label-private {
745 border: solid 1px $orange;
746 color: $orange;
d3defcac
A
747 }
748
749 .label-sticky {
750 border: solid 1px $blue;
751 color: $blue;
c69585f3 752 }
402b0346
A
753}
754
94c17565 755.fold-button {
c69585f3
A
756 display: none;
757 color: $dark-grey;
402b0346
A
758}
759
760.linklist-item-editbuttons {
c69585f3
A
761 float: right;
762 padding: 8px 5px;
402b0346 763
c69585f3 764 * {
402b0346
A
765 display: block;
766 float: left;
767 margin: 0 1px;
c69585f3 768 }
402b0346 769
c69585f3 770 a {
402b0346 771 font-size: 1em;
c69585f3
A
772 }
773
fc574e64 774 .link-checkbox {
c69585f3
A
775 display: none;
776 }
402b0346
A
777}
778
779.edit-link {
c69585f3
A
780 color: $blue;
781 font-size: 1.2em;
402b0346
A
782}
783
784.delete-link {
c69585f3
A
785 color: $red !important;
786 font-size: 1.3em;
402b0346
A
787}
788
4154c25b 789.pin-link {
d9bf5b31 790 font-size: 1.3em;
4154c25b
A
791}
792
793.pinned-link {
d9bf5b31 794 color: $blue !important;
4154c25b
A
795}
796
402b0346 797.linklist-item-description {
c69585f3
A
798 position: relative;
799 padding: 0 10px;
800 line-height: 1.3em;
801 color: $dark-grey;
802 word-wrap: break-word;
402b0346 803
c69585f3 804 a {
402b0346 805 text-decoration: none;
a5a0c039 806 color: var(--main-color);
402b0346 807
c69585f3
A
808 &:hover {
809 color: $dark-grey;
810 }
402b0346 811
c69585f3 812 &:visited {
a5a0c039 813 color: var(--dark-main-color);
c69585f3
A
814 }
815 }
402b0346
A
816}
817
818.linklist-item-thumbnail {
c69585f3
A
819 position: relative;
820 float: right;
821 z-index: 50;
822 margin: 0;
823 padding: 0 0 0 5px;
824 height: 90px;
402b0346
A
825}
826
827.linklist-item-infos {
c69585f3
A
828 background: $background-linklist-info;
829 padding: 4px 8px;
830 color: $dark-grey;
402b0346 831
c69585f3 832 a {
402b0346 833 text-decoration: none;
c69585f3 834 color: $dark-grey;
402b0346 835
c69585f3
A
836 &:hover {
837 color: $black;
838 }
839 }
402b0346 840
c69585f3
A
841 .linklist-item-tags {
842 font-size: .8em;
843 }
402b0346 844
c69585f3 845 .label-tag {
402b0346 846 font-size: 1em;
c69585f3
A
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 }
402b0346
A
859}
860
861.linklist-item-infos-dateblock {
c69585f3 862 font-size: .9em;
402b0346
A
863}
864
865.linklist-plugin-icon {
c69585f3
A
866 width: 13px;
867 height: 13px;
402b0346
A
868}
869
870.linklist-item-infos-url {
c69585f3
A
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;
402b0346
A
878}
879
94c17565 880.linklist-item-infos-controls-group {
c69585f3
A
881 display: inline-block;
882 border-right: 1px solid $light-grey;
883 padding-right: 6px;
94c17565
A
884}
885
886.ctrl-edit {
c69585f3 887 margin: 0 7px;
94c17565
A
888}
889
4154c25b 890.ctrl-delete {
d9bf5b31 891 margin: 0 7px 0 0;
4154c25b
A
892}
893
c69585f3 894// 64em -> lg
402b0346 895@media screen and (max-width: 64em) {
c69585f3
A
896 .linklist-item-infos-url {
897 text-align: left;
898 }
402b0346
A
899}
900
c69585f3
A
901// Footer
902.footer-container {
903 margin: 20px 0;
904 padding: 5px;
905 text-align: center;
906 color: $dark-grey;
402b0346 907
c69585f3 908 &::before {
402b0346 909 display: block;
402b0346 910 margin: 10px auto;
a5a0c039 911 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
c69585f3
A
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;
a5a0c039 940 background: var(--main-color);
c69585f3
A
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;
402b0346
A
949}
950
402b0346 951.page-form {
c69585f3
A
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;
402b0346
A
961 padding: 10px 0;
962 width: 100%;
402b0346 963 text-align: center;
a5a0c039 964 color: var(--main-color);
c69585f3 965 }
402b0346 966
c69585f3 967 .window-subtitle {
402b0346 968 text-align: center;
c69585f3 969 }
402b0346 970
c69585f3 971 a {
aa4797ba 972 text-decoration: none;
a5a0c039 973 color: var(--main-color);
c69585f3 974 font-weight: bold;
402b0346 975
c69585f3
A
976 &.button {
977 @extend %page-form-button;
978 }
979 }
980
981 p {
402b0346 982 margin: 0;
c69585f3
A
983 padding: 5px 10px;
984 }
402b0346 985
c69585f3
A
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;
402b0346 1010
402b0346 1011 padding: 15px 5px 3px 15px;
c69585f3 1012 min-height: 240px;
402b0346
A
1013 resize: vertical;
1014 overflow-y: auto;
c69585f3
A
1015 word-wrap: break-word;
1016 }
402b0346 1017
c69585f3
A
1018 select {
1019 color: $dark-grey;
1020 }
402b0346 1021
c69585f3
A
1022 .button {
1023 &.button-red {
1024 background: $red;
1025 }
5d8de758
A
1026
1027 &.button-grey {
1028 background: $light-grey;
1029 }
c69585f3 1030 }
402b0346 1031
c69585f3
A
1032 .submit-buttons {
1033 margin-bottom: 10px;
1034 }
402b0346 1035
c69585f3
A
1036 section {
1037 margin: 10px 0 25px;
1038 }
402b0346 1039
c69585f3
A
1040 table,
1041 th,
1042 td {
1043 border-width: 1px 0;
1044 border-style: solid;
1045 border-color: $light-grey;
1046 }
402b0346 1047
c69585f3
A
1048 th,
1049 td {
1050 padding: 5px;
1051 }
1052
1053 table {
0cf76ccb 1054 margin: 10px auto 25px auto;
c69585f3
A
1055 width: 90%;
1056
1057 .order {
1058 text-decoration: none;
1059 color: $dark-grey;
402b0346 1060 }
c69585f3 1061 }
402b0346 1062
c69585f3
A
1063 .awesomplete {
1064 width: 90%;
1065
1066 input {
1067 width: 100%;
1068 }
1069 }
1070
1071 div {
1072 .awesomplete {
1073 > ul {
1074 color: $black;
1075 }
402b0346 1076 }
c69585f3
A
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 }
5d8de758
A
1090
1091 &.button-grey {
1092 position: absolute;
1093 left: 5%;
1094 }
c69585f3
A
1095 }
1096 }
1097 }
402b0346
A
1098}
1099
1100@media screen and (max-width: 64em) {
c69585f3
A
1101 .page-form {
1102 .submit-buttons {
1103 .button {
402b0346 1104 margin: auto;
c69585f3 1105 }
402b0346 1106 }
c69585f3 1107 }
402b0346
A
1108}
1109
c69585f3
A
1110// PAGE FORM - LIGHT
1111.page-form-light {
1112 div,
1113 p {
402b0346 1114 text-align: center;
c69585f3 1115 }
402b0346
A
1116}
1117
c69585f3
A
1118// PAGE FORM - COMPLETE
1119%page-form-valign {
1120 position: absolute;
1121 top: 50%;
1122 transform: translateY(-50%);
402b0346
A
1123}
1124
c69585f3
A
1125.page-form-complete {
1126 div,
1127 p {
1128 color: $dark-grey;
1129 }
1130
1131 .form-label,
1132 .form-input {
402b0346
A
1133 position: relative;
1134 height: 60px;
c69585f3 1135 }
402b0346 1136
c69585f3
A
1137 .form-label {
1138 label {
1139 @extend %page-form-valign;
402b0346 1140
c69585f3
A
1141 right: 0;
1142 padding: 0 20px;
1143 text-align: right;
1144 }
1145 }
402b0346 1146
c69585f3 1147 .label-name {
402b0346 1148 font-weight: bold;
c69585f3 1149 }
402b0346 1150
c69585f3
A
1151 .label-desc {
1152 font-size: .8em;
1153 }
402b0346 1154
c69585f3
A
1155 .form-input {
1156 input {
1157 @extend %page-form-valign;
402b0346 1158
c69585f3
A
1159 &[type='text'],
1160 &[type='password'] {
1161 margin: 0;
1162 }
1163 }
402b0346 1164
c69585f3
A
1165 select {
1166 &.align {
1167 @extend %page-form-valign;
1168 }
1169 }
1170 }
402b0346 1171
c69585f3
A
1172 textarea {
1173 margin: 0;
1174 }
402b0346 1175
c69585f3
A
1176 .timezone {
1177 @extend %page-form-valign;
1178 }
402b0346
A
1179}
1180
c69585f3
A
1181// Awesomeplete fix
1182div {
1183 &.awesomplete {
402b0346 1184 width: inherit;
402b0346 1185
c69585f3
A
1186 > input {
1187 display: inherit;
1188 }
402b0346 1189
c69585f3
A
1190 > ul {
1191 z-index: 9999;
1192 }
1193 }
402b0346
A
1194}
1195
c69585f3
A
1196form {
1197 &[name='linkform'] {
1198 &.page-form {
1199 overflow: visible;
1200 }
1201 }
402b0346
A
1202}
1203
c69585f3
A
1204@media screen and (max-width: 64em) {
1205 %page-form-valign-mobile {
1206 position: inherit;
1207 top: inherit;
1208 transform: translateY(0);
1209 }
402b0346 1210
c69585f3
A
1211 .page-form-complete {
1212 .form-label {
1213 height: inherit;
402b0346 1214
c69585f3
A
1215 label {
1216 @extend %page-form-valign-mobile;
15162272 1217
c69585f3
A
1218 display: block;
1219 margin: 10px 0 0;
1220 text-align: left;
1221 }
402b0346
A
1222 }
1223
c69585f3
A
1224 .form-input {
1225 text-align: center;
402b0346 1226
c69585f3
A
1227 input {
1228 @extend %page-form-valign-mobile;
402b0346 1229
c69585f3
A
1230 &[type='checkbox'] {
1231 position: absolute;
1232 top: 50%;
1233 right: 50%;
1234 transform: translateY(-50%);
1235 }
1236 }
402b0346
A
1237 }
1238
c69585f3
A
1239 .timezone {
1240 @extend %page-form-valign-mobile;
402b0346
A
1241 }
1242
c69585f3
A
1243 .radio-buttons {
1244 padding: 5px 15px;
1245 text-align: left;
402b0346 1246 }
c69585f3 1247 }
402b0346 1248
c69585f3
A
1249 .timezone-continent {
1250 &::after {
1251 white-space: pre;
1252 content: '\a\a';
402b0346 1253 }
c69585f3 1254 }
402b0346
A
1255}
1256
c69585f3 1257// Page visitor (page form extended)
402b0346 1258.page-visitor {
c69585f3 1259 color: $dark-grey;
402b0346
A
1260}
1261
dd51f653 1262.page-error-container {
c69585f3 1263 color: $dark-grey;
6c50a6cc
A
1264
1265 h2 {
dd51f653 1266 margin: 70px 0 25px;
6c50a6cc
A
1267 }
1268
cfdd2094
A
1269 a {
1270 color: var(--main-color);
1271 }
1272
6c50a6cc 1273 pre {
6c50a6cc
A
1274 margin: 0 20%;
1275 padding: 20px 0;
dd51f653 1276 text-align: left;
cfdd2094 1277 line-height: 1em;
6c50a6cc 1278 }
402b0346
A
1279}
1280
c69585f3
A
1281// EDIT LINK
1282.edit-link-container {
1283 .created-date {
807cade6 1284 margin-bottom: 10px;
c69585f3
A
1285 color: $light-grey;
1286 }
807cade6
A
1287}
1288
4cf3564d
A
1289.loading-input {
1290 position: relative;
1291
1292 @keyframes around {
1293 0% {
1294 transform: rotate(0deg);
1295 }
1296
1297 100% {
1298 transform: rotate(360deg);
1299 }
1300 }
1301
1302 .icon-container {
1303 position: absolute;
1304 right: 60px;
1305 top: calc(50% - 10px);
1306 }
1307
1308 .loader {
1309 position: relative;
1310 height: 20px;
1311 width: 20px;
1312 display: inline-block;
1313 animation: around 5.4s infinite;
1314
1315 &::after,
1316 &::before {
1317 content: "";
1318 background: $form-input-background;
1319 position: absolute;
1320 display: inline-block;
1321 width: 100%;
1322 height: 100%;
1323 border-width: 2px;
1324 border-color: #333 #333 transparent transparent;
1325 border-style: solid;
1326 border-radius: 20px;
1327 box-sizing: border-box;
1328 top: 0;
1329 left: 0;
1330 animation: around 0.7s ease-in-out infinite;
1331 }
1332
1333 &::after {
1334 animation: around 0.7s ease-in-out 0.1s infinite;
1335 background: transparent;
1336 }
1337 }
1338}
1339
c69585f3
A
1340// LOGIN
1341.login-form-container {
1342 .remember-me {
402b0346 1343 margin: 5px 0;
c69585f3 1344 }
402b0346
A
1345}
1346
c69585f3
A
1347// Search results
1348.search-result {
1349 a {
402b0346 1350 text-decoration: none;
c69585f3
A
1351 color: $white;
1352 }
402b0346 1353
c69585f3
A
1354 .label-tag {
1355 border-color: $white;
402b0346 1356
c69585f3
A
1357 .remove {
1358 margin: 0 0 0 5px;
1359 border-left: $white 1px solid;
1360 padding: 0 0 0 5px;
1361 }
1362 }
402b0346 1363
c69585f3
A
1364 .label-private {
1365 border: 1px solid $white;
1366 }
7c26f662
A
1367}
1368
c69585f3 1369// TOOLS
402b0346 1370.tools-item {
c69585f3 1371 margin: 10px 0;
402b0346 1372
c69585f3
A
1373 .pure-button {
1374 &:hover {
a5a0c039 1375 background-color: var(--main-color);
c69585f3
A
1376 background-image: none;
1377 color: $almost-white;
1378 }
1379 }
402b0346
A
1380}
1381
c69585f3
A
1382// PLUGIN ADMIN
1383.pluginform-container {
1384 .mobile-row {
1385 font-size: .9em;
1386 }
402b0346 1387
c69585f3 1388 .more {
402b0346 1389 margin-top: 10px;
c69585f3 1390 }
402b0346
A
1391}
1392
1393@media screen and (max-width: 64em) {
c69585f3
A
1394 .pluginform-container {
1395 .main-row {
1396 border-top-style: none;
1397 border-bottom-style: none;
402b0346 1398
c69585f3 1399 td {
402b0346 1400 border-top-style: none;
c69585f3
A
1401 border-bottom-style: none;
1402 }
402b0346 1403 }
c69585f3 1404 }
402b0346
A
1405}
1406
c69585f3
A
1407// IMPORT
1408.import-field-container {
1409 margin: 15px 0;
402b0346
A
1410}
1411
c69585f3
A
1412// TAG CLOUD
1413.cloudtag-container {
1414 padding: 10px;
1415 text-align: center;
1416 text-decoration: none;
1417 color: $dark-grey;
402b0346 1418
c69585f3 1419 a {
402b0346 1420 text-decoration: none;
c69585f3
A
1421 color: $dark-grey;
1422 }
402b0346 1423
c69585f3
A
1424 .count {
1425 color: $light-grey;
1426 }
402b0346
A
1427}
1428
c69585f3
A
1429// TAG LIST
1430.taglist-container {
1431 padding: 0 10px;
aa4797ba 1432
c69585f3 1433 a {
aa4797ba 1434 text-decoration: none;
c69585f3
A
1435 color: $dark-grey;
1436 }
aa4797ba 1437
c69585f3 1438 .count {
aa4797ba
A
1439 display: inline-block;
1440 width: 35px;
1441 text-align: right;
c69585f3
A
1442 color: $light-grey;
1443 }
aa4797ba 1444
c69585f3 1445 .rename-tag-form {
82e3bb5f 1446 display: none;
c69585f3 1447 }
82e3bb5f 1448
c69585f3 1449 .delete-tag {
aa4797ba 1450 display: none;
c69585f3
A
1451 color: $red;
1452 }
1453
1454 .rename-tag {
1455 color: $blue;
1456 }
1457
1458 .validate-rename-tag {
a5a0c039 1459 color: var(--main-color);
c69585f3
A
1460 }
1461}
1462
1463// Picture wall CSS
1464.picwall-container {
1465 clear: both;
1466 margin: 0 10px 10px;
1467 background-color: $almost-white;
1468 color: $dark-grey;
1469}
1470
1471.picwall-pictureframe {
1472 display: table-cell;
1473 position: relative;
1474 float: left;
1475 z-index: 5;
1476 margin: 2px;
1477 background-color: $almost-white;
1478 width: 90px;
1479 height: 90px;
1480 overflow: hidden;
1481 vertical-align: middle;
1482 text-align: center;
1483
1484 // Adapt the width of the image
1485 img {
402b0346
A
1486 max-width: 100%;
1487 height: auto;
1488 color: transparent;
c69585f3 1489 }
402b0346 1490
c69585f3 1491 a {
402b0346 1492 text-decoration: none;
c69585f3 1493 }
402b0346 1494
c69585f3
A
1495 span {
1496 &.info {
1497 display: none;
1498 font-family: Arial, sans-serif;
1499 }
1500 }
1501
1502 // CSS to show title when hovering an image - no javascript required.
1503 &:hover {
1504 span {
1505 &.info {
1506 display: block;
1507 position: absolute;
1508 top: 0;
1509 left: 0;
1510 background-color: $dark-shadow;
1511 width: 90px;
1512 height: 90px;
1513 text-align: left;
1514 color: $almost-white;
1515 font-size: 9pt;
1516 font-weight: bold;
1517 }
1518 }
1519 }
402b0346
A
1520}
1521
c69585f3
A
1522.b-lazy {
1523 transition: opacity 500ms ease-in-out;
1524 opacity: 0;
1525 -webkit-transition: opacity 500ms ease-in-out;
1526 -moz-transition: opacity 500ms ease-in-out;
1527 -o-transition: opacity 500ms ease-in-out;
b5e2b23c
A
1528 min-width: 1px;
1529 min-height: 1px;
c69585f3
A
1530
1531 &.b-loaded {
1532 opacity: 1;
1533 }
402b0346
A
1534}
1535
c69585f3 1536// DAILY
402b0346 1537.daily-desc {
c69585f3
A
1538 color: $light-grey;
1539 font-size: .8em;
402b0346 1540
c69585f3 1541 a {
402b0346 1542 text-decoration: none;
c69585f3 1543 color: $dark-grey;
402b0346 1544
c69585f3
A
1545 &:hover {
1546 color: $light-grey;
1547 }
1548 }
1549}
1550
1551.daily-about {
1552 h3 {
1553 &::before,
1554 &::after {
1555 display: block;
1556 margin: 10px auto;
a5a0c039 1557 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
c69585f3
A
1558 width: 90%;
1559 height: 1px;
1560 content: '';
1561 }
1562 }
402b0346
A
1563}
1564
1565.daily-entry {
c69585f3 1566 padding: 0 10px;
402b0346 1567
c69585f3
A
1568 .daily-entry-title {
1569 margin: 10px 0 0;
402b0346 1570
c69585f3
A
1571 a {
1572 text-decoration: none;
1573 color: $black;
1574 }
402b0346 1575
c69585f3
A
1576 &::after {
1577 display: block;
1578 margin: 5px auto;
1579 background: linear-gradient(to right, $white, $light-grey, $white);
1580 width: 70%;
1581 height: 1px;
1582 content: '';
1583 }
1584 }
402b0346 1585
c69585f3
A
1586 .daily-entry-description {
1587 padding: 5px 5px 0;
402b0346 1588 text-align: justify;
c69585f3 1589 font-size: .9em;
402b0346 1590 word-wrap: break-word;
c69585f3 1591 }
402b0346 1592
c69585f3
A
1593 .daily-entry-tags {
1594 padding: 0 5px 5px;
1595 font-size: .8em;
1596 }
402b0346
A
1597}
1598
1599.daily-entry-thumbnail {
c69585f3
A
1600 float: left;
1601 margin: 15px 5px 5px 15px;
402b0346
A
1602}
1603
c69585f3
A
1604.daily-entry-description {
1605 a {
402b0346 1606 text-decoration: none;
a5a0c039 1607 color: var(--main-color);
402b0346 1608
c69585f3
A
1609 &:hover {
1610 text-shadow: 1px 1px $background-linklist-info;
1611 }
402b0346 1612
c69585f3 1613 &:visited {
a5a0c039 1614 color: var(--dark-main-color);
c69585f3
A
1615 }
1616 }
402b0346 1617}
70401690 1618
c69585f3 1619// Fix empty bookmarklet name in Firefox
70401690 1620.pure-button {
c69585f3 1621 -moz-user-select: auto;
70401690 1622}
aa4797ba
A
1623
1624.tag-sort {
c69585f3
A
1625 margin-top: 30px;
1626 text-align: center;
aa4797ba 1627
c69585f3 1628 a {
f4ea7cd5 1629 background: $almost-white;
aa4797ba 1630 display: inline-block;
f4ea7cd5 1631 padding: 5px;
aa4797ba 1632 text-decoration: none;
f4ea7cd5 1633 color: $dark-grey;
c69585f3 1634 }
aa4797ba 1635}
94c17565 1636
c69585f3
A
1637// Markdown
1638.markdown {
1639 p {
94c17565 1640 margin: 0 !important;
c69585f3 1641 }
94c17565 1642
c69585f3
A
1643 p + p {
1644 margin: .5em 0 0 !important;
1645 }
94c17565 1646
c69585f3
A
1647 * {
1648 &:first-child {
1649 margin-top: 0 !important;
1650 }
94c17565 1651
c69585f3
A
1652 &:last-child {
1653 margin-bottom: 5px !important;
1654 }
1655 }
055ce4bd
A
1656}
1657
c69585f3 1658// Pure Button
055ce4bd
A
1659.pure-button-success,
1660.pure-button-error,
1661.pure-button-warning,
1662.pure-button-primary,
1663.pure-button-shaarli,
1664.pure-button-secondary {
c69585f3
A
1665 border-radius: 4px;
1666 text-shadow: 0 1px 1px $dark-shadow;
1667 color: $white !important;
055ce4bd
A
1668}
1669
1670.pure-button-shaarli {
a5a0c039 1671 background-color: var(--main-color);
055ce4bd 1672}
28f26524
A
1673
1674.progressbar {
1675 border-radius: 6px;
a5a0c039 1676 background-color: var(--main-color);
28f26524
A
1677 padding: 1px;
1678
1679 > div {
1680 border-radius: 10px;
96746d71
A
1681 background:
1682 repeating-linear-gradient(
1683 -45deg,
1684 $almost-white,
1685 $almost-white 6px,
1686 var(--background-color) 6px,
1687 var(--background-color) 12px
1688 );
28f26524
A
1689 width: 0%;
1690 height: 10px;
1691 }
1692}
1693
1694.thumbnails-page-container {
1695 .progress-counter {
1696 padding: 10px 0 20px;
1697 }
1698
1699 .thumbnail-placeholder {
1700 margin: 10px auto;
1701 background-color: $light-grey;
1702 }
1703
1704 .thumbnail-link-title {
1705 padding-bottom: 20px;
1706 overflow: hidden;
1707 text-overflow: ellipsis;
1708 white-space: nowrap;
1709 }
1710}
374f89e7 1711
0cf76ccb
A
1712// SERVER PAGE
1713
1714.server-tables-page,
1715.server-tables {
1716 .window-subtitle {
1717 &::before {
1718 display: block;
1719 margin: 8px auto;
1720 background: linear-gradient(to right, var(--background-color), $dark-grey, var(--background-color));
1721 width: 50%;
1722 height: 1px;
1723 content: '';
1724 }
1725 }
1726
1727 .server-row {
1728 p {
1729 height: 25px;
1730 padding: 0 10px;
1731 }
1732 }
1733
1734 .server-label {
1735 text-align: right;
1736 font-weight: bold;
1737 }
1738
1739 i {
1740 &.fa-color-green {
1741 color: $main-green;
1742 }
1743
1744 &.fa-color-orange {
1745 color: $orange;
1746 }
1747
1748 &.fa-color-red {
1749 color: $red;
1750 }
1751 }
1752
1753 @media screen and (max-width: 64em) {
1754 .server-label {
1755 text-align: center;
1756 }
1757
1758 .server-row {
1759 p {
1760 text-align: center;
1761 }
1762 }
1763 }
1764}
1765
5d8de758
A
1766// Batch creation
1767input[name='save_edit_batch'] {
1768 @extend %page-form-button;
1769}
1770
1771.addlink-batch-show-more {
1772 display: flex;
1773 align-items: center;
1774 margin: 20px 0 8px;
1775
1776 a {
1777 color: var(--main-color);
1778 text-decoration: none;
1779 }
1780
1781 &::before,
1782 &::after {
1783 content: "";
1784 flex-grow: 1;
1785 background: rgba(0, 0, 0, 0.35);
1786 height: 1px;
1787 font-size: 0;
1788 line-height: 0;
1789 }
1790
1791 &::before {
1792 margin: 0 16px 0 0;
1793 }
1794
1795 &::after {
1796 margin: 0 0 0 16px;
1797 }
1798}
1799
6a716758
A
1800.dark-layer {
1801 display: none;
1802 position: fixed;
1803 height: 100%;
1804 width: 100%;
1805 z-index: 998;
1806 background-color: rgba(0, 0, 0, .75);
1807 color: #fff;
1808
1809 .screen-center {
1810 display: flex;
1811 flex-direction: column;
1812 justify-content: center;
1813 align-items: center;
1814 text-align: center;
1815 min-height: 100vh;
1816 }
1817
1818 .progressbar {
1819 width: 33%;
1820 }
1821}
1822
5d8de758
A
1823.addlink-batch-form-block {
1824 .pure-alert {
1825 margin: 25px 0 0 0;
1826 }
1827}
1828
374f89e7
A
1829// Print rules
1830@media print {
1831 .shaarli-menu {
1832 position: absolute;
1833 }
1834
1835 .search-linklist,
1836 .link-count-block,
1837 .linklist-item-infos-controls-group,
1838 .mobile-buttons {
1839 display: none;
1840 }
1841}