diff --git a/tpl/myShaarli/404.html b/tpl/myShaarli/404.html new file mode 100644 index 00000000..2de6b6da --- /dev/null +++ b/tpl/myShaarli/404.html @@ -0,0 +1,16 @@ + + + + {include="includes"} + + + -

{'You can also edit tags in the'|t} {'tag list'|t}.

+

You can also edit tags in the tag list.

{include="page.footer"} diff --git a/tpl/myShaarli/configure.html b/tpl/myShaarli/configure.html index a63c7ad3..76a1b9fd 100644 --- a/tpl/myShaarli/configure.html +++ b/tpl/myShaarli/configure.html @@ -69,30 +69,6 @@

{'Configure'|t}

-
-
-
- -
-
-
-
- -
-
-
@@ -129,6 +105,21 @@

{'Configure'|t}

+
+
+
+ +
+
+
+
+ +
+
+
diff --git a/tpl/myShaarli/css/font-awesome.css b/tpl/myShaarli/css/font-awesome.css new file mode 100644 index 00000000..b2a5fe2f --- /dev/null +++ b/tpl/myShaarli/css/font-awesome.css @@ -0,0 +1,2086 @@ +/*! + * Font Awesome 4.5.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot?v=4.5.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.5.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.5.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.5.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.5.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.5.0#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: .3em; +} +.fa.pull-right { + margin-left: .3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #ffffff; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} diff --git a/tpl/myShaarli/css/font-awesome.min.css b/tpl/myShaarli/css/font-awesome.min.css new file mode 100644 index 00000000..d0603cb4 Binary files /dev/null and b/tpl/myShaarli/css/font-awesome.min.css differ diff --git a/tpl/myShaarli/css/grids-responsive.css b/tpl/myShaarli/css/grids-responsive.css new file mode 100644 index 00000000..dc9f7718 --- /dev/null +++ b/tpl/myShaarli/css/grids-responsive.css @@ -0,0 +1,861 @@ +/*! +Pure v0.6.0 +Copyright 2014 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +https://github.com/yahoo/pure/blob/master/LICENSE.md +*/ +@media screen and (min-width: 35.5em) { + .pure-u-sm-1, + .pure-u-sm-1-1, + .pure-u-sm-1-2, + .pure-u-sm-1-3, + .pure-u-sm-2-3, + .pure-u-sm-1-4, + .pure-u-sm-3-4, + .pure-u-sm-1-5, + .pure-u-sm-2-5, + .pure-u-sm-3-5, + .pure-u-sm-4-5, + .pure-u-sm-5-5, + .pure-u-sm-1-6, + .pure-u-sm-5-6, + .pure-u-sm-1-8, + .pure-u-sm-3-8, + .pure-u-sm-5-8, + .pure-u-sm-7-8, + .pure-u-sm-1-12, + .pure-u-sm-5-12, + .pure-u-sm-7-12, + .pure-u-sm-11-12, + .pure-u-sm-1-24, + .pure-u-sm-2-24, + .pure-u-sm-3-24, + .pure-u-sm-4-24, + .pure-u-sm-5-24, + .pure-u-sm-6-24, + .pure-u-sm-7-24, + .pure-u-sm-8-24, + .pure-u-sm-9-24, + .pure-u-sm-10-24, + .pure-u-sm-11-24, + .pure-u-sm-12-24, + .pure-u-sm-13-24, + .pure-u-sm-14-24, + .pure-u-sm-15-24, + .pure-u-sm-16-24, + .pure-u-sm-17-24, + .pure-u-sm-18-24, + .pure-u-sm-19-24, + .pure-u-sm-20-24, + .pure-u-sm-21-24, + .pure-u-sm-22-24, + .pure-u-sm-23-24, + .pure-u-sm-24-24 { + display: inline-block; + *display: inline; + zoom: 1; + letter-spacing: normal; + word-spacing: normal; + vertical-align: top; + text-rendering: auto; + } + + .pure-u-sm-1-24 { + width: 4.1667%; + *width: 4.1357%; + } + + .pure-u-sm-1-12, + .pure-u-sm-2-24 { + width: 8.3333%; + *width: 8.3023%; + } + + .pure-u-sm-1-8, + .pure-u-sm-3-24 { + width: 12.5000%; + *width: 12.4690%; + } + + .pure-u-sm-1-6, + .pure-u-sm-4-24 { + width: 16.6667%; + *width: 16.6357%; + } + + .pure-u-sm-1-5 { + width: 20%; + *width: 19.9690%; + } + + .pure-u-sm-5-24 { + width: 20.8333%; + *width: 20.8023%; + } + + .pure-u-sm-1-4, + .pure-u-sm-6-24 { + width: 25%; + *width: 24.9690%; + } + + .pure-u-sm-7-24 { + width: 29.1667%; + *width: 29.1357%; + } + + .pure-u-sm-1-3, + .pure-u-sm-8-24 { + width: 33.3333%; + *width: 33.3023%; + } + + .pure-u-sm-3-8, + .pure-u-sm-9-24 { + width: 37.5000%; + *width: 37.4690%; + } + + .pure-u-sm-2-5 { + width: 40%; + *width: 39.9690%; + } + + .pure-u-sm-5-12, + .pure-u-sm-10-24 { + width: 41.6667%; + *width: 41.6357%; + } + + .pure-u-sm-11-24 { + width: 45.8333%; + *width: 45.8023%; + } + + .pure-u-sm-1-2, + .pure-u-sm-12-24 { + width: 50%; + *width: 49.9690%; + } + + .pure-u-sm-13-24 { + width: 54.1667%; + *width: 54.1357%; + } + + .pure-u-sm-7-12, + .pure-u-sm-14-24 { + width: 58.3333%; + *width: 58.3023%; + } + + .pure-u-sm-3-5 { + width: 60%; + *width: 59.9690%; + } + + .pure-u-sm-5-8, + .pure-u-sm-15-24 { + width: 62.5000%; + *width: 62.4690%; + } + + .pure-u-sm-2-3, + .pure-u-sm-16-24 { + width: 66.6667%; + *width: 66.6357%; + } + + .pure-u-sm-17-24 { + width: 70.8333%; + *width: 70.8023%; + } + + .pure-u-sm-3-4, + .pure-u-sm-18-24 { + width: 75%; + *width: 74.9690%; + } + + .pure-u-sm-19-24 { + width: 79.1667%; + *width: 79.1357%; + } + + .pure-u-sm-4-5 { + width: 80%; + *width: 79.9690%; + } + + .pure-u-sm-5-6, + .pure-u-sm-20-24 { + width: 83.3333%; + *width: 83.3023%; + } + + .pure-u-sm-7-8, + .pure-u-sm-21-24 { + width: 87.5000%; + *width: 87.4690%; + } + + .pure-u-sm-11-12, + .pure-u-sm-22-24 { + width: 91.6667%; + *width: 91.6357%; + } + + .pure-u-sm-23-24 { + width: 95.8333%; + *width: 95.8023%; + } + + .pure-u-sm-1, + .pure-u-sm-1-1, + .pure-u-sm-5-5, + .pure-u-sm-24-24 { + width: 100%; + } +} + +@media screen and (min-width: 48em) { + .pure-u-md-1, + .pure-u-md-1-1, + .pure-u-md-1-2, + .pure-u-md-1-3, + .pure-u-md-2-3, + .pure-u-md-1-4, + .pure-u-md-3-4, + .pure-u-md-1-5, + .pure-u-md-2-5, + .pure-u-md-3-5, + .pure-u-md-4-5, + .pure-u-md-5-5, + .pure-u-md-1-6, + .pure-u-md-5-6, + .pure-u-md-1-8, + .pure-u-md-3-8, + .pure-u-md-5-8, + .pure-u-md-7-8, + .pure-u-md-1-12, + .pure-u-md-5-12, + .pure-u-md-7-12, + .pure-u-md-11-12, + .pure-u-md-1-24, + .pure-u-md-2-24, + .pure-u-md-3-24, + .pure-u-md-4-24, + .pure-u-md-5-24, + .pure-u-md-6-24, + .pure-u-md-7-24, + .pure-u-md-8-24, + .pure-u-md-9-24, + .pure-u-md-10-24, + .pure-u-md-11-24, + .pure-u-md-12-24, + .pure-u-md-13-24, + .pure-u-md-14-24, + .pure-u-md-15-24, + .pure-u-md-16-24, + .pure-u-md-17-24, + .pure-u-md-18-24, + .pure-u-md-19-24, + .pure-u-md-20-24, + .pure-u-md-21-24, + .pure-u-md-22-24, + .pure-u-md-23-24, + .pure-u-md-24-24 { + display: inline-block; + *display: inline; + zoom: 1; + letter-spacing: normal; + word-spacing: normal; + vertical-align: top; + text-rendering: auto; + } + + .pure-u-md-1-24 { + width: 4.1667%; + *width: 4.1357%; + } + + .pure-u-md-1-12, + .pure-u-md-2-24 { + width: 8.3333%; + *width: 8.3023%; + } + + .pure-u-md-1-8, + .pure-u-md-3-24 { + width: 12.5000%; + *width: 12.4690%; + } + + .pure-u-md-1-6, + .pure-u-md-4-24 { + width: 16.6667%; + *width: 16.6357%; + } + + .pure-u-md-1-5 { + width: 20%; + *width: 19.9690%; + } + + .pure-u-md-5-24 { + width: 20.8333%; + *width: 20.8023%; + } + + .pure-u-md-1-4, + .pure-u-md-6-24 { + width: 25%; + *width: 24.9690%; + } + + .pure-u-md-7-24 { + width: 29.1667%; + *width: 29.1357%; + } + + .pure-u-md-1-3, + .pure-u-md-8-24 { + width: 33.3333%; + *width: 33.3023%; + } + + .pure-u-md-3-8, + .pure-u-md-9-24 { + width: 37.5000%; + *width: 37.4690%; + } + + .pure-u-md-2-5 { + width: 40%; + *width: 39.9690%; + } + + .pure-u-md-5-12, + .pure-u-md-10-24 { + width: 41.6667%; + *width: 41.6357%; + } + + .pure-u-md-11-24 { + width: 45.8333%; + *width: 45.8023%; + } + + .pure-u-md-1-2, + .pure-u-md-12-24 { + width: 50%; + *width: 49.9690%; + } + + .pure-u-md-13-24 { + width: 54.1667%; + *width: 54.1357%; + } + + .pure-u-md-7-12, + .pure-u-md-14-24 { + width: 58.3333%; + *width: 58.3023%; + } + + .pure-u-md-3-5 { + width: 60%; + *width: 59.9690%; + } + + .pure-u-md-5-8, + .pure-u-md-15-24 { + width: 62.5000%; + *width: 62.4690%; + } + + .pure-u-md-2-3, + .pure-u-md-16-24 { + width: 66.6667%; + *width: 66.6357%; + } + + .pure-u-md-17-24 { + width: 70.8333%; + *width: 70.8023%; + } + + .pure-u-md-3-4, + .pure-u-md-18-24 { + width: 75%; + *width: 74.9690%; + } + + .pure-u-md-19-24 { + width: 79.1667%; + *width: 79.1357%; + } + + .pure-u-md-4-5 { + width: 80%; + *width: 79.9690%; + } + + .pure-u-md-5-6, + .pure-u-md-20-24 { + width: 83.3333%; + *width: 83.3023%; + } + + .pure-u-md-7-8, + .pure-u-md-21-24 { + width: 87.5000%; + *width: 87.4690%; + } + + .pure-u-md-11-12, + .pure-u-md-22-24 { + width: 91.6667%; + *width: 91.6357%; + } + + .pure-u-md-23-24 { + width: 95.8333%; + *width: 95.8023%; + } + + .pure-u-md-1, + .pure-u-md-1-1, + .pure-u-md-5-5, + .pure-u-md-24-24 { + width: 100%; + } +} + +@media screen and (min-width: 64em) { + .pure-u-lg-1, + .pure-u-lg-1-1, + .pure-u-lg-1-2, + .pure-u-lg-1-3, + .pure-u-lg-2-3, + .pure-u-lg-1-4, + .pure-u-lg-3-4, + .pure-u-lg-1-5, + .pure-u-lg-2-5, + .pure-u-lg-3-5, + .pure-u-lg-4-5, + .pure-u-lg-5-5, + .pure-u-lg-1-6, + .pure-u-lg-5-6, + .pure-u-lg-1-8, + .pure-u-lg-3-8, + .pure-u-lg-5-8, + .pure-u-lg-7-8, + .pure-u-lg-1-12, + .pure-u-lg-5-12, + .pure-u-lg-7-12, + .pure-u-lg-11-12, + .pure-u-lg-1-24, + .pure-u-lg-2-24, + .pure-u-lg-3-24, + .pure-u-lg-4-24, + .pure-u-lg-5-24, + .pure-u-lg-6-24, + .pure-u-lg-7-24, + .pure-u-lg-8-24, + .pure-u-lg-9-24, + .pure-u-lg-10-24, + .pure-u-lg-11-24, + .pure-u-lg-12-24, + .pure-u-lg-13-24, + .pure-u-lg-14-24, + .pure-u-lg-15-24, + .pure-u-lg-16-24, + .pure-u-lg-17-24, + .pure-u-lg-18-24, + .pure-u-lg-19-24, + .pure-u-lg-20-24, + .pure-u-lg-21-24, + .pure-u-lg-22-24, + .pure-u-lg-23-24, + .pure-u-lg-24-24 { + display: inline-block; + *display: inline; + zoom: 1; + letter-spacing: normal; + word-spacing: normal; + vertical-align: top; + text-rendering: auto; + } + + .pure-u-lg-1-24 { + width: 4.1667%; + *width: 4.1357%; + } + + .pure-u-lg-1-12, + .pure-u-lg-2-24 { + width: 8.3333%; + *width: 8.3023%; + } + + .pure-u-lg-1-8, + .pure-u-lg-3-24 { + width: 12.5000%; + *width: 12.4690%; + } + + .pure-u-lg-1-6, + .pure-u-lg-4-24 { + width: 16.6667%; + *width: 16.6357%; + } + + .pure-u-lg-1-5 { + width: 20%; + *width: 19.9690%; + } + + .pure-u-lg-5-24 { + width: 20.8333%; + *width: 20.8023%; + } + + .pure-u-lg-1-4, + .pure-u-lg-6-24 { + width: 25%; + *width: 24.9690%; + } + + .pure-u-lg-7-24 { + width: 29.1667%; + *width: 29.1357%; + } + + .pure-u-lg-1-3, + .pure-u-lg-8-24 { + width: 33.3333%; + *width: 33.3023%; + } + + .pure-u-lg-3-8, + .pure-u-lg-9-24 { + width: 37.5000%; + *width: 37.4690%; + } + + .pure-u-lg-2-5 { + width: 40%; + *width: 39.9690%; + } + + .pure-u-lg-5-12, + .pure-u-lg-10-24 { + width: 41.6667%; + *width: 41.6357%; + } + + .pure-u-lg-11-24 { + width: 45.8333%; + *width: 45.8023%; + } + + .pure-u-lg-1-2, + .pure-u-lg-12-24 { + width: 50%; + *width: 49.9690%; + } + + .pure-u-lg-13-24 { + width: 54.1667%; + *width: 54.1357%; + } + + .pure-u-lg-7-12, + .pure-u-lg-14-24 { + width: 58.3333%; + *width: 58.3023%; + } + + .pure-u-lg-3-5 { + width: 60%; + *width: 59.9690%; + } + + .pure-u-lg-5-8, + .pure-u-lg-15-24 { + width: 62.5000%; + *width: 62.4690%; + } + + .pure-u-lg-2-3, + .pure-u-lg-16-24 { + width: 66.6667%; + *width: 66.6357%; + } + + .pure-u-lg-17-24 { + width: 70.8333%; + *width: 70.8023%; + } + + .pure-u-lg-3-4, + .pure-u-lg-18-24 { + width: 75%; + *width: 74.9690%; + } + + .pure-u-lg-19-24 { + width: 79.1667%; + *width: 79.1357%; + } + + .pure-u-lg-4-5 { + width: 80%; + *width: 79.9690%; + } + + .pure-u-lg-5-6, + .pure-u-lg-20-24 { + width: 83.3333%; + *width: 83.3023%; + } + + .pure-u-lg-7-8, + .pure-u-lg-21-24 { + width: 87.5000%; + *width: 87.4690%; + } + + .pure-u-lg-11-12, + .pure-u-lg-22-24 { + width: 91.6667%; + *width: 91.6357%; + } + + .pure-u-lg-23-24 { + width: 95.8333%; + *width: 95.8023%; + } + + .pure-u-lg-1, + .pure-u-lg-1-1, + .pure-u-lg-5-5, + .pure-u-lg-24-24 { + width: 100%; + } +} + +@media screen and (min-width: 80em) { + .pure-u-xl-1, + .pure-u-xl-1-1, + .pure-u-xl-1-2, + .pure-u-xl-1-3, + .pure-u-xl-2-3, + .pure-u-xl-1-4, + .pure-u-xl-3-4, + .pure-u-xl-1-5, + .pure-u-xl-2-5, + .pure-u-xl-3-5, + .pure-u-xl-4-5, + .pure-u-xl-5-5, + .pure-u-xl-1-6, + .pure-u-xl-5-6, + .pure-u-xl-1-8, + .pure-u-xl-3-8, + .pure-u-xl-5-8, + .pure-u-xl-7-8, + .pure-u-xl-1-12, + .pure-u-xl-5-12, + .pure-u-xl-7-12, + .pure-u-xl-11-12, + .pure-u-xl-1-24, + .pure-u-xl-2-24, + .pure-u-xl-3-24, + .pure-u-xl-4-24, + .pure-u-xl-5-24, + .pure-u-xl-6-24, + .pure-u-xl-7-24, + .pure-u-xl-8-24, + .pure-u-xl-9-24, + .pure-u-xl-10-24, + .pure-u-xl-11-24, + .pure-u-xl-12-24, + .pure-u-xl-13-24, + .pure-u-xl-14-24, + .pure-u-xl-15-24, + .pure-u-xl-16-24, + .pure-u-xl-17-24, + .pure-u-xl-18-24, + .pure-u-xl-19-24, + .pure-u-xl-20-24, + .pure-u-xl-21-24, + .pure-u-xl-22-24, + .pure-u-xl-23-24, + .pure-u-xl-24-24 { + display: inline-block; + *display: inline; + zoom: 1; + letter-spacing: normal; + word-spacing: normal; + vertical-align: top; + text-rendering: auto; + } + + .pure-u-xl-1-24 { + width: 4.1667%; + *width: 4.1357%; + } + + .pure-u-xl-1-12, + .pure-u-xl-2-24 { + width: 8.3333%; + *width: 8.3023%; + } + + .pure-u-xl-1-8, + .pure-u-xl-3-24 { + width: 12.5000%; + *width: 12.4690%; + } + + .pure-u-xl-1-6, + .pure-u-xl-4-24 { + width: 16.6667%; + *width: 16.6357%; + } + + .pure-u-xl-1-5 { + width: 20%; + *width: 19.9690%; + } + + .pure-u-xl-5-24 { + width: 20.8333%; + *width: 20.8023%; + } + + .pure-u-xl-1-4, + .pure-u-xl-6-24 { + width: 25%; + *width: 24.9690%; + } + + .pure-u-xl-7-24 { + width: 29.1667%; + *width: 29.1357%; + } + + .pure-u-xl-1-3, + .pure-u-xl-8-24 { + width: 33.3333%; + *width: 33.3023%; + } + + .pure-u-xl-3-8, + .pure-u-xl-9-24 { + width: 37.5000%; + *width: 37.4690%; + } + + .pure-u-xl-2-5 { + width: 40%; + *width: 39.9690%; + } + + .pure-u-xl-5-12, + .pure-u-xl-10-24 { + width: 41.6667%; + *width: 41.6357%; + } + + .pure-u-xl-11-24 { + width: 45.8333%; + *width: 45.8023%; + } + + .pure-u-xl-1-2, + .pure-u-xl-12-24 { + width: 50%; + *width: 49.9690%; + } + + .pure-u-xl-13-24 { + width: 54.1667%; + *width: 54.1357%; + } + + .pure-u-xl-7-12, + .pure-u-xl-14-24 { + width: 58.3333%; + *width: 58.3023%; + } + + .pure-u-xl-3-5 { + width: 60%; + *width: 59.9690%; + } + + .pure-u-xl-5-8, + .pure-u-xl-15-24 { + width: 62.5000%; + *width: 62.4690%; + } + + .pure-u-xl-2-3, + .pure-u-xl-16-24 { + width: 66.6667%; + *width: 66.6357%; + } + + .pure-u-xl-17-24 { + width: 70.8333%; + *width: 70.8023%; + } + + .pure-u-xl-3-4, + .pure-u-xl-18-24 { + width: 75%; + *width: 74.9690%; + } + + .pure-u-xl-19-24 { + width: 79.1667%; + *width: 79.1357%; + } + + .pure-u-xl-4-5 { + width: 80%; + *width: 79.9690%; + } + + .pure-u-xl-5-6, + .pure-u-xl-20-24 { + width: 83.3333%; + *width: 83.3023%; + } + + .pure-u-xl-7-8, + .pure-u-xl-21-24 { + width: 87.5000%; + *width: 87.4690%; + } + + .pure-u-xl-11-12, + .pure-u-xl-22-24 { + width: 91.6667%; + *width: 91.6357%; + } + + .pure-u-xl-23-24 { + width: 95.8333%; + *width: 95.8023%; + } + + .pure-u-xl-1, + .pure-u-xl-1-1, + .pure-u-xl-5-5, + .pure-u-xl-24-24 { + width: 100%; + } +} \ No newline at end of file diff --git a/tpl/myShaarli/css/grids-responsive.min.css b/tpl/myShaarli/css/grids-responsive.min.css new file mode 100644 index 00000000..1df05db8 Binary files /dev/null and b/tpl/myShaarli/css/grids-responsive.min.css differ diff --git a/tpl/myShaarli/css/myShaarli.css b/tpl/myShaarli/css/myShaarli.css new file mode 100644 index 00000000..fa012cba --- /dev/null +++ b/tpl/myShaarli/css/myShaarli.css @@ -0,0 +1,1360 @@ +/** + * General + */ +body { + background: linear-gradient(#434343,#cdcdcd) no-repeat transparent; + box-sizing: border-box; + color: #000; + font-size: .9em; +} + +.strong { + font-weight: bold; +} + +.clear { + clear: both; +} + +.center { + text-align: center; + margin: auto; +} + +.label { + display: inline-block; + padding: .25em .4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25rem; +} + +.linklist-item-infos .label a:hover { + color: #1b926c; +} + +pre { + max-width: 100%; +} + +@font-face { + font-family: 'Roboto'; + font-weight: 400; + font-style: normal; + src: + local('Roboto'), + local('Roboto-Regular'), + url('../fonts/Roboto-Regular.woff2') format('woff2'), + url('../fonts/Roboto-Regular.woff') format('woff'); +} + +@font-face { + font-family: 'Roboto'; + font-weight: 700; + font-style: normal; + src: + local('Roboto'), + local('Roboto-Bold'), + url('../fonts/Roboto-Bold.woff2') format('woff2'), + url('../fonts/Roboto-Bold.woff') format('woff'); +} + +body, .pure-g [class*="pure-u"] { + font-family: Roboto, Arial, sans-serif; +} + + +*:hover { + transition: color .25s linear; +} + +/** + * Extends Pure grids responsive to hide items. + * Use xx-0 to hide an item on xx screen. + * Display it at any level with xx-visible. + */ +.pure-u-0 { display: none !important; } +@media screen and (min-width: 35.5em) { + .pure-u-sm-0 { display: none !important; } + .pure-u-sm-visible { display: inline-block !important; } +} +@media screen and (min-width: 48em) { + .pure-u-md-0 { display: none !important; } + .pure-u-md-visible { display: inline-block !important; } +} +@media screen and (min-width: 64em) { + .pure-u-lg-0 { display: none !important; } + .pure-u-lg-visible { display: inline-block !important; } +} +@media screen and (min-width: 80em) { + .pure-u-xl-0 { display: none !important; } + .pure-u-xl-visible { display: inline-block !important; } +} + +/** + * Make pure-extras alert closable. + */ +.pure-alert-closable .fa-times { + float: right; +} +.pure-alert-close { + cursor: pointer; +} + +.pure-alert-success { + background-color: #1b926c; + margin-bottom: .4em; +} + +.anchor:target { + padding-top: 40px; +} +/** + * MENU + **/ +.shaarli-menu { + position: fixed; + top: 0; + width: 100%; + --height: 60px; + background: linear-gradient(#333333,#111111); + background-color: #333333; + box-shadow: 0 1px 2px rgba(0,0,0,0.5); + -webkit-font-smoothing: antialiased; + /* Hack to transition with auto height: http://stackoverflow.com/a/8331169/1484919 */ + max-height: 45px; + transition: max-height 0.5s; + overflow: hidden; + z-index: 999; +} + +/* Chrome bugfix: with 100% height, it only displays the first element. */ +.pure-menu-item { + height: 45px; +} + +.shaarli-menu.open { + max-height: 500px; + transition: max-height 0.75s; +} + +.head-logo { + float: left; + margin: 0px 5px 0 0; +} + +.pure-menu-link, +.pure-menu-link:visited, +.pure-menu-selected .pure-menu-link, +.pure-menu-selected .pure-menu-link:visited { + padding: 0.8em 1em; + color: #f5f5f5; +} + +.pure-menu-link:hover, .pure-menu-link:focus, +.pure-menu-selected .pure-menu-link:hover, +.pure-menu-selected .pure-menu-link:focus { + color: #fff; + background: transparent; +} + +.pure-menu-item:hover::after { + margin: -4px auto 0 auto; + display: block; + content:""; + background: #1b926c; + height: 4px; + width: 100%; +} + +.menu-toggle { + width: 34px; + height: 45px; + position: absolute; + top: 5px; + right: 0; + display: none; +} + +.menu-toggle .bar { + background-color: #b0ddce; + display: block; + width: 20px; + height: 2px; + border-radius: 100px; + position: absolute; + top: 18px; + right: 7px; + transition: all 0.5s; +} + +.menu-toggle .bar:first-child { + transform: translateY(-6px); +} + +.menu-toggle.x .bar { + transform: rotate(45deg); +} + +.menu-toggle.x .bar:first-child { + transform: rotate(-45deg); +} + +@media screen and (max-width: 64em) { + .menu-toggle { + display: block; + } +} + +.header-buttons { + text-align: right; +} + +.linkcount { + color: #A2DD42; + font-size: 0.8em; +} + +@media screen and (min-width: 64em) { + .linkcount { + position: absolute; + right: 5px; + } +} + +#search, #search-linklist, #search-tagcloud { + text-align: center; + width: 100%; +} + +.contain-searchform { + display: flex; +} + +#search input[type="text"], #search-linklist input[type="text"] { + padding: 0 5px; + height: 30px; + width: 100%; + background: #f5f5f5; + border: medium none currentColor; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.078), 0 1px 1px rgba(0, 0, 0, 0.298) inset; + border-radius: .2em; + color: #252525; + margin: .1em .2em; +} +@media screen and (max-width: 64em) { + .searchform { + max-width: 260px; + margin: 0 auto; + } +} + +/* because chrome */ +#search input[type="text"]::-webkit-input-placeholder, +#search-linklist input[type="text"]::-webkit-input-placeholder { + color: #777777; +} + +#search button, +#search-tagcloud button, +#search-linklist button { + background: transparent; + border: none; + border-radius: 2px; +} + +#search button { + color: #f5f5f5; +} + +#search-linklist button { + color: #252525; +} + +#search button:hover, +#search-linklist button:hover { + color: #fff; +} +#search-tagcloud button:hover { + color: #d0d0d0; +} + +#search, +#search-linklist { + padding: 5px 0; +} + +@media screen and (min-width: 64em) { + #search .searchform, + #search-linklist .searchform { + display: flex; + text-align: right; + width: 60%; + margin: 0 auto; + } + + #search .tagfilter, + #search-linklist .tagfilter { + text-align: left; + display: flex; + width: 50%; + } +} +@media screen and (max-width: 64em) { + #search, #search * { + visibility: hidden; + } +} + +.subheader-form a.button { + color: #f5f5f5; + font-weight: bold; + text-decoration: none; + border: 2px solid #f5f5f5; + border-radius: 5px; + padding: 3px 10px; +} + +.linklist-item-editbuttons .delete-checkbox { + display: none; +} + +#header-login-form input[type="text"], #header-login-form input[type="password"] { + width: 200px; +} + +/* because chrome */ +#header-login-form input[type="text"]::-webkit-input-placeholder, +#header-login-form input[type="password"]::-webkit-input-placeholder { + color: #777777; +} + +.subheader-form { + visibility: hidden; + position: fixed; + width: 100%; + text-align: center; + background: #111; + display: block; + z-index: 999; + height: 30px; + padding: 5px 0; +} + +@media screen and (min-width: 64em) { + .subheader-form.open, .subheader-form.open * { + visibility: visible; + } +} + +.subheader-form input[type="text"], .subheader-form input[type="password"], .subheader-form .remember-me { + margin: 0 0 5px 0; + padding: 5px 5px 3px 15px; + height: 20px; + width: 20%; + background: #f5f5f5; + border: medium none currentColor; + border-radius: 2px; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.078), 0 1px 4px rgba(0, 0, 0, 0.298) inset; + color: #252525; +} + +/* because chrome */ +.subheader-form input[type="text"]::-webkit-input-placeholder, +.subheader-form input[type="password"]::-webkit-input-placeholder +{ + color: #252525; +} + +.subheader-form .remember-me { + display: inline-block; + width: auto; + padding: 5px 20px 3px 20px; + cursor: pointer; +} + +.subheader-form .remember-me label, .subheader-form .remember-me input { + cursor: pointer; +} + +.subheader-form input[type="submit"] { + display: inline-block; + margin: 0 0 5px 0; + padding: 4px 0 4px 0; + height: 28px; + width: 100px; + background: #1b926c; + border: 1px solid #f5f5f5; + color: #f5f5f5; + border-radius: 2px; +} + +.subheader-form input[type="submit"]:hover { + background: #f5f5f5; + color: #1b926c; +} + +.new-version-message { + text-align: center; +} + +.new-version-message a { + color: rgb(151, 96, 13); + font-weight: bold; +} + +/** + * CONTENT - GENERAL + */ +#content { + position: relative; + z-index: 2; + margin-top: 45px; +} + +/** + * Plugins additional forms + */ +.toolbar-plugin { + margin: 5px 0; + text-align: center; +} + +.toolbar-plugin input[type="text"] { + padding: 0 5px; + height: 30px; + width: 300px; + background: #f5f5f5; + border: medium none currentColor; + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.078), 0 1px 1px rgba(0, 0, 0, 0.298) inset; + border-radius: 2px; + color: #252525; +} + +/* because chrome */ +.toolbar-plugin input[type="text"]::-webkit-input-placeholder { + color: #777777; +} + +.toolbar-plugin input[type="submit"] { + padding: 0 10px; + height: 30px; + background: #f5f5f5; + border: medium none currentColor; + border-radius: 2px; + color: #252525; +} + +.toolbar-plugin input[type="submit"]:hover { + background: #fff; +} + +@media screen and (max-width: 64em) { + .toolbar-plugin input[type="text"] { + width: 70%; + + } +} + +/** + * CONTENT - LINKLIST PAGING + * 64em -> lg + */ +.linklist-filters { + margin: 0; + color: #252525; + font-size: 0.9em; + align-self:center; +} + +.linklist-filters a:hover { + color: #b0ddce; + background: #1b926c; +} + +.linklist-filters a { + padding: 5px 8px; + text-decoration: none; +} + +.linklist-filters .filter-off { + color: #252525; + background: #f5f5f5; +} + +.linklist-filters .filter-on { + color: #b0ddce; + background: #1b926c; +} + +.linklist-pages { + margin: 0; + color: #252525; + text-align: center; + align-self:center; +} + +.linklist-pages a { + color: #252525; + text-decoration: none; +} + +.linklist-pages a:hover { + color: #fff; +} + +.linksperpage { + margin: 0; + text-align: right; + color: #252525; + font-size: 0.9em; + align-self:center; +} + +.linksperpage a { + padding: 5px 5px; + text-decoration: none; + color: #252525; + background: #f5f5f5; +} + +.linksperpage a:hover { + color: #b0ddce; + background: #1b926c; +} + +.linksperpage a, .linksperpage input[type="text"] { + display: inline-block; + width: 20px; + text-align: center; +} + +.linksperpage form { + display: inline; +} + +.linksperpage input[type="text"] { + height: 20px; + margin: 0; + padding: 4px 5px 3px 8px; + background: #f5f5f5; + border: medium none currentColor; + color: #252525; + font-size: 0.8em; +} + +.paging { + background-color: #777; + margin: 0 0 5px 0; + border-radius: .3em; + padding: .2em; +} + +/** + * CONTENT - LINKLIST ITEMS + */ +.linklist-item { + background: #f5f5f5; + box-shadow: 2px 2px 0.5em #797979; + border-radius: .2em; + margin: 0 0 15px 0; + border-radius: .3em; +} + +.linklist-item-title, .linklist-item-title h2 { + margin: 0; + word-wrap: break-word; + border-radius: .2em .2em 0 0; +} + +.linklist-item-title { + position: relative; + background: #f5f5f5; +} + +.linklist-item-title h2 { + padding: 3px 10px 0 10px; + line-height: 30px; +} + +.linklist-item-title a { + font-size: 0.7em; + color: #252525; + text-decoration: none; + vertical-align: middle; +} + +.linklist-item-title .linklist-link { + font-size: 1.1em; + color: #1b926c; +} + +.linklist-item-title a:visited .linklist-link { + color: #555555; +} + +.linklist-item-title a:hover, .linklist-item-title .linklist-link:hover{ + color: #252525; +} + + +.linklist-item-title .label-private { + border: solid 1px #F89406; + font-family: Arial, sans-serif; + font-size: 0.65em; + color: #F89406; +} + +.linklist-item-title .fold-button { + display: none; +} + +.linklist-item-editbuttons { + float: right; + padding: 8px 5px; +} + +.linklist-item-editbuttons * { + display: block; + float: left; + margin: 0 1px; +} + +.linklist-item-editbuttons a { + font-size: 1em; +} + +.edit-link { + font-size: 1.2em; + color: #0b5ea6; +} + +.delete-link { + font-size: 1.3em; + color: #ac2925 !important; +} + +.linklist-item-description { + position: relative; + padding: 10px; + word-wrap: break-word; + color: #252525; + line-height: 1.3em; +} + + { + position: absolute; + left: 3px; + top: 0; + display: block; + content:""; + background: #F89406; + height: 95%; + width: 2px; + z-index: 1; +} + +.linklist-item-description a { + text-decoration: none; + color: #1b926c; +} + +.linklist-item-description a:hover { + color: #252525; +} + +.linklist-item-description a:visited { + color: #14553f; +} + +.linklist-item-thumbnail { + position: relative; + padding: .6em; + float: left; + z-index: 50; +} + +.linklist-item.private .linklist-item-title::before, +.linklist-item.private .linklist-item-description::before, +.linklist-item.private .linklist-item-thumbnail::before { + position: absolute; + left: 3px; + top: 0; + display: block; + content:""; + background: #F89406; + height: 95%; + width: 2px; + z-index: 1; +} + +.favicon { + height: 16px; + margin-right: .1em; + vertical-align: unset; + width: 16px; +} + +.linklist-item.private .linklist-item-title::before { + margin-top: 3px; +} + +.linklist-item-infos { + padding: 8px 8px 5px 8px; + background: #ddd; + color: #252525; + border-radius: 0 0 .2em .2em; +} + +.linklist-item-infos a { + color: #252525; + text-decoration: none; +} + +.linklist-item-infos a:hover { + color: #000; +} + +.linklist-item-infos .linklist-item-tags { + font-size: 0.8em; +} + +.linklist-item-infos .label-tag { + font-size: 1em; +} + +.linklist-item-infos-dateblock { + font-size: 0.9em; +} + +.linklist-plugin-icon { + width: 13px; + height: 13px; +} + +.linklist-item-infos-url { + text-align: right; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 0.8em; +} + +.linklist-item-infos .mobile-buttons { + text-align: right; +} + +.linklist-item-infos .linklist-plugin-icon { + display: inline-block; + margin: 0 2px; + width: 16px; + height: 16px; +} + +/** 64em -> lg **/ +@media screen and (max-width: 64em) { + .linklist-item-infos-url { + text-align: left; + } +} + +/** + * Footer + */ +#footer { + margin: 20px 0; + padding: 5px; + text-align: center; + color: #252525; +} + +#footer:before { + display: block; + content:""; + background: linear-gradient(to right, #949393, #252525, #949393); + height: 1px; + width: 80%; + margin: 10px auto; +} + +#footer a { + color: #252525; +} + +/** + * PAGE FORM + */ +.page-form { + margin: 20px 0 0 0; + background: #f5f5f5; + box-shadow: 1px 1px 2px #797979; + color: #252525; + overflow: hidden; +} + +.page-form .window-title { + margin: 0 0 10px 0; + padding: 10px 0; + width: 100%; + color: #1b926c; + background: #f5f5f5; + text-align: center; +} + +.page-form .window-subtitle { + text-align: center; +} + +.page-form a { + color: #1b926c; + font-weight: bold; + text-decoration: none; +} + +.page-form p { + padding: 5px 10px; + margin: 0; +} + +.page-form input[type="text"], +.page-form input[type="password"], +.page-form textarea { + box-sizing: border-box; + margin: 10px 0; + padding: 5px 5px 3px 15px; + height: 35px; + width: 90%; + background: #eeeeee; + border: solid 1px #d8d8d8; + border-radius: 2px; + color: #252525; +} + +.page-form textarea { + min-height: 240px; + padding: 15px 5px 3px 15px; + resize: vertical; + overflow-y: auto; + word-wrap:break-word +} + +/* because chrome */ +.page-form input[type="text"]::-webkit-input-placeholder, +.page-form input[type="password"]::-webkit-input-placeholder { + color: #777777; +} + +.page-form input[type="submit"], .page-form a.button { + margin: 15px 5px; + height: 35px; + line-height: 35px; + width: 150px; + background: #1b926c; + color: #f5f5f5; + border: none; + box-shadow: 1px 1px 1px #ddd, -1px -1px 6px #ddd, -1px 1px 2px #ddd, 1px -1px 2px #ddd; + font-size: 1.2em; + text-decoration: none; + vertical-align: center; + font-weight: normal; + display: inline-block; +} + + +.page-form .button.button-red { + background: #ac2925; +} + +.page-form .submit-buttons { + margin-bottom: 10px; +} + +@media screen and (min-width: 64em) { + .page-form .submit-buttons { + position: relative; + } + + .page-form .submit-buttons .button.button-red { + position: absolute; + right: 5%; + } +} + +@media screen and (max-width: 64em) { + .page-form .submit-buttons .button { + display: block; + margin: auto; + } +} + +.page-form select { + color: #252525; +} + +/** + * PAGE FORM - LIGHT + */ +.page-form-light div, .page-form-light p { + text-align: center; +} + +/** + * PAGE FORM - COMPLETE + */ +.page-form-complete { + #background: #f5f5f5; +} + +.page-form-complete div, .page-form-complete p { + color: #252525; +} + +.page-form-complete .form-label, .page-form-complete .form-input { + position: relative; + height: 60px; +} + +.page-form-complete .form-label label, +.page-form-complete .form-input input, +.page-form-complete .form-input select.align, +.page-form-complete .timezone { + position: absolute; + top: 50%; + transform: translateY(-50%); +} + +.page-form-complete .form-label label { + text-align: right; + right: 0; + padding: 0 20px; +} + +.page-form-complete .label-name { + font-weight: bold; +} + +.page-form-complete .label-desc { + font-size: 0.8em; +} + +.page-form-complete input[type="text"], +.page-form-complete input[type="password"], +.page-form-complete textarea { + margin: 0; +} + +.page-form section { + margin: 10px 0 25px 0; +} + +.page-form table { + margin: auto; + width: 90%; +} + +.page-form table .order { + text-decoration: none; + color: #252525; +} + +.page-form table, .page-form th, .page-form td { + border-width: 1px 0; + border-style: solid; + border-color: #aaaaaa; +} + +.page-form th, .page-form td { + padding: 5px; + +} + +/* Awesomeplete fix */ +div.awesomplete { + width: inherit; + margin: 0 10px 0 0; + width: 100%; +} + +div.awesomplete > input { + display: inherit; +} + +div.awesomplete > ul { + z-index: 9999; +} + +.page-form .awesomplete { + width: 90%; +} + +.page-form .awesomplete input { + width: 100%; +} + +.page-form div.awesomplete > ul { + color: black; +} + +form[name="linkform"].page-form { + overflow: visible; +} + +@media screen and (max-width: 64em) { + .page-form-complete .form-label { + height: inherit; + } + + .page-form-complete .form-label label, + .page-form-complete .form-input input, + .page-form-complete .timezone { + position: inherit; + top: inherit; + transform: translateY(0); + } + + .page-form-complete .form-input input[type="checkbox"] { + position: absolute; + top: 50%; + right: 50%; + transform: translateY(-50%); + } + + .page-form-complete .form-input { + text-align: center; + } + + .page-form-complete .form-label label { + display: block; + text-align: left; + margin: 10px 0 0 0; + } + + .timezone-continent:after { + content:"\a\a"; + white-space: pre; + } + + .page-form-complete .radio-buttons { + text-align: left; + padding: 5px 15px; + } +} + +/** + * Page visitor (page form extended) + */ +.page-visitor { + color: #252525; +} + +#page404 { + color: #3f3f3f; +} + +/** + * EDIT LINK + */ +#editlinkform .created-date { + color: #767676; + margin-bottom: 10px; +} + +/** + * LOGIN + */ +#login-form .remember-me { + margin: 5px 0; +} + +/** + * Search results + */ +.search-result a { + color: white; + text-decoration: none; +} + +.search-result .label-tag { + border-color: white; +} + +.search-result .label-tag .remove { + border-left: white 1px solid; + padding: 0 0 0 5px; + margin: 0 0 0 5px; +} + +.search-result .label-private { + border: 1px solid white; +} + +/** + * TOOLS + */ +.tools-item { + margin: 10px 0; +} + +.tools-item .pure-button:hover { + background-image: none; + background-color: #1b926c; + color: #f5f5f5; +} + +/** + * PLUGIN ADMIN + */ +#pluginform .mobile-row { + font-size: 0.9em; +} + +#pluginform .more { + margin-top: 10px; +} + +@media screen and (max-width: 64em) { + #pluginform .main-row, #pluginform .main-row td { + border-bottom-style: none; + } + + #pluginform .mobile-row, #pluginform .mobile-row td { + border-top-style: none; + } +} + +/** + * IMPORT + */ +#import-field { + margin: 15px 0; +} + +/** + * TAG CLOUD + */ +#cloudtag { + padding: 10px; + text-align: center; +} + +#cloudtag a { + color: #252525; + text-decoration: none; +} + +#cloudtag a { + color: #1b926c; + text-decoration: none; +} + +#cloudtag a:hover { + color: #252525; + text-decoration: none; +} + +#cloudtag .count { + color: #7f7f7f; +} + +/** + * TAG LIST + */ +#taglist { + padding: 0 10px; +} + +#taglist a { + color: #252525; + text-decoration: none; +} + +#taglist .count { + display: inline-block; + width: 35px; + text-align: right; + color: #7f7f7f; +} + +#taglist .rename-tag-form { + display: none; +} + +#taglist .delete-tag { + color: #ac2925; + display: none; +} + +#taglist .rename-tag { + color: #0b5ea6; +} + +#taglist .validate-rename-tag { + color: #1b926c; +} + +/** + * Picture wall CSS + */ +#picwall_container { + margin: 0 10px 10px 10px; + color: #252525; + background-color: #f5f5f5; + clear: both; +} + +.picwall_pictureframe { + margin: 2px; + background-color: #f5f5f5; + z-index: 5; + position: relative; + display: table-cell; + vertical-align: middle; + width: 90px; + height: 90px; + overflow: hidden; + text-align: center; + float: left; +} + +.b-lazy { + -webkit-transition: opacity 500ms ease-in-out; + -moz-transition: opacity 500ms ease-in-out; + -o-transition: opacity 500ms ease-in-out; + transition: opacity 500ms ease-in-out; + opacity: 0; +} +.b-lazy.b-loaded { + opacity: 1; +} + +.picwall_pictureframe img { + max-width: 100%; + height: auto; + color: transparent; +} /* Adapt the width of the image */ + +.picwall_pictureframe a { + text-decoration: none; +} + +/* CSS to show title when hovering an image - no javascript required. */ +.picwall_pictureframe span.info { + display: none; + font-family: Arial, sans-serif; +} + +.picwall_pictureframe:hover span.info { + display: block; + position: absolute; + top: 0; + left: 0; + width: 90px; + height: 90px; + font-weight: bold; + font-size: 9pt; + color: #f5f5f5; + text-align: left; + background-color: rgba(0, 0, 0, 0.8); +} + +/** + * DAILY + */ +.daily-desc { + color: #7f7f7f; + font-size: 0.8em; +} + +.daily-about a { + color: #343434; + text-decoration: none; +} + +.daily-about a:hover { + color: #7f7f7f; +} + +.daily-about h3:before, .daily-about h3:after { + display: block; + content:""; + background: linear-gradient(to right, #d5d4d4, #252525, #d5d4d4); + height: 1px; + width: 90%; + margin: 10px auto; +} + +.daily-entry { + padding: 0 10px; +} + +.daily-entry .daily-entry-title:after { + display: block; + content:""; + background: linear-gradient(to right, #fff, #515151, #fff); + height: 1px; + width: 70%; + margin: 5px auto; +} + +.daily-entry .daily-entry-title { + margin: 10px 0 0 0; +} + +.daily-entry .daily-entry-title a { + color: #000; + text-decoration: none; +} + +.daily-entry .daily-entry-description { + padding: 5px 5px 0 5px; + font-size: 0.9em; + text-align: justify; + word-wrap: break-word; +} + +.daily-entry .daily-entry-tags { + padding: 0 5px 5px 5px; + font-size: 0.8em; +} + +.daily-entry-thumbnail { + float: left; + margin: 15px 5px 5px 15px; +} + +.daily-entry-description a { + text-decoration: none; + color: #1b926c; +} + +.daily-entry-description a:hover { + text-shadow: 1px 1px #ddd; +} + +.daily-entry-description a:visited { + color: #20b988; +} + +/* + * Fix empty bookmarklet name in Firefox + */ +.pure-button { + -moz-user-select: auto; +} + +.tag-sort { + margin-top: 30px; + text-align: center; +} + +.tag-sort a { + display: inline-block; + margin: 0 15px; + color: white; + text-decoration: none; + font-weight: bold; +} diff --git a/tpl/myShaarli/css/pure-extras.css b/tpl/myShaarli/css/pure-extras.css new file mode 100644 index 00000000..d72fc94c --- /dev/null +++ b/tpl/myShaarli/css/pure-extras.css @@ -0,0 +1,262 @@ +/* Images */ +.pure-img-eliptical { + border-radius: 80%; +} +.pure-img-rounded { + border-radius: 3px; +} +.pure-img-bordered { + background-color: #FFFFFF; + border: 1px solid rgba(0, 0, 0, 0.2); + padding: 5px; +} + + +/* Thumbnails */ +.pure-thumbnails li { + text-align: center; + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + vertical-align: top; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0.5em; +} +.pure-thumbnails { + list-style: none; + margin: 0; + padding: 0; +} + +.pure-thumbnails a:focus { + outline: 0 none; +} + +.pure-thumb { + display: block; + text-decoration: none; + color: inherit; +} +.pure-thumb img { + max-width: 100%; + margin-right: auto; + margin-left: auto; + vertical-align: middle; /* this will remove a thin line below the image */ + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.pure-thumb-bordered { + border: 1px solid rgba(0, 0, 0, 0.2); +} +.pure-thumb .caption { + text-align: left; + display: block; + margin: 0 5px 6px; + +} +.pure-thumb .caption p { + margin: 0.3em 0 0; + font-size: 75%; +} +.pure-thumb .caption .caption-head { + font-weight: bold; + margin-top: 0.3em; +} + +.pure-thumb-eliptical img { + border-radius: 50%; +} +.pure-thumb-rounded img { + border-radius: 3px; +} + +/* Badges/Pills */ +.pure-badge, +.pure-badge-error, +.pure-badge-warning, +.pure-badge-success, +.pure-badge-info, +.pure-badge-inverse { + padding: 0.35em 0.9em 0.35em; + background-color: #9D988E; + color: #fff; + display: inline-block; + font-size: 11.844px; + font-weight: bold; + line-height: 1.2em; + vertical-align: baseline; + white-space: nowrap; + border-radius: 20px; + margin: 0.2em; +} +.pure-badge-error { + background-color: #D13C38; +} +.pure-badge-warning { + background-color: #E78C05; +} +.pure-badge-success { + background-color: rgb(83, 180, 79); +} +.pure-badge-info { + background-color: rgb(18, 169, 218); +} +.pure-badge-inverse { + background-color: #4D370C; +} + +/* Alerts */ +.pure-alert { + position: relative; + margin-bottom: 1em; + padding: 1em; + background: #ccc; + border-radius: 3px; +} + +.pure-alert label { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + *zoom: 1; + white-space: nowrap; +} + +.pure-alert { + background-color: rgb(209, 235, 238); + color: rgb(102, 131, 145); +} +.pure-alert-error { + background-color: #D13C38; + color: #fff; +} + +.pure-alert-warning { + background-color: rgb(250, 191, 103); + color: rgb(151, 96, 13); +} + +.pure-alert-success { + background-color: rgb(83, 180, 79); + color: #fff; +} + + +/* Contextual Modals */ + +.pure-popover { + position: relative; + width: 300px; + background-color: #f0f1f3; + color: #2f3034; + padding: 15px; + border: 1px solid #bfc0c8; + border-radius: 2px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + box-padding: border-box; + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.pure-arrow-border, .pure-arrow { + border-style: solid; + border-width: 10px; + height:0; + width:0; + position:absolute; +} + + +/* POPOVER ARROW POSITIONING BOTTOM */ + +.pure-popover.bottom .pure-arrow-border { + border-color: #bfc0c8 transparent transparent transparent; + bottom: -20px; + left: 50%; +} +.pure-popover.bottom .pure-arrow { + border-color: #f0f1f3 transparent transparent transparent; + bottom:-19px; + left: 50%; +} + +/* POPOVER ARROW POSITIONING TOP*/ + +.pure-popover.top .pure-arrow-border { + border-color: transparent transparent #bfc0c8 transparent; + top: -21px; + left: 50%; +} +.pure-popover.top .pure-arrow { + border-color: transparent transparent #f0f1f3 transparent; + top:-20px; + left: 50%; +} + +/* POPOVER ARROW POSITIONING RIGHT*/ + +.pure-popover.right .pure-arrow-border { + border-color: transparent transparent transparent #bfc0c8; + top: 45%; + right: -21px; +} +.pure-popover.right .pure-arrow { + border-color: transparent transparent transparent #f0f1f3; + top:45%; + right: -20px; +} + + +/* POPOVER ARROW POSITIONING LEFT*/ + +.pure-popover.left .pure-arrow-border { + border-color: transparent #bfc0c8 transparent transparent; + top: 45%; + left: -21px; +} +.pure-popover.left .pure-arrow { + border-color: transparent #f0f1f3 transparent transparent; + top:45%; + left: -20px; +} + + +/* BUTTON IMPROVEMENTS */ +.pure-button-block { + display: block; +} +.pure-button-small { + padding: .6em 2em .65em; + font-size:70%; +} +.pure-button-large { + padding: .8em 5em .9em; + font-size:110%; +} +.pure-button-selected { + background-color: #345fcb; + color: #fff; +} +.pure-button-secondary { + background: rgb(161, 195, 238); + color: rgb(26, 88, 122); +} +.pure-button-error { + background: rgb(214, 86, 75); + color: white; +} +.pure-button-success { + background: rgb(54, 197, 71); + color: white; +} +.pure-button-warning { + background: rgb(255, 163, 0); + color: white; +} + diff --git a/tpl/myShaarli/css/pure.css b/tpl/myShaarli/css/pure.css new file mode 100644 index 00000000..a07d74cf --- /dev/null +++ b/tpl/myShaarli/css/pure.css @@ -0,0 +1,1475 @@ +/*! +Pure v0.6.0 +Copyright 2014 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +https://github.com/yahoo/pure/blob/master/LICENSE.md +*/ +/*! +normalize.css v^3.0 | MIT License | git.io/normalize +Copyright (c) Nicolas Gallagher and Jonathan Neal +*/ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} + +/*csslint important:false*/ + +/* ========================================================================== + Pure Base Extras + ========================================================================== */ + +/** + * Extra rules that Pure adds on top of Normalize.css + */ + +/** + * Always hide an element when it has the `hidden` HTML attribute. + */ + +.hidden, +[hidden] { + display: none !important; +} + +/** + * Add this class to an image to make it fit within it's fluid parent wrapper while maintaining + * aspect ratio. + */ +.pure-img { + max-width: 100%; + height: auto; + display: block; +} + +/*csslint regex-selectors:false, known-properties:false, duplicate-properties:false*/ + +.pure-g { + letter-spacing: -0.31em; /* Webkit: collapse white-space between units */ + *letter-spacing: normal; /* reset IE < 8 */ + *word-spacing: -0.43em; /* IE < 8: collapse white-space between units */ + text-rendering: optimizespeed; /* Webkit: fixes text-rendering: optimizeLegibility */ + + /* + Sets the font stack to fonts known to work properly with the above letter + and word spacings. See: https://github.com/yahoo/pure/issues/41/ + + The following font stack makes Pure Grids work on all known environments. + + * FreeSans: Ships with many Linux distros, including Ubuntu + + * Arimo: Ships with Chrome OS. Arimo has to be defined before Helvetica and + Arial to get picked up by the browser, even though neither is available + in Chrome OS. + + * Droid Sans: Ships with all versions of Android. + + * Helvetica, Arial, sans-serif: Common font stack on OS X and Windows. + */ + font-family: FreeSans, Arimo, "Droid Sans", Helvetica, Arial, sans-serif; + + /* + Use flexbox when possible to avoid `letter-spacing` side-effects. + + NOTE: Firefox (as of 25) does not currently support flex-wrap, so the + `-moz-` prefix version is omitted. + */ + + display: -webkit-flex; + -webkit-flex-flow: row wrap; + + /* IE10 uses display: flexbox */ + display: -ms-flexbox; + -ms-flex-flow: row wrap; + + /* Prevents distributing space between rows */ + -ms-align-content: flex-start; + -webkit-align-content: flex-start; + align-content: flex-start; +} + +/* Opera as of 12 on Windows needs word-spacing. + The ".opera-only" selector is used to prevent actual prefocus styling + and is not required in markup. +*/ +.opera-only :-o-prefocus, +.pure-g { + word-spacing: -0.43em; +} + +.pure-u { + display: inline-block; + *display: inline; /* IE < 8: fake inline-block */ + zoom: 1; + letter-spacing: normal; + word-spacing: normal; + vertical-align: top; + text-rendering: auto; +} + +/* +Resets the font family back to the OS/browser's default sans-serif font, +this the same font stack that Normalize.css sets for the `body`. +*/ +.pure-g [class *= "pure-u"] { + font-family: sans-serif; +} + +.pure-u-1, +.pure-u-1-1, +.pure-u-1-2, +.pure-u-1-3, +.pure-u-2-3, +.pure-u-1-4, +.pure-u-3-4, +.pure-u-1-5, +.pure-u-2-5, +.pure-u-3-5, +.pure-u-4-5, +.pure-u-5-5, +.pure-u-1-6, +.pure-u-5-6, +.pure-u-1-8, +.pure-u-3-8, +.pure-u-5-8, +.pure-u-7-8, +.pure-u-1-12, +.pure-u-5-12, +.pure-u-7-12, +.pure-u-11-12, +.pure-u-1-24, +.pure-u-2-24, +.pure-u-3-24, +.pure-u-4-24, +.pure-u-5-24, +.pure-u-6-24, +.pure-u-7-24, +.pure-u-8-24, +.pure-u-9-24, +.pure-u-10-24, +.pure-u-11-24, +.pure-u-12-24, +.pure-u-13-24, +.pure-u-14-24, +.pure-u-15-24, +.pure-u-16-24, +.pure-u-17-24, +.pure-u-18-24, +.pure-u-19-24, +.pure-u-20-24, +.pure-u-21-24, +.pure-u-22-24, +.pure-u-23-24, +.pure-u-24-24 { + display: inline-block; + *display: inline; + zoom: 1; + letter-spacing: normal; + word-spacing: normal; + vertical-align: top; + text-rendering: auto; +} + +.pure-u-1-24 { + width: 4.1667%; + *width: 4.1357%; +} + +.pure-u-1-12, +.pure-u-2-24 { + width: 8.3333%; + *width: 8.3023%; +} + +.pure-u-1-8, +.pure-u-3-24 { + width: 12.5000%; + *width: 12.4690%; +} + +.pure-u-1-6, +.pure-u-4-24 { + width: 16.6667%; + *width: 16.6357%; +} + +.pure-u-1-5 { + width: 20%; + *width: 19.9690%; +} + +.pure-u-5-24 { + width: 20.8333%; + *width: 20.8023%; +} + +.pure-u-1-4, +.pure-u-6-24 { + width: 25%; + *width: 24.9690%; +} + +.pure-u-7-24 { + width: 29.1667%; + *width: 29.1357%; +} + +.pure-u-1-3, +.pure-u-8-24 { + width: 33.3333%; + *width: 33.3023%; +} + +.pure-u-3-8, +.pure-u-9-24 { + width: 37.5000%; + *width: 37.4690%; +} + +.pure-u-2-5 { + width: 40%; + *width: 39.9690%; +} + +.pure-u-5-12, +.pure-u-10-24 { + width: 41.6667%; + *width: 41.6357%; +} + +.pure-u-11-24 { + width: 45.8333%; + *width: 45.8023%; +} + +.pure-u-1-2, +.pure-u-12-24 { + width: 50%; + *width: 49.9690%; +} + +.pure-u-13-24 { + width: 54.1667%; + *width: 54.1357%; +} + +.pure-u-7-12, +.pure-u-14-24 { + width: 58.3333%; + *width: 58.3023%; +} + +.pure-u-3-5 { + width: 60%; + *width: 59.9690%; +} + +.pure-u-5-8, +.pure-u-15-24 { + width: 62.5000%; + *width: 62.4690%; +} + +.pure-u-2-3, +.pure-u-16-24 { + width: 66.6667%; + *width: 66.6357%; +} + +.pure-u-17-24 { + width: 70.8333%; + *width: 70.8023%; +} + +.pure-u-3-4, +.pure-u-18-24 { + width: 75%; + *width: 74.9690%; +} + +.pure-u-19-24 { + width: 79.1667%; + *width: 79.1357%; +} + +.pure-u-4-5 { + width: 80%; + *width: 79.9690%; +} + +.pure-u-5-6, +.pure-u-20-24 { + width: 83.3333%; + *width: 83.3023%; +} + +.pure-u-7-8, +.pure-u-21-24 { + width: 87.5000%; + *width: 87.4690%; +} + +.pure-u-11-12, +.pure-u-22-24 { + width: 91.6667%; + *width: 91.6357%; +} + +.pure-u-23-24 { + width: 95.8333%; + *width: 95.8023%; +} + +.pure-u-1, +.pure-u-1-1, +.pure-u-5-5, +.pure-u-24-24 { + width: 100%; +} +.pure-button { + /* Structure */ + display: inline-block; + zoom: 1; + line-height: normal; + white-space: nowrap; + vertical-align: middle; + text-align: center; + cursor: pointer; + -webkit-user-drag: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* Firefox: Get rid of the inner focus border */ +.pure-button::-moz-focus-inner { + padding: 0; + border: 0; +} + +/*csslint outline-none:false*/ + +.pure-button { + font-family: inherit; + font-size: 100%; + padding: 0.5em 1em; + color: #444; /* rgba not supported (IE 8) */ + color: rgba(0, 0, 0, 0.80); /* rgba supported */ + border: 1px solid #999; /*IE 6/7/8*/ + border: none rgba(0, 0, 0, 0); /*IE9 + everything else*/ + background-color: #E6E6E6; + text-decoration: none; + border-radius: 2px; +} + +.pure-button-hover, +.pure-button:hover, +.pure-button:focus { + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000',GradientType=0); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0, 0.05)), to(rgba(0,0,0, 0.10))); + background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); + background-image: -moz-linear-gradient(top, rgba(0,0,0, 0.05) 0%, rgba(0,0,0, 0.10)); + background-image: -o-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); + background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); +} +.pure-button:focus { + outline: 0; +} +.pure-button-active, +.pure-button:active { + box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset; + border-color: #000\9; +} + +.pure-button[disabled], +.pure-button-disabled, +.pure-button-disabled:hover, +.pure-button-disabled:focus, +.pure-button-disabled:active { + border: none; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + -khtml-opacity: 0.40; + -moz-opacity: 0.40; + opacity: 0.40; + cursor: not-allowed; + box-shadow: none; +} + +.pure-button-hidden { + display: none; +} + +/* Firefox: Get rid of the inner focus border */ +.pure-button::-moz-focus-inner{ + padding: 0; + border: 0; +} + +.pure-button-primary, +.pure-button-selected, +a.pure-button-primary, +a.pure-button-selected { + background-color: rgb(0, 120, 231); + color: #fff; +} + +/*csslint box-model:false*/ +/* +Box-model set to false because we're setting a height on select elements, which +also have border and padding. This is done because some browsers don't render +the padding. We explicitly set the box-model for select elements to border-box, +so we can ignore the csslint warning. +*/ + +.pure-form input[type="text"], +.pure-form input[type="password"], +.pure-form input[type="email"], +.pure-form input[type="url"], +.pure-form input[type="date"], +.pure-form input[type="month"], +.pure-form input[type="time"], +.pure-form input[type="datetime"], +.pure-form input[type="datetime-local"], +.pure-form input[type="week"], +.pure-form input[type="number"], +.pure-form input[type="search"], +.pure-form input[type="tel"], +.pure-form input[type="color"], +.pure-form select, +.pure-form textarea { + padding: 0.5em 0.6em; + display: inline-block; + border: 1px solid #ccc; + box-shadow: inset 0 1px 3px #ddd; + border-radius: 4px; + vertical-align: middle; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +/* +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors +since IE8 won't execute CSS that contains a CSS3 selector. +*/ +.pure-form input:not([type]) { + padding: 0.5em 0.6em; + display: inline-block; + border: 1px solid #ccc; + box-shadow: inset 0 1px 3px #ddd; + border-radius: 4px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + + +/* Chrome (as of v.32/34 on OS X) needs additional room for color to display. */ +/* May be able to remove this tweak as color inputs become more standardized across browsers. */ +.pure-form input[type="color"] { + padding: 0.2em 0.5em; +} + + +.pure-form input[type="text"]:focus, +.pure-form input[type="password"]:focus, +.pure-form input[type="email"]:focus, +.pure-form input[type="url"]:focus, +.pure-form input[type="date"]:focus, +.pure-form input[type="month"]:focus, +.pure-form input[type="time"]:focus, +.pure-form input[type="datetime"]:focus, +.pure-form input[type="datetime-local"]:focus, +.pure-form input[type="week"]:focus, +.pure-form input[type="number"]:focus, +.pure-form input[type="search"]:focus, +.pure-form input[type="tel"]:focus, +.pure-form input[type="color"]:focus, +.pure-form select:focus, +.pure-form textarea:focus { + outline: 0; + border-color: #129FEA; +} + +/* +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors +since IE8 won't execute CSS that contains a CSS3 selector. +*/ +.pure-form input:not([type]):focus { + outline: 0; + border-color: #129FEA; +} + +.pure-form input[type="file"]:focus, +.pure-form input[type="radio"]:focus, +.pure-form input[type="checkbox"]:focus { + outline: thin solid #129FEA; + outline: 1px auto #129FEA; +} +.pure-form .pure-checkbox, +.pure-form .pure-radio { + margin: 0.5em 0; + display: block; +} + +.pure-form input[type="text"][disabled], +.pure-form input[type="password"][disabled], +.pure-form input[type="email"][disabled], +.pure-form input[type="url"][disabled], +.pure-form input[type="date"][disabled], +.pure-form input[type="month"][disabled], +.pure-form input[type="time"][disabled], +.pure-form input[type="datetime"][disabled], +.pure-form input[type="datetime-local"][disabled], +.pure-form input[type="week"][disabled], +.pure-form input[type="number"][disabled], +.pure-form input[type="search"][disabled], +.pure-form input[type="tel"][disabled], +.pure-form input[type="color"][disabled], +.pure-form select[disabled], +.pure-form textarea[disabled] { + cursor: not-allowed; + background-color: #eaeded; + color: #cad2d3; +} + +/* +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors +since IE8 won't execute CSS that contains a CSS3 selector. +*/ +.pure-form input:not([type])[disabled] { + cursor: not-allowed; + background-color: #eaeded; + color: #cad2d3; +} +.pure-form input[readonly], +.pure-form select[readonly], +.pure-form textarea[readonly] { + background-color: #eee; /* menu hover bg color */ + color: #777; /* menu text color */ + border-color: #ccc; +} + +.pure-form input:focus:invalid, +.pure-form textarea:focus:invalid, +.pure-form select:focus:invalid { + color: #b94a48; + border-color: #e9322d; +} +.pure-form input[type="file"]:focus:invalid:focus, +.pure-form input[type="radio"]:focus:invalid:focus, +.pure-form input[type="checkbox"]:focus:invalid:focus { + outline-color: #e9322d; +} +.pure-form select { + /* Normalizes the height; padding is not sufficient. */ + height: 2.25em; + border: 1px solid #ccc; + background-color: white; +} +.pure-form select[multiple] { + height: auto; +} +.pure-form label { + margin: 0.5em 0 0.2em; +} +.pure-form fieldset { + margin: 0; + padding: 0.35em 0 0.75em; + border: 0; +} +.pure-form legend { + display: block; + width: 100%; + padding: 0.3em 0; + margin-bottom: 0.3em; + color: #333; + border-bottom: 1px solid #e5e5e5; +} + +.pure-form-stacked input[type="text"], +.pure-form-stacked input[type="password"], +.pure-form-stacked input[type="email"], +.pure-form-stacked input[type="url"], +.pure-form-stacked input[type="date"], +.pure-form-stacked input[type="month"], +.pure-form-stacked input[type="time"], +.pure-form-stacked input[type="datetime"], +.pure-form-stacked input[type="datetime-local"], +.pure-form-stacked input[type="week"], +.pure-form-stacked input[type="number"], +.pure-form-stacked input[type="search"], +.pure-form-stacked input[type="tel"], +.pure-form-stacked input[type="color"], +.pure-form-stacked input[type="file"], +.pure-form-stacked select, +.pure-form-stacked label, +.pure-form-stacked textarea { + display: block; + margin: 0.25em 0; +} + +/* +Need to separate out the :not() selector from the rest of the CSS 2.1 selectors +since IE8 won't execute CSS that contains a CSS3 selector. +*/ +.pure-form-stacked input:not([type]) { + display: block; + margin: 0.25em 0; +} +.pure-form-aligned input, +.pure-form-aligned textarea, +.pure-form-aligned select, +/* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */ +.pure-form-aligned .pure-help-inline, +.pure-form-message-inline { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} +.pure-form-aligned textarea { + vertical-align: top; +} + +/* Aligned Forms */ +.pure-form-aligned .pure-control-group { + margin-bottom: 0.5em; +} +.pure-form-aligned .pure-control-group label { + text-align: right; + display: inline-block; + vertical-align: middle; + width: 10em; + margin: 0 1em 0 0; +} +.pure-form-aligned .pure-controls { + margin: 1.5em 0 0 11em; +} + +/* Rounded Inputs */ +.pure-form input.pure-input-rounded, +.pure-form .pure-input-rounded { + border-radius: 2em; + padding: 0.5em 1em; +} + +/* Grouped Inputs */ +.pure-form .pure-group fieldset { + margin-bottom: 10px; +} +.pure-form .pure-group input, +.pure-form .pure-group textarea { + display: block; + padding: 10px; + margin: 0 0 -1px; + border-radius: 0; + position: relative; + top: -1px; +} +.pure-form .pure-group input:focus, +.pure-form .pure-group textarea:focus { + z-index: 3; +} +.pure-form .pure-group input:first-child, +.pure-form .pure-group textarea:first-child { + top: 1px; + border-radius: 4px 4px 0 0; + margin: 0; +} +.pure-form .pure-group input:first-child:last-child, +.pure-form .pure-group textarea:first-child:last-child { + top: 1px; + border-radius: 4px; + margin: 0; +} +.pure-form .pure-group input:last-child, +.pure-form .pure-group textarea:last-child { + top: -2px; + border-radius: 0 0 4px 4px; + margin: 0; +} +.pure-form .pure-group button { + margin: 0.35em 0; +} + +.pure-form .pure-input-1 { + width: 100%; +} +.pure-form .pure-input-2-3 { + width: 66%; +} +.pure-form .pure-input-1-2 { + width: 50%; +} +.pure-form .pure-input-1-3 { + width: 33%; +} +.pure-form .pure-input-1-4 { + width: 25%; +} + +/* Inline help for forms */ +/* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */ +.pure-form .pure-help-inline, +.pure-form-message-inline { + display: inline-block; + padding-left: 0.3em; + color: #666; + vertical-align: middle; + font-size: 0.875em; +} + +/* Block help for forms */ +.pure-form-message { + display: block; + color: #666; + font-size: 0.875em; +} + +@media only screen and (max-width : 480px) { + .pure-form button[type="submit"] { + margin: 0.7em 0 0; + } + + .pure-form input:not([type]), + .pure-form input[type="text"], + .pure-form input[type="password"], + .pure-form input[type="email"], + .pure-form input[type="url"], + .pure-form input[type="date"], + .pure-form input[type="month"], + .pure-form input[type="time"], + .pure-form input[type="datetime"], + .pure-form input[type="datetime-local"], + .pure-form input[type="week"], + .pure-form input[type="number"], + .pure-form input[type="search"], + .pure-form input[type="tel"], + .pure-form input[type="color"], + .pure-form label { + margin-bottom: 0.3em; + display: block; + } + + .pure-group input:not([type]), + .pure-group input[type="text"], + .pure-group input[type="password"], + .pure-group input[type="email"], + .pure-group input[type="url"], + .pure-group input[type="date"], + .pure-group input[type="month"], + .pure-group input[type="time"], + .pure-group input[type="datetime"], + .pure-group input[type="datetime-local"], + .pure-group input[type="week"], + .pure-group input[type="number"], + .pure-group input[type="search"], + .pure-group input[type="tel"], + .pure-group input[type="color"] { + margin-bottom: 0; + } + + .pure-form-aligned .pure-control-group label { + margin-bottom: 0.3em; + text-align: left; + display: block; + width: 100%; + } + + .pure-form-aligned .pure-controls { + margin: 1.5em 0 0 0; + } + + /* NOTE: pure-help-inline is deprecated. Use .pure-form-message-inline instead. */ + .pure-form .pure-help-inline, + .pure-form-message-inline, + .pure-form-message { + display: block; + font-size: 0.75em; + /* Increased bottom padding to make it group with its related input element. */ + padding: 0.2em 0 0.8em; + } +} + +/*csslint adjoining-classes: false, box-model:false*/ +.pure-menu { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.pure-menu-fixed { + position: fixed; + left: 0; + top: 0; + z-index: 3; +} + +.pure-menu-list, +.pure-menu-item { + position: relative; +} + +.pure-menu-list { + list-style: none; + margin: 0; + padding: 0; +} + +.pure-menu-item { + padding: 0; + margin: 0; + height: 100%; +} + +.pure-menu-link, +.pure-menu-heading { + display: block; + text-decoration: none; + white-space: nowrap; +} + +/* HORIZONTAL MENU */ +.pure-menu-horizontal { + width: 100%; + white-space: nowrap; +} + +.pure-menu-horizontal .pure-menu-list { + display: inline-block; +} + +/* Initial menus should be inline-block so that they are horizontal */ +.pure-menu-horizontal .pure-menu-item, +.pure-menu-horizontal .pure-menu-heading, +.pure-menu-horizontal .pure-menu-separator { + display: inline-block; + *display: inline; + zoom: 1; + vertical-align: middle; +} + +/* Submenus should still be display: block; */ +.pure-menu-item .pure-menu-item { + display: block; +} + +.pure-menu-children { + display: none; + position: absolute; + left: 100%; + top: 0; + margin: 0; + padding: 0; + z-index: 3; +} + +.pure-menu-horizontal .pure-menu-children { + left: 0; + top: auto; + width: inherit; +} + +.pure-menu-allow-hover:hover > .pure-menu-children, +.pure-menu-active > .pure-menu-children { + display: block; + position: absolute; +} + +/* Vertical Menus - show the dropdown arrow */ +.pure-menu-has-children > .pure-menu-link:after { + padding-left: 0.5em; + content: "\25B8"; + font-size: small; +} + +/* Horizontal Menus - show the dropdown arrow */ +.pure-menu-horizontal .pure-menu-has-children > .pure-menu-link:after { + content: "\25BE"; +} + +/* scrollable menus */ +.pure-menu-scrollable { + overflow-y: scroll; + overflow-x: hidden; +} + +.pure-menu-scrollable .pure-menu-list { + display: block; +} + +.pure-menu-horizontal.pure-menu-scrollable .pure-menu-list { + display: inline-block; +} + +.pure-menu-horizontal.pure-menu-scrollable { + white-space: nowrap; + overflow-y: hidden; + overflow-x: auto; + -ms-overflow-style: none; + -webkit-overflow-scrolling: touch; + /* a little extra padding for this style to allow for scrollbars */ + padding: .5em 0; +} + +.pure-menu-horizontal.pure-menu-scrollable::-webkit-scrollbar { + display: none; +} + +/* misc default styling */ + +.pure-menu-separator { + background-color: #ccc; + height: 1px; + margin: .3em 0; +} + +.pure-menu-horizontal .pure-menu-separator { + width: 1px; + height: 1.3em; + margin: 0 .3em ; +} + +.pure-menu-heading { + text-transform: uppercase; + color: #565d64; +} + +.pure-menu-link { + color: #777; +} + +.pure-menu-children { + background-color: #fff; +} + +.pure-menu-link, +.pure-menu-disabled, +.pure-menu-heading { + padding: .5em 1em; +} + +.pure-menu-disabled { + opacity: .5; +} + +.pure-menu-disabled .pure-menu-link:hover { + background-color: transparent; +} + +.pure-menu-active > .pure-menu-link, +.pure-menu-link:hover, +.pure-menu-link:focus { + background-color: #eee; +} + +.pure-menu-selected .pure-menu-link, +.pure-menu-selected .pure-menu-link:visited { + color: #000; +} + +.pure-table { + /* Remove spacing between table cells (from Normalize.css) */ + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; + border: 1px solid #cbcbcb; +} + +.pure-table caption { + color: #000; + font: italic 85%/1 arial, sans-serif; + padding: 1em 0; + text-align: center; +} + +.pure-table td, +.pure-table th { + border-left: 1px solid #cbcbcb;/* inner column border */ + border-width: 0 0 0 1px; + font-size: inherit; + margin: 0; + overflow: visible; /*to make ths where the title is really long work*/ + padding: 0.5em 1em; /* cell padding */ +} + +/* Consider removing this next declaration block, as it causes problems when +there's a rowspan on the first cell. Case added to the tests. issue#432 */ +.pure-table td:first-child, +.pure-table th:first-child { + border-left-width: 0; +} + +.pure-table thead { + background-color: #e0e0e0; + color: #000; + text-align: left; + vertical-align: bottom; +} + +/* +striping: + even - #fff (white) + odd - #f2f2f2 (light gray) +*/ +.pure-table td { + background-color: transparent; +} +.pure-table-odd td { + background-color: #f2f2f2; +} + +/* nth-child selector for modern browsers */ +.pure-table-striped tr:nth-child(2n-1) td { + background-color: #f2f2f2; +} + +/* BORDERED TABLES */ +.pure-table-bordered td { + border-bottom: 1px solid #cbcbcb; +} +.pure-table-bordered tbody > tr:last-child > td { + border-bottom-width: 0; +} + + +/* HORIZONTAL BORDERED TABLES */ + +.pure-table-horizontal td, +.pure-table-horizontal th { + border-width: 0 0 1px 0; + border-bottom: 1px solid #cbcbcb; +} +.pure-table-horizontal tbody > tr:last-child > td { + border-bottom-width: 0; +} diff --git a/tpl/myShaarli/css/pure.min.css b/tpl/myShaarli/css/pure.min.css new file mode 100644 index 00000000..f0aa374f Binary files /dev/null and b/tpl/myShaarli/css/pure.min.css differ diff --git a/tpl/myShaarli/export.bookmarks.html b/tpl/myShaarli/export.bookmarks.html new file mode 100644 index 00000000..da733257 --- /dev/null +++ b/tpl/myShaarli/export.bookmarks.html @@ -0,0 +1,10 @@ + + +{ignore}The RainTPL loop is formatted to avoid generating extra newlines{/ignore} +{$pagetitle} +

Shaarli export of {$selection} bookmarks on {$date}

+

{loop="links"} +

{$value.title}{if="$value.description"}{$eol}
{$value.description}{/if}{/loop} +

diff --git a/tpl/myShaarli/feed.atom.html b/tpl/myShaarli/feed.atom.html new file mode 100644 index 00000000..29187505 --- /dev/null +++ b/tpl/myShaarli/feed.atom.html @@ -0,0 +1,40 @@ + + + {$pagetitle} + Shaared links + {if="$show_dates"} + {$last_update} + {/if} + + {loop="$plugins_feed_header"} + {$value} + {/loop} + + {$index_url} + {$index_url} + + {$index_url} + Shaarli + {loop="$links"} + + {$value.title} + {if="$usepermalinks"} + + {else} + + {/if} + {$value.guid} + {if="$show_dates"} + {$value.pub_iso_date} + {$value.up_iso_date} + {/if} + + {loop="$value.taglist"} + + {/loop} + {loop="$value.feed_plugins"} + {$value} + {/loop} + + {/loop} + diff --git a/tpl/myShaarli/feed.rss.html b/tpl/myShaarli/feed.rss.html new file mode 100644 index 00000000..66d9a869 --- /dev/null +++ b/tpl/myShaarli/feed.rss.html @@ -0,0 +1,37 @@ + + + + {$pagetitle} + {$index_url} + Shaared links + {$language} + {$index_url} + Shaarli + + {loop="$plugins_feed_header"} + {$value} + {/loop} + {loop="$links"} + + {$value.title} + {$value.guid} + {if="$usepermalinks"} + {$value.guid} + {else} + {$value.url} + {/if} + {if="$show_dates"} + {$value.pub_iso_date} + {$value.up_iso_date} + {/if} + + {loop="$value.taglist"} + {$value} + {/loop} + {loop="$value.feed_plugins"} + {$value} + {/loop} + + {/loop} + + diff --git a/tpl/myShaarli/fonts/FontAwesome.otf b/tpl/myShaarli/fonts/FontAwesome.otf new file mode 100644 index 00000000..401ec0f3 Binary files /dev/null and b/tpl/myShaarli/fonts/FontAwesome.otf differ diff --git a/tpl/myShaarli/fonts/Roboto-Bold.woff b/tpl/myShaarli/fonts/Roboto-Bold.woff new file mode 100644 index 00000000..3d86753b Binary files /dev/null and b/tpl/myShaarli/fonts/Roboto-Bold.woff differ diff --git a/tpl/myShaarli/fonts/Roboto-Bold.woff2 b/tpl/myShaarli/fonts/Roboto-Bold.woff2 new file mode 100644 index 00000000..bd05e2ea Binary files /dev/null and b/tpl/myShaarli/fonts/Roboto-Bold.woff2 differ diff --git a/tpl/myShaarli/fonts/Roboto-Regular.woff b/tpl/myShaarli/fonts/Roboto-Regular.woff new file mode 100644 index 00000000..464d2062 Binary files /dev/null and b/tpl/myShaarli/fonts/Roboto-Regular.woff differ diff --git a/tpl/myShaarli/fonts/Roboto-Regular.woff2 b/tpl/myShaarli/fonts/Roboto-Regular.woff2 new file mode 100644 index 00000000..f9661967 Binary files /dev/null and b/tpl/myShaarli/fonts/Roboto-Regular.woff2 differ diff --git a/tpl/myShaarli/fonts/fontawesome-webfont.eot b/tpl/myShaarli/fonts/fontawesome-webfont.eot new file mode 100644 index 00000000..e9f60ca9 Binary files /dev/null and b/tpl/myShaarli/fonts/fontawesome-webfont.eot differ diff --git a/tpl/myShaarli/fonts/fontawesome-webfont.svg b/tpl/myShaarli/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..855c845e Binary files /dev/null and b/tpl/myShaarli/fonts/fontawesome-webfont.svg differ diff --git a/tpl/myShaarli/fonts/fontawesome-webfont.ttf b/tpl/myShaarli/fonts/fontawesome-webfont.ttf new file mode 100644 index 00000000..35acda2f Binary files /dev/null and b/tpl/myShaarli/fonts/fontawesome-webfont.ttf differ diff --git a/tpl/myShaarli/fonts/fontawesome-webfont.woff b/tpl/myShaarli/fonts/fontawesome-webfont.woff new file mode 100644 index 00000000..400014a4 Binary files /dev/null and b/tpl/myShaarli/fonts/fontawesome-webfont.woff differ diff --git a/tpl/myShaarli/fonts/fontawesome-webfont.woff2 b/tpl/myShaarli/fonts/fontawesome-webfont.woff2 new file mode 100644 index 00000000..4d13fc60 Binary files /dev/null and b/tpl/myShaarli/fonts/fontawesome-webfont.woff2 differ diff --git a/tpl/myShaarli/img/favicon.ico b/tpl/myShaarli/img/favicon.ico new file mode 100644 index 00000000..c8b043b4 Binary files /dev/null and b/tpl/myShaarli/img/favicon.ico differ diff --git a/tpl/myShaarli/img/favicon.png b/tpl/myShaarli/img/favicon.png new file mode 100644 index 00000000..4644321b Binary files /dev/null and b/tpl/myShaarli/img/favicon.png differ diff --git a/tpl/myShaarli/img/favicon.xcf b/tpl/myShaarli/img/favicon.xcf new file mode 100644 index 00000000..93bd3977 Binary files /dev/null and b/tpl/myShaarli/img/favicon.xcf differ diff --git a/tpl/myShaarli/img/favicon_128.png b/tpl/myShaarli/img/favicon_128.png new file mode 100644 index 00000000..4872df00 Binary files /dev/null and b/tpl/myShaarli/img/favicon_128.png differ diff --git a/tpl/myShaarli/img/favicon_16.png b/tpl/myShaarli/img/favicon_16.png new file mode 100644 index 00000000..5519504f Binary files /dev/null and b/tpl/myShaarli/img/favicon_16.png differ diff --git a/tpl/myShaarli/img/favicon_32.png b/tpl/myShaarli/img/favicon_32.png new file mode 100644 index 00000000..722fb3f4 Binary files /dev/null and b/tpl/myShaarli/img/favicon_32.png differ diff --git a/tpl/myShaarli/img/favicon_64.png b/tpl/myShaarli/img/favicon_64.png new file mode 100644 index 00000000..755b0e99 Binary files /dev/null and b/tpl/myShaarli/img/favicon_64.png differ diff --git a/tpl/myShaarli/img/icon.png b/tpl/myShaarli/img/icon.png new file mode 100644 index 00000000..474edec3 Binary files /dev/null and b/tpl/myShaarli/img/icon.png differ diff --git a/tpl/myShaarli/img/logo_myShaarli.png b/tpl/myShaarli/img/logo_myShaarli.png new file mode 100644 index 00000000..0a727055 Binary files /dev/null and b/tpl/myShaarli/img/logo_myShaarli.png differ diff --git a/tpl/myShaarli/img/sad_star.png b/tpl/myShaarli/img/sad_star.png new file mode 100644 index 00000000..ed3bd158 Binary files /dev/null and b/tpl/myShaarli/img/sad_star.png differ diff --git a/tpl/myShaarli/import.html b/tpl/myShaarli/import.html index 000a50ac..1f040685 100644 --- a/tpl/myShaarli/import.html +++ b/tpl/myShaarli/import.html @@ -18,7 +18,7 @@

{"Import Database"|t}

-


{'Maximum size allowed:'|t} {$maxfilesizeHuman}

+


Maximum size allowed: {$maxfilesizeHuman}

@@ -31,15 +31,15 @@

{"Import Database"|t}

- {'Use values from the imported file, default to public'|t} + Use values from the imported file, default to public
- {'Import all bookmarks as private'|t} + Import all bookmarks as private
- {'Import all bookmarks as public'|t} + Import all bookmarks as public
diff --git a/tpl/myShaarli/includes.html b/tpl/myShaarli/includes.html index 53d3fc78..7a0d2c99 100644 --- a/tpl/myShaarli/includes.html +++ b/tpl/myShaarli/includes.html @@ -4,14 +4,12 @@ - - + - {if="is_file('data/user.css')"} diff --git a/tpl/myShaarli/install.html b/tpl/myShaarli/install.html index 6199b33d..164d453b 100644 --- a/tpl/myShaarli/install.html +++ b/tpl/myShaarli/install.html @@ -65,27 +65,6 @@

{'Install Shaarli'|t}

-
-
-
- -
-
-
-
- -
-
-
-
diff --git a/tpl/myShaarli/js/shaarli.js b/tpl/myShaarli/js/shaarli.js new file mode 100644 index 00000000..55656f80 --- /dev/null +++ b/tpl/myShaarli/js/shaarli.js @@ -0,0 +1,661 @@ +/** @licstart The following is the entire license notice for the + * JavaScript code in this page. + * + * Copyright: (c) 2011-2015 Sébastien SAUVAGE + * (c) 2011-2017 The Shaarli Community, see AUTHORS + * + * This software is provided 'as-is', without any express or implied warranty. + * In no event will the authors be held liable for any damages arising from + * the use of this software. + * + * Permission is granted to anyone to use this software for any purpose, + * including commercial applications, and to alter it and redistribute it + * freely, subject to the following restrictions: + * + * 1. The origin of this software must not be misrepresented; you must not + * claim that you wrote the original software. If you use this software + * in a product, an acknowledgment in the product documentation would + * be appreciated but is not required. + * + * 2. Altered source versions must be plainly marked as such, and must + * not be misrepresented as being the original software. + * + * 3. This notice may not be removed or altered from any source distribution. + * + * @licend The above is the entire license notice + * for the JavaScript code in this page. + */ + +window.onload = function () { + + /** + * Retrieve an element up in the tree from its class name. + */ + function getParentByClass(el, className) { + var p = el.parentNode; + if (p == null || p.classList.contains(className)) { + return p; + } + return getParentByClass(p, className); + } + + + /** + * Handle responsive menu. + * Source: http://purecss.io/layouts/tucked-menu-vertical/ + */ + (function (window, document) { + var menu = document.getElementById('shaarli-menu'), + WINDOW_CHANGE_EVENT = ('onorientationchange' in window) ? 'orientationchange':'resize'; + + function toggleHorizontal() { + [].forEach.call( + document.getElementById('shaarli-menu').querySelectorAll('.menu-transform'), + function(el){ + el.classList.toggle('pure-menu-horizontal'); + } + ); + }; + + function toggleMenu() { + // set timeout so that the panel has a chance to roll up + // before the menu switches states + if (menu.classList.contains('open')) { + setTimeout(toggleHorizontal, 500); + } + else { + toggleHorizontal(); + } + menu.classList.toggle('open'); + document.getElementById('menu-toggle').classList.toggle('x'); + }; + + function closeMenu() { + if (menu.classList.contains('open')) { + toggleMenu(); + } + } + + var menuToggle = document.getElementById('menu-toggle'); + if (menuToggle != null) { + menuToggle.addEventListener('click', function (e) { + toggleMenu(); + }); + } + + window.addEventListener(WINDOW_CHANGE_EVENT, closeMenu); + })(this, this.document); + + /** + * Fold/Expand shaares description and thumbnail. + */ + var foldAllButtons = document.getElementsByClassName('fold-all'); + var foldButtons = document.getElementsByClassName('fold-button'); + + [].forEach.call(foldButtons, function (foldButton) { + // Retrieve description + var description = null; + var thumbnail = null; + var linklistItem = getParentByClass(foldButton, 'linklist-item'); + if (linklistItem != null) { + description = linklistItem.querySelector('.linklist-item-description'); + thumbnail = linklistItem.querySelector('.linklist-item-thumbnail'); + if (description != null || thumbnail != null) { + foldButton.style.display = 'inline'; + } + } + + foldButton.addEventListener('click', function (event) { + event.preventDefault(); + toggleFold(event.target, description, thumbnail); + }); + }); + + if (foldAllButtons != null) { + [].forEach.call(foldAllButtons, function (foldAllButton) { + foldAllButton.addEventListener('click', function (event) { + event.preventDefault(); + var state = foldAllButton.firstElementChild.getAttribute('class').indexOf('down') != -1 ? 'down' : 'up'; + [].forEach.call(foldButtons, function (foldButton) { + if (foldButton.firstElementChild.classList.contains('fa-chevron-up') && state == 'down' + || foldButton.firstElementChild.classList.contains('fa-chevron-down') && state == 'up' + ) { + return; + } + // Retrieve description + var description = null; + var thumbnail = null; + var linklistItem = getParentByClass(foldButton, 'linklist-item'); + if (linklistItem != null) { + description = linklistItem.querySelector('.linklist-item-description'); + thumbnail = linklistItem.querySelector('.linklist-item-thumbnail'); + if (description != null || thumbnail != null) { + foldButton.style.display = 'inline'; + } + } + + toggleFold(foldButton.firstElementChild, description, thumbnail); + }); + foldAllButton.firstElementChild.classList.toggle('fa-chevron-down'); + foldAllButton.firstElementChild.classList.toggle('fa-chevron-up'); + }); + }); + } + + function toggleFold(button, description, thumb) + { + // Switch fold/expand - up = fold + if (button.classList.contains('fa-chevron-up')) { + button.title = 'Expand'; + if (description != null) { + description.style.display = 'none'; + } + if (thumb != null) { + thumb.style.display = 'none'; + } + } + else { + button.title = 'Fold'; + if (description != null) { + description.style.display = 'block'; + } + if (thumb != null) { + thumb.style.display = 'block'; + } + } + button.classList.toggle('fa-chevron-down'); + button.classList.toggle('fa-chevron-up'); + } + + /** + * Confirmation message before deletion. + */ + var deleteLinks = document.querySelectorAll('.confirm-delete'); + [].forEach.call(deleteLinks, function(deleteLink) { + deleteLink.addEventListener('click', function(event) { + if(! confirm('Are you sure you want to delete this link ?')) { + event.preventDefault(); + } + }); + }); + + /** + * Close alerts + */ + var closeLinks = document.querySelectorAll('.pure-alert-close'); + [].forEach.call(closeLinks, function(closeLink) { + closeLink.addEventListener('click', function(event) { + var alert = getParentByClass(event.target, 'pure-alert-closable'); + alert.style.display = 'none'; + }); + }); + + /** + * New version dismiss. + * Hide the message for one week using localStorage. + */ + var newVersionDismiss = document.getElementById('new-version-dismiss'); + var newVersionMessage = document.querySelector('.new-version-message'); + if (newVersionMessage != null + && localStorage.getItem('newVersionDismiss') != null + && parseInt(localStorage.getItem('newVersionDismiss')) + 7*24*60*60*1000 > (new Date()).getTime() + ) { + newVersionMessage.style.display = 'none'; + } + if (newVersionDismiss != null) { + newVersionDismiss.addEventListener('click', function () { + localStorage.setItem('newVersionDismiss', (new Date()).getTime()); + }); + } + + var hiddenReturnurl = document.getElementsByName('returnurl'); + if (hiddenReturnurl != null) { + hiddenReturnurl.value = window.location.href; + } + + /** + * Autofocus text fields + */ + var autofocusElements = document.querySelectorAll('.autofocus'); + var breakLoop = false; + [].forEach.call(autofocusElements, function(autofocusElement) { + if (autofocusElement.value == '' && ! breakLoop) { + autofocusElement.focus(); + breakLoop = true; + } + }); + + /** + * Handle sub menus/forms + */ + var openers = document.getElementsByClassName('subheader-opener'); + if (openers != null) { + [].forEach.call(openers, function(opener) { + opener.addEventListener('click', function(event) { + event.preventDefault(); + + var id = opener.getAttribute('data-open-id'); + var sub = document.getElementById(id); + + if (sub != null) { + [].forEach.call(document.getElementsByClassName('subheader-form'), function (element) { + if (element != sub) { + removeClass(element, 'open') + } + }); + + sub.classList.toggle('open'); + } + }); + }); + } + + function removeClass(element, classname) { + element.className = element.className.replace(new RegExp('(?:^|\\s)'+ classname + '(?:\\s|$)'), ' '); + } + + /** + * Remove CSS target padding (for fixed bar) + */ + if (location.hash != '') { + var anchor = document.getElementById(location.hash.substr(1)); + if (anchor != null) { + var padsize = anchor.clientHeight; + this.window.scroll(0, this.window.scrollY - padsize); + anchor.style.paddingTop = 0; + } + } + + /** + * Text area resizer + */ + var description = document.getElementById('lf_description'); + var observe = function (element, event, handler) { + element.addEventListener(event, handler, false); + }; + function init () { + function resize () { + /* Fix jumpy resizing: https://stackoverflow.com/a/18262927/1484919 */ + var scrollTop = window.pageYOffset || + (document.documentElement || document.body.parentNode || document.body).scrollTop; + + description.style.height = 'auto'; + description.style.height = description.scrollHeight+10+'px'; + + window.scrollTo(0, scrollTop); + } + /* 0-timeout to get the already changed text */ + function delayedResize () { + window.setTimeout(resize, 0); + } + observe(description, 'change', resize); + observe(description, 'cut', delayedResize); + observe(description, 'paste', delayedResize); + observe(description, 'drop', delayedResize); + observe(description, 'keydown', delayedResize); + + resize(); + } + + if (description != null) { + init(); + // Submit editlink form with CTRL + Enter in the text area. + description.addEventListener('keydown', function (event) { + if (event.ctrlKey && event.keyCode === 13) { + document.getElementById('button-save-edit').click(); + } + }); + } + + /** + * Awesomplete trigger. + */ + var tags = document.getElementById('lf_tags'); + if (tags != null) { + awesompleteUniqueTag('#lf_tags'); + } + + /** + * bLazy trigger + */ + var picwall = document.getElementById('picwall_container'); + if (picwall != null) { + var bLazy = new Blazy(); + } + + /** + * Bookmarklet alert + */ + var bookmarkletLinks = document.querySelectorAll('.bookmarklet-link'); + var bkmMessage = document.getElementById('bookmarklet-alert'); + [].forEach.call(bookmarkletLinks, function(link) { + link.addEventListener('click', function(event) { + event.preventDefault(); + alert(bkmMessage.value); + }); + }); + + /** + * Firefox Social + */ + var ffButton = document.getElementById('ff-social-button'); + if (ffButton != null) { + ffButton.addEventListener('click', function(event) { + activateFirefoxSocial(event.target); + }); + } + + /** + * Plugin admin order + */ + var orderPA = document.querySelectorAll('.order'); + [].forEach.call(orderPA, function(link) { + link.addEventListener('click', function(event) { + event.preventDefault(); + if (event.target.classList.contains('order-up')) { + return orderUp(event.target.parentNode.parentNode.getAttribute('data-order')); + } else if (event.target.classList.contains('order-down')) { + return orderDown(event.target.parentNode.parentNode.getAttribute('data-order')); + } + }); + }); + + var continent = document.getElementById('continent'); + var city = document.getElementById('city'); + if (continent != null && city != null) { + continent.addEventListener('change', function (event) { + hideTimezoneCities(city, continent.options[continent.selectedIndex].value, true); + }); + hideTimezoneCities(city, continent.options[continent.selectedIndex].value, false); + } + + /** + * Bulk actions + */ + var linkCheckboxes = document.querySelectorAll('.delete-checkbox'); + var bar = document.getElementById('actions'); + [].forEach.call(linkCheckboxes, function(checkbox) { + checkbox.style.display = 'block'; + checkbox.addEventListener('click', function(event) { + var count = 0; + var linkCheckedCheckboxes = document.querySelectorAll('.delete-checkbox:checked'); + [].forEach.call(linkCheckedCheckboxes, function(checkbox) { + count++; + }); + if (count == 0 && bar.classList.contains('open')) { + bar.classList.toggle('open'); + } else if (count > 0 && ! bar.classList.contains('open')) { + bar.classList.toggle('open'); + } + }); + }); + + var deleteButton = document.getElementById('actions-delete'); + var token = document.querySelector('input[type="hidden"][name="token"]'); + if (deleteButton != null && token != null) { + deleteButton.addEventListener('click', function(event) { + event.preventDefault(); + + var links = []; + var linkCheckedCheckboxes = document.querySelectorAll('.delete-checkbox:checked'); + [].forEach.call(linkCheckedCheckboxes, function(checkbox) { + links.push({ + 'id': checkbox.value, + 'title': document.querySelector('.linklist-item[data-id="'+ checkbox.value +'"] .linklist-link').innerHTML + }); + }); + + var message = 'Are you sure you want to delete '+ links.length +' links?\n'; + message += 'This action is IRREVERSIBLE!\n\nTitles:\n'; + var ids = []; + links.forEach(function(item) { + message += ' - '+ item['title'] +'\n'; + ids.push(item['id']); + }); + + if (window.confirm(message)) { + window.location = '?delete_link&lf_linkdate='+ ids.join('+') +'&token='+ token.value; + } + }); + } + + /** + * Tag list operations + * + * TODO: support error code in the backend for AJAX requests + */ + var tagList = document.querySelector('input[name="taglist"]'); + var existingTags = tagList ? tagList.value.split(' ') : []; + var awesomepletes = []; + + // Display/Hide rename form + var renameTagButtons = document.querySelectorAll('.rename-tag'); + [].forEach.call(renameTagButtons, function(rename) { + rename.addEventListener('click', function(event) { + event.preventDefault(); + var block = findParent(event.target, 'div', {'class': 'tag-list-item'}); + var form = block.querySelector('.rename-tag-form'); + if (form.style.display == 'none' || form.style.display == '') { + form.style.display = 'block'; + } else { + form.style.display = 'none'; + } + block.querySelector('input').focus(); + }); + }); + + // Rename a tag with an AJAX request + var renameTagSubmits = document.querySelectorAll('.validate-rename-tag'); + [].forEach.call(renameTagSubmits, function(rename) { + rename.addEventListener('click', function(event) { + event.preventDefault(); + var block = findParent(event.target, 'div', {'class': 'tag-list-item'}); + var input = block.querySelector('.rename-tag-input'); + var totag = input.value.replace('/"/g', '\\"'); + if (totag.trim() == '') { + return; + } + var fromtag = block.getAttribute('data-tag'); + var token = document.getElementById('token').value; + + xhr = new XMLHttpRequest(); + xhr.open('POST', '?do=changetag'); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xhr.onload = function() { + if (xhr.status !== 200) { + alert('An error occurred. Return code: '+ xhr.status); + location.reload(); + } else { + block.setAttribute('data-tag', totag); + input.setAttribute('name', totag); + input.setAttribute('value', totag); + findParent(input, 'div', {'class': 'rename-tag-form'}).style.display = 'none'; + block.querySelector('a.tag-link').innerHTML = htmlEntities(totag); + block.querySelector('a.tag-link').setAttribute('href', '?searchtags='+ encodeURIComponent(totag)); + block.querySelector('a.rename-tag').setAttribute('href', '?do=changetag&fromtag='+ encodeURIComponent(totag)); + + // Refresh awesomplete values + for (var key in existingTags) { + if (existingTags[key] == fromtag) { + existingTags[key] = totag; + } + } + awesomepletes = updateAwesompleteList('.rename-tag-input', existingTags, awesomepletes); + } + }; + xhr.send('renametag=1&fromtag='+ encodeURIComponent(fromtag) +'&totag='+ encodeURIComponent(totag) +'&token='+ token); + refreshToken(); + }); + }); + + // Validate input with enter key + var renameTagInputs = document.querySelectorAll('.rename-tag-input'); + [].forEach.call(renameTagInputs, function(rename) { + + rename.addEventListener('keypress', function(event) { + if (event.keyCode === 13) { // enter + findParent(event.target, 'div', {'class': 'tag-list-item'}).querySelector('.validate-rename-tag').click(); + } + }); + }); + + // Delete a tag with an AJAX query (alert popup confirmation) + var deleteTagButtons = document.querySelectorAll('.delete-tag'); + [].forEach.call(deleteTagButtons, function(rename) { + rename.style.display = 'inline'; + rename.addEventListener('click', function(event) { + event.preventDefault(); + var block = findParent(event.target, 'div', {'class': 'tag-list-item'}); + var tag = block.getAttribute('data-tag'); + var token = document.getElementById('token').value; + + if (confirm('Are you sure you want to delete the tag "'+ tag +'"?')) { + xhr = new XMLHttpRequest(); + xhr.open('POST', '?do=changetag'); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xhr.onload = function() { + block.remove(); + }; + xhr.send(encodeURI('deletetag=1&fromtag='+ tag +'&token='+ token)); + refreshToken(); + } + }); + }); + + updateAwesompleteList('.rename-tag-input', existingTags, awesomepletes); +}; + +/** + * Find a parent element according to its tag and its attributes + * + * @param element Element where to start the search + * @param tagName Expected parent tag name + * @param attributes Associative array of expected attributes (name=>value). + * + * @returns Found element or null. + */ +function findParent(element, tagName, attributes) +{ + while (element) { + if (element.tagName.toLowerCase() == tagName) { + var match = true; + for (var key in attributes) { + if (! element.hasAttribute(key) + || (attributes[key] != '' && element.getAttribute(key).indexOf(attributes[key]) == -1) + ) { + match = false; + break; + } + } + + if (match) { + return element; + } + } + element = element.parentElement; + } + return null; +} + +/** + * Ajax request to refresh the CSRF token. + */ +function refreshToken() +{ + var xhr = new XMLHttpRequest(); + xhr.open('GET', '?do=token'); + xhr.onload = function() { + var token = document.getElementById('token'); + token.setAttribute('value', xhr.responseText); + }; + xhr.send(); +} + +/** + * Update awesomplete list of tag for all elements matching the given selector + * + * @param selector CSS selector + * @param tags Array of tags + * @param instances List of existing awesomplete instances + */ +function updateAwesompleteList(selector, tags, instances) +{ + // First load: create Awesomplete instances + if (instances.length == 0) { + var elements = document.querySelectorAll(selector); + [].forEach.call(elements, function (element) { + instances.push(new Awesomplete( + element, + {'list': tags} + )); + }); + } else { + // Update awesomplete tag list + for (var key in instances) { + instances[key].list = tags; + } + } + return instances; +} + +/** + * html_entities in JS + * + * @see http://stackoverflow.com/questions/18749591/encode-html-entities-in-javascript + */ +function htmlEntities(str) +{ + return str.replace(/[\u00A0-\u9999<>\&]/gim, function(i) { + return '&#'+i.charCodeAt(0)+';'; + }); +} + +function activateFirefoxSocial(node) { + var loc = location.href; + var baseURL = loc.substring(0, loc.lastIndexOf("/") + 1); + var title = document.title; + + // Keeping the data separated (ie. not in the DOM) so that it's maintainable and diffable. + var data = { + name: title, + description: "The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community.", + author: "Shaarli", + version: "1.0.0", + + iconURL: baseURL + "/images/favicon.ico", + icon32URL: baseURL + "/images/favicon.ico", + icon64URL: baseURL + "/images/favicon.ico", + + shareURL: baseURL + "?post=%{url}&title=%{title}&description=%{text}&source=firefoxsocialapi", + homepageURL: baseURL + }; + node.setAttribute("data-service", JSON.stringify(data)); + + var activate = new CustomEvent("ActivateSocialFeature"); + node.dispatchEvent(activate); +} + +/** + * Add the class 'hidden' to city options not attached to the current selected continent. + * + * @param cities List of