From d740e7384a95c6a7d80e5f492f4dd7edb312175e Mon Sep 17 00:00:00 2001 From: Cqoicebordel Date: Sun, 15 Feb 2015 19:09:17 +0100 Subject: [PATCH 1/4] New Theme, Pix-art. First commit --- Makefile | 1 + searx/static/themes/pix-art/css/style.css | 1 + searx/static/themes/pix-art/img/favicon.png | Bin 0 -> 3064 bytes .../pix-art/img/preference-icon-pixel.png | Bin 0 -> 242 bytes .../themes/pix-art/img/search-icon-pixel.png | Bin 0 -> 204 bytes .../static/themes/pix-art/img/searx-pixel.png | Bin 0 -> 439 bytes .../static/themes/pix-art/img/searx_logo.svg | 203 ++++++++ searx/static/themes/pix-art/js/searx.js | 49 ++ .../themes/pix-art/less/definitions.less | 119 +++++ searx/static/themes/pix-art/less/mixins.less | 27 ++ searx/static/themes/pix-art/less/search.less | 56 +++ searx/static/themes/pix-art/less/style.less | 438 ++++++++++++++++++ searx/templates/pix-art/about.html | 65 +++ searx/templates/pix-art/base.html | 28 ++ searx/templates/pix-art/index.html | 12 + searx/templates/pix-art/preferences.html | 82 ++++ .../pix-art/result_templates/default.html | 13 + .../pix-art/result_templates/images.html | 6 + searx/templates/pix-art/results.html | 44 ++ searx/templates/pix-art/search.html | 9 + searx/templates/pix-art/stats.html | 22 + searx/webapp.py | 7 + 22 files changed, 1182 insertions(+) create mode 100644 searx/static/themes/pix-art/css/style.css create mode 100644 searx/static/themes/pix-art/img/favicon.png create mode 100644 searx/static/themes/pix-art/img/preference-icon-pixel.png create mode 100644 searx/static/themes/pix-art/img/search-icon-pixel.png create mode 100644 searx/static/themes/pix-art/img/searx-pixel.png create mode 100644 searx/static/themes/pix-art/img/searx_logo.svg create mode 100644 searx/static/themes/pix-art/js/searx.js create mode 100644 searx/static/themes/pix-art/less/definitions.less create mode 100644 searx/static/themes/pix-art/less/mixins.less create mode 100644 searx/static/themes/pix-art/less/search.less create mode 100644 searx/static/themes/pix-art/less/style.less create mode 100644 searx/templates/pix-art/about.html create mode 100644 searx/templates/pix-art/base.html create mode 100644 searx/templates/pix-art/index.html create mode 100644 searx/templates/pix-art/preferences.html create mode 100644 searx/templates/pix-art/result_templates/default.html create mode 100644 searx/templates/pix-art/result_templates/images.html create mode 100644 searx/templates/pix-art/results.html create mode 100644 searx/templates/pix-art/search.html create mode 100644 searx/templates/pix-art/stats.html diff --git a/Makefile b/Makefile index 9f4cf2ecf..05685554b 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,7 @@ styles: @lessc -x searx/static/themes/courgette/less/style-rtl.less > searx/static/themes/courgette/css/style-rtl.css @lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css @lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css + @lessc -x searx/static/themes/pix-art/less/style.less > searx/static/themes/pix-art/css/style.css grunt: @grunt --gruntfile searx/static/themes/oscar/gruntfile.js diff --git a/searx/static/themes/pix-art/css/style.css b/searx/static/themes/pix-art/css/style.css new file mode 100644 index 000000000..a173f5428 --- /dev/null +++ b/searx/static/themes/pix-art/css/style.css @@ -0,0 +1 @@ +html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:13px;right:1px;padding:0;border:0;background:url('../img/search-icon-pixel2.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:30px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="submit"]{padding:2px 6px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file diff --git a/searx/static/themes/pix-art/img/favicon.png b/searx/static/themes/pix-art/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..28afb0111a770843148d90a669267af2323a44ff GIT binary patch literal 3064 zcmV$&1NaF<@4ffl!KOD;Y>WZpg6*60yP0E+mo@MnyWVKyD;=$OcIM9c|4+Sl#vvi4 zqjZ#x(os4}hkK0l;artMLqlte)EB8M->Zp4_-O9d{s3Q3@c$J6NWP{F%BYiTu;o1k7^? zSoxLbR}tl}iiPt51>mYxtD5T7tDBlNYnocMYMDB9>J&=t+O_TR8Z~N|YSpS)Lbwjn z#4EC8zJ6bM-=>b9FMUnGA!p(&k*c3NQGovq3u0}602;t`>(({(>(@7p8Z|QCefOPd z+_ob}y)f9X{gDKVh$vta6j`1uuHcFD2@@t5UyOwd7utNG zB;W~z1EdT2rWnI~5NYg70_JyxBN zSZ&+3HCb6%rl6p}=fZ$o$|Yn&I($2tBHTG)Zpoul=_DmI+xD-=+Pq^2IK+~FJ+O6fLA&M)bJ+(w4v|0 zA?}X?C_)G%CnuZq^mHq4-n=mx85tHNqRIp4#fulVzH7V8JS4T%t5+8RtJg9Q^C8Sl zqtvfozan8kGIUDfpZvZnA~#w>{F8-IpjoqKCO$sif_wGql~ph;EzOFX5aijjXQo4k z4%Tx3?G}!WA3xs4yn=oG`n472VqWH_K^ik=jP(Ng0>Y3!M3VCL64@3K0`|bTW`8U( zYSbvJXi7?odH(#lwK9q-A^ZlY88c>l0^BXkxp(hgub`P1fyDXq=NDE38Y2jhuzV!C zh5DTUNq{#s0b&6N02tsOKYnbUK7DGHR5FwZ+`4`H_MasHnLK&21=HbJKR!NjaX(a*z2%9evFnI7_ z3toXU4|6jw^WVRJ-z;Cg{1XDC61*4PN`!zL)Lyp-Oq({%DtG739dq~YU8|%g5yZ5v z^FJpeM~<|Fxq&m^y?gg;qNNvLeV_yo0#qdNfbfYV$^j2bihx;E z0ZJGEARsn2)`Grv?V4TpyNN(~tOuAaTejHB;U)k8n>TN^fY~9^a{1qey00;fuZ0BJaWL;vmW11N=Cw{A5TFJ80?UcGwND-nQPvu2I;9C8TP z(@NvQUAuNQ=gyrgbae&JJOICP<%*r3#;IGkZlCl45}Ju6_Jl;-Eg!eTdblChpt(77 z=8Oe#;lc%T>Cz=j1j=JQ+!r^72#%3A`u6Q>1`HTr7B60GW1ipLz_}hm6*zN4wC)r^ zAcnvoV*T+YMu526ArhfG4|M6$#V&?Uo;+!ZID7W2B?9HKo`#2;3@okI=D6G15Xkj_ zX1-IWPTB8}1_2uXP69N(-T?Vh9+<4{Fl9(rgY)LivjniwdE&$gyXmQ30TCJ^0K~c~ zeCIfz)!Goq^*SHxhGol^*&SsB>2tXCA0_Hpg4Ux>VXU`rpeE4unGS=5^F|xn7{|(YoAf6US zi5EN~7trD9o*?xZOOdSD?}rTfd&mIL!Gi}aI6Op!?+Tdn6!flLyR5JWz{V)xwV6@^ zBnSK%t5&Tt+qZ8w+qP{pJ9g}_ga8Oq0I0%uj`KU`=`}n+ z;hBP39`O43jPfbHNP#59R>qi!yu7?H`3wz2DEvSfA{#3S>IpP9vuDpXYuBzd8#ivW zfM|MXh&+Yk{En<&zus=Juyke~z*B7qH7rm3Ljoe-GyC-E6AK95t(jgLdLLR!_2sG&T$Ch zJWX_fBEdo`#zFla`hi5vasCidSB+7K*cILP_EmYvL8|cLem^ z0FDC$5D*7&tWKi?SOLA;^T7`KT>;w)ZbSb2qLx<@v=l>vQznyyfU-_<3=LGJj1~Yth?4gR z4ah)Q2mz!D-w7Lj2ec5!?#@pF@b_NkeQ*TctM%}1rmxZDxD{| zWxwGWMUp28T8<%syyBF}Txrn$%tbUzAwf3IxJjTwKmwsfZqcMmzLC!5M zL3;(KyG))nYgUca)YLM;M#68sl}XC4?qqAPAS68P+_^Igsqpml^q?YvH%ikyD}?){ z4w55bAtbPxj1J^#(qE&#$XRztXsFyOsl(Dg~-B?Hkq;>Y^4!+2FPZFpQUV4R$ z#Kgp!kU&TTTd%OtTbXqC3eIBec1})CWqO5>ARPbjRwmuO0wl!8$Fs3gDI`e80M9b1 zy@IYLV`5?!3jtL^f_VH&*09*kAsi#vJx2P6brYg{^h$@mYVzWZ)t^o|(-0000gnPbVsSb-VS!x2e|O${|NqNtJpK5e@#BpD!AFw+@Uz;p%{zX8Kc%5XLgR@o z!=$fMKEC$VGWt_}_hjKkjmMHowh z{DK)Ap4~_Tagw~{XE)7O>#J`=wXqk(R{ z;e4Qwy{C&~h{fsTgoFqG`B~&879==Se*1s$!Fh!Tjr=;J`Yh8h(%?)@mC@F%XD7|f_dmJ5g8kB*_im~NlUNU^GRrupE$A1W z5v%+5HS;lzr|WD5Z6+~na9R4_A@sl|oviSpTg3`q23eL`x#8*)?r41|GVRGo)$F*J z$Z0WqKBJR%N$Bfn)9~Yh6NI)d+32TW;v9BTCS!M0UcQyism4z}k_>M*$afWN^$+4O zS@Et>JN*=2OJBmwJDeY*n%^!vZf3WNC8)8#v8Ll*BeOyY!>JsbCEFS*E@-m`UEB7K z;d7$QxprZb=?vGWyl1PcTPskxN^(c-UflzigE|>%{_p!!f8b#Lw8v}Z7ai7)k~R1g f^gJ<;xrTvDTsq*z!gNt!C^C4u`njxgN@xNAAMvCH literal 0 HcmV?d00001 diff --git a/searx/static/themes/pix-art/img/searx_logo.svg b/searx/static/themes/pix-art/img/searx_logo.svg new file mode 100644 index 000000000..67a2d4588 --- /dev/null +++ b/searx/static/themes/pix-art/img/searx_logo.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/searx/static/themes/pix-art/js/searx.js b/searx/static/themes/pix-art/js/searx.js new file mode 100644 index 000000000..9be969bb3 --- /dev/null +++ b/searx/static/themes/pix-art/js/searx.js @@ -0,0 +1,49 @@ +if(searx.autocompleter) { + window.addEvent('domready', function() { + new Autocompleter.Request.JSON('q', '/autocompleter', { + postVar:'q', + postData:{ + 'format': 'json' + }, + ajaxOptions:{ + timeout: 5 // Correct option? + }, + 'minLength': 4, + 'selectMode': false, + cache: true, + delay: 300 + }); + }); +} + +(function (w, d) { + 'use strict'; + function addListener(el, type, fn) { + if (el.addEventListener) { + el.addEventListener(type, fn, false); + } else { + el.attachEvent('on' + type, fn); + } + } + + function placeCursorAtEnd() { + if (this.setSelectionRange) { + var len = this.value.length * 2; + this.setSelectionRange(len, len); + } + } + + addListener(w, 'load', function () { + var qinput = d.getElementById('q'); + if (qinput !== null && qinput.value === "") { + addListener(qinput, 'focus', placeCursorAtEnd); + qinput.focus(); + } + }); + + if (!!('ontouchstart' in window)) { + document.getElementsByTagName("html")[0].className += " touch"; + } + +})(window, document); + diff --git a/searx/static/themes/pix-art/less/definitions.less b/searx/static/themes/pix-art/less/definitions.less new file mode 100644 index 000000000..0ac0cc90c --- /dev/null +++ b/searx/static/themes/pix-art/less/definitions.less @@ -0,0 +1,119 @@ +/* + * searx, A privacy-respecting, hackable metasearch engine + * + * To change the colors of the site, simple edit this variables + */ + +/// Basic Colors + +@color-base: #3498DB; +@color-base-dark: #2980B9; +@color-base-light: #ECF0F1; +@color-highlight: #094089; +@color-black: #000000; + +/// General + +@color-font: #444; +@color-font-light: #888; + +@color-red: #C0392B; + +@color-url-font: #1a11be; +@color-url-visited-font: #8E44AD; +@results-width: 50em; + + +/// Start-Screen + +// hmarg +@color-hmarg-border: @color-base; +@color-hmarg-font: @color-base; +@color-hmarg-font-hover: @color-base; + + +/// Search-Input + +@color-search-border: @color-base; +@color-search-background: #FFF; +@color-search-font: #222; + +/// Autocompleter + +@color-autocompleter-choices-background: #FFF; +@color-autocompleter-choices-border: @color-base; +@color-autocompleter-choices-border-left-right: @color-base; +@color-autocompleter-choices-border-bottom: @color-base; + +@color-autocompleter-choices-font: #444; + +/// Answers +@color-answers-border: @color-base-dark; + +// Selected +@color-autocompleter-selected-background: #444; +@color-autocompleter-selected-font: #FFF; +@color-autocompleter-selected-queried-font: #9FCFFF; + +/// Categories + +@color-categories-item-selected: @color-base; +@color-categories-item-selected-font: #FFF; + +@color-categories-item-border-selected: @color-base-dark; +@color-categories-item-border-unselected: #E8E7E6; +@color-categories-item-border-unselected-hover: @color-base; + + +/// Results + +@color-suggestions-button-background: @color-base; +@color-suggestions-button-font: #FFF; + +@color-download-button-background: @color-base; +@color-download-button-font: #FFF; + +@color-result-search-background: @color-base-light; + +@color-result-definition-border: gray; +@color-result-torrent-border: lightgray; +@color-result-top-border: #E8E7E6; + +// Link to result +@color-result-link-font: @color-base-dark; +@color-result-link-visited-font: @color-url-visited-font; + +// Url to result +@color-result-url-font: @color-red; + +// Publish Date +@color-result-publishdate-font: @color-font-light; + +// Images +@color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); +@color-result-image-span-font: #FFF; + +// Search-URL +@color-result-search-url-border: #888; +@color-result-search-url-font: #444; + + +/// Settings + +@color-settings-fieldset: @color-base; +@color-settings-tr-hover: #DDD; + +// Labels +@color-settings-label-allowed-background: #E74C3C; +@color-settings-label-allowed-font: #FFF; + +@color-settings-label-deny-background: #2ECC71; +@color-settings-label-deny-font: @color-font; + +@color-settings-return-background: @color-base; +@color-settings-return-font: #FFF; + +/// Other + +@color-engines-font: @color-font-light; +@color-percentage-div-background: #444; diff --git a/searx/static/themes/pix-art/less/mixins.less b/searx/static/themes/pix-art/less/mixins.less new file mode 100644 index 000000000..dbccce6e3 --- /dev/null +++ b/searx/static/themes/pix-art/less/mixins.less @@ -0,0 +1,27 @@ +/* + * searx, A privacy-respecting, hackable metasearch engine + */ + +// Mixins + +.text-size-adjust (@property: 100%) { + -webkit-text-size-adjust: @property; + -ms-text-size-adjust: @property; + -moz-text-size-adjust: @property; + text-size-adjust: @property; +} + +.rounded-corners (@radius: 4px) { + -webkit-border-radius: @radius; + -moz-border-radius: @radius; + border-radius: @radius; +} + +.user-select () { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} diff --git a/searx/static/themes/pix-art/less/search.less b/searx/static/themes/pix-art/less/search.less new file mode 100644 index 000000000..62e5a6a18 --- /dev/null +++ b/searx/static/themes/pix-art/less/search.less @@ -0,0 +1,56 @@ +/* + * searx, A privacy-respecting, hackable metasearch engine + */ + +.search { + padding: 0; + margin: 0; +} + +#search_wrapper { + position: relative; + width: @results-width; + padding: 10px; +} + +.center #search_wrapper { + margin-left: auto; + margin-right: auto; +} + +.q { + background: none repeat scroll 0 0 @color-search-background; + border: 1px solid @color-search-border; + color: @color-search-font; + font-size: 16px; + height: 28px; + margin: 0; + outline: medium none; + padding: 2px; + padding-left: 8px; + padding-right: 0px !important; + width: 100%; + z-index: 2; +} + +#search_submit { + position: absolute; + top: 13px; + right: 1px; + padding: 0; + border: 0; + background: url('../img/search-icon-pixel.png') no-repeat; + background-size: 24px 24px; + opacity: 0.8; + width: 24px; + height: 30px; + font-size: 0; +} + +@media screen and (max-width: @results-width) { + #search_wrapper { + width: 90%; + clear:both; + overflow: hidden + } +} diff --git a/searx/static/themes/pix-art/less/style.less b/searx/static/themes/pix-art/less/style.less new file mode 100644 index 000000000..db487184e --- /dev/null +++ b/searx/static/themes/pix-art/less/style.less @@ -0,0 +1,438 @@ +/* + * searx, A privacy-respecting, hackable metasearch engine + * + * To convert "style.less" to "style.css" run: $make styles + */ + +@import "definitions.less"; + +@import "mixins.less"; + + +// Main LESS-Code + +html { + font-family: sans-serif; + font-size: 0.9em; + .text-size-adjust; + color: @color-font; + padding: 0; + margin: 0; +} + +body, #container { + padding: 0; + margin: 0; +} + +canvas { + image-rendering: optimizeSpeed; + image-rendering: -moz-crisp-edges; + image-rendering: -webkit-optimize-contrast; + image-rendering: optimize-contrast; + image-rendering: pixelated; + -ms-interpolation-mode: nearest-neighbor; + width:32px; + height:32px; +} + +#container { + width: 100%; + position: absolute; + top: 0; +} + +// Search-Field + +@import "search.less"; + +// Autocompleter + + +.row { + max-width: 800px; + margin: 20px auto; + text-align: justify; + + h1 { + font-size: 3em; + margin-top: 50px; + } + + p { + padding: 0 10px; + max-width: 700px; + } + + h3,ul { + margin: 4px 8px; + } +} + +.hmarg { + margin: 0 20px; + border: 1px solid @color-hmarg-border; + padding: 4px 10px; +} + +a { + &:link.hmarg { + color: @color-hmarg-font; + } + + &:visited.hmarg { + color: @color-hmarg-font; + } + + &:active.hmarg { + color: @color-hmarg-font-hover; + } + + &:hover.hmarg { + color: @color-hmarg-font-hover; + } +} + +.top_margin { + margin-top: 60px; +} + +.center { + text-align: center; +} + +h1 { + font-size: 5em; +} + +div.title { + background: url('../img/searx-pixel.png') no-repeat; + width: 100%; + min-height: 80px; + background-position: center; + + h1 { + visibility: hidden; + } +} + +input[type="submit"] { + padding: 2px 6px; + margin: 2px 4px; + display: inline-block; + background: @color-download-button-background; + color: @color-download-button-font; + .rounded-corners; + border: 0; + cursor: pointer; +} + +input[type="checkbox"] { + visibility: hidden; +} + +fieldset { + margin: 8px; + border: 1px solid @color-settings-fieldset; +} + +#categories { + margin: 0 10px; + .user-select; +} + +.checkbox_container { + display: inline-block; + position: relative; + margin: 0 3px; + padding: 0px; + + input { + display: none; + } +} + +.checkbox_container label, .engine_checkbox label { + cursor: pointer; + padding: 4px 10px; + margin: 0; + display: block; + text-transform: capitalize; + .user-select; +} + +.checkbox_container input[type="checkbox"]:checked + label { + background: @color-categories-item-selected; + color: @color-categories-item-selected-font; +} + +.engine_checkbox { + padding: 4px; +} + +label { + &.allow { + background: @color-settings-label-allowed-background; + padding: 4px 8px; + color: @color-settings-label-allowed-font; + display: none; + } + + &.deny { + background: @color-settings-label-deny-background; + padding: 4px 8px; + color: @color-settings-label-deny-font; + display: inline; + } +} + +.engine_checkbox input[type="checkbox"]:checked + label { + &:nth-child(2) + label { + display: none; + } + + &.allow { + display: inline; + } +} + +a { + text-decoration: none; + color: @color-url-font; + + &:visited { + color: @color-url-visited-font; + } +} + +.engines { + color: @color-engines-font; +} + +.small_font { + font-size: 0.8em; +} + +.small p { + margin: 2px 0; +} + +.right { + float: right; +} + +.invisible { + display: none; +} + +.left { + float: left; +} + +.highlight { + color: @color-highlight; +} + +.content .highlight { + color: @color-black; +} + +.percentage { + position: relative; + width: 300px; + + div { + background: @color-percentage-div-background; + } +} + +table { + width: 100%; +} + +td { + padding: 0 4px; +} + +tr { + &:hover { + background: @color-settings-tr-hover; + } +} + +#results { + margin: auto; + padding: 0; + width: @results-width; + margin-bottom: 20px; +} + +#search_url { + margin-top: 8px; + + input { + border: 1px solid @color-result-search-url-border; + padding: 4px; + color: @color-result-search-url-font; + width: 14em; + display: block; + margin: 4px; + font-size: 0.8em; + } +} + +#preferences { + top: 10px; + padding: 0; + border: 0; + background: url('../img/preference-icon-pixel.png') no-repeat; + background-size: 28px 28px; + opacity: 0.8; + width: 28px; + height: 30px; + display: block; + + * { + display: none; + } +} + +#pagination { + clear: both; + + br { + clear: both; + } +} + +#apis { + margin-top: 8px; + clear: both; +} + +#categories_container { + position: relative; +} + +@media screen and (max-width: @results-width) { + + #results { + margin: auto; + padding: 0; + width: 90%; + } + + .checkbox_container { + display: block; + width: 90%; + //float: left; + + label { + border-bottom: 0; + } + } + + .preferences_container { + display: none; + postion: fixed !important; + top: 100px; + right: 0px; + } + +} + +@media screen and (max-width: 75em) { + + div.title { + + h1 { + font-size: 1em; + } + } + + html.touch #categories { + width: 95%; + height: 30px; + text-align: left; + overflow-x: scroll; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + + #categories_container { + width: 1000px; + width: -moz-max-content; + width: -webkit-max-content; + width: max-content; + + .checkbox_container { + display: inline-block; + width: auto; + } + } + } + + #categories { + font-size: 90%; + clear: both; + + .checkbox_container { + margin-top: 2px; + margin: auto; + } + } + + #categories { + font-size: 90%; + clear: both; + + .checkbox_container { + margin-top: 2px; + margin: auto; + } + } + + #apis { + display: none; + } + + #search_url { + display: none; + } +} + +.favicon { + float: left; + margin-right: 4px; + margin-top: 2px; +} + +.preferences_back { + background: none repeat scroll 0 0 @color-settings-return-background; + border: 0 none; + .rounded-corners; + cursor: pointer; + display: inline-block; + margin: 2px 4px; + padding: 4px 6px; + + a { + color: @color-settings-return-font; + } +} + +.hidden { + opacity: 0; + overflow: hidden; + font-size: 0.8em; + position: absolute; + bottom: -20px; + width: 100%; + text-position: center; + background: white; + transition: opacity 1s ease; +} + +#categories_container:hover .hidden { + transition: opacity 1s ease; + opacity: 0.8; +} diff --git a/searx/templates/pix-art/about.html b/searx/templates/pix-art/about.html new file mode 100644 index 000000000..cb4b351f8 --- /dev/null +++ b/searx/templates/pix-art/about.html @@ -0,0 +1,65 @@ +{% extends 'pix-art/base.html' %} +{% block content %} +
+

About searx

+ +

Searx is a metasearch engine, aggregating the results of other search engines while not storing information about its users. +

+

Why use Searx?

+
    +
  • Searx may not offer you as personalised results as Google, but it doesn't generate a profile about you
  • +
  • Searx doesn't care about what you search for, never shares anything with a third party, and it can't be used to compromise you
  • +
  • Searx is free software, the code is 100% open and you can help to make it better. See more on github
  • +
+

If you do care about privacy, want to be a conscious user, or otherwise believe + in digital freedom, make Searx your default search engine or run it on your own server

+ +

Technical details - How does it work?

+ +

Searx is a metasearch engine, +inspired by the seeks project.
+It provides basic privacy by mixing your queries with searches on other platforms without storing search data. Queries are made using a POST request on every browser (except chrome*). Therefore they show up in neither our logs, nor your url history. In case of Chrome* users there is an exception, if Searx used from the search bar it performs GET requests.
+Searx can be added to your browser's search bar; moreover, it can be set as the default search engine. +

+ +

How can I make it my own?

+ +

Searx appreciates your concern regarding logs, so take the code and run it yourself!
Add your Searx to this list to help other people reclaim their privacy and make the Internet freer! +
The more decentralized Internet is the more freedom we have!

+ + +

More about searx

+ + + + +
+ +

FAQ

+ +

How to add to firefox?

+

Install searx as a search engine on any version of Firefox! (javascript required)

+ +

Developer FAQ

+ +

New engines?

+ +

Don't forget to restart searx after config edit!

+ +

Installation/WSGI support?

+

See the installation and setup wiki page

+ +

How to debug engines?

+

Stats page contains some useful data about the engines used.

+ +
+{% endblock %} diff --git a/searx/templates/pix-art/base.html b/searx/templates/pix-art/base.html new file mode 100644 index 000000000..2a3870e58 --- /dev/null +++ b/searx/templates/pix-art/base.html @@ -0,0 +1,28 @@ + + + + + + + + + {% block title %}{% endblock %}searx + + + {% block styles %} + {% endblock %} + {% block meta %}{% endblock %} + {% block head %} + {% endblock %} + + +
+ {% block content %} + {% endblock %} + + +
+ + diff --git a/searx/templates/pix-art/index.html b/searx/templates/pix-art/index.html new file mode 100644 index 000000000..d398cc829 --- /dev/null +++ b/searx/templates/pix-art/index.html @@ -0,0 +1,12 @@ +{% extends "pix-art/base.html" %} +{% block content %} +
+

Searx Logo

+ {% include 'pix-art/search.html' %} +

+ {{ _('about') }} + {{ _('preferences') }} +

+
+{% endblock %} + diff --git a/searx/templates/pix-art/preferences.html b/searx/templates/pix-art/preferences.html new file mode 100644 index 000000000..0caf31b46 --- /dev/null +++ b/searx/templates/pix-art/preferences.html @@ -0,0 +1,82 @@ +{% extends "default/base.html" %} +{% block head %} {% endblock %} +{% block content %} +
+

{{ _('Preferences') }}

+ +
+
+ {{ _('Search language') }} +

+ +

+
+
+ {{ _('Interface language') }} +

+ +

+
+
+ {{ _('Method') }} +

+ +

+
+
+ {{ _('Themes') }} +

+ +

+
+
+ {{ _('Currently used search engines') }} + + + + + + + {% for (categ,search_engines) in categs %} + {% for search_engine in search_engines %} + + {% if not search_engine.private %} + + + + + {% endif %} + {% endfor %} + {% endfor %} +
{{ _('Engine name') }}{{ _('Allow') }} / {{ _('Block') }}
{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎ + + + +
+
+

{{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }} +
+ {{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }} +

+ + + +
+
+{% endblock %} diff --git a/searx/templates/pix-art/result_templates/default.html b/searx/templates/pix-art/result_templates/default.html new file mode 100644 index 000000000..b9cbca342 --- /dev/null +++ b/searx/templates/pix-art/result_templates/default.html @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/searx/templates/pix-art/result_templates/images.html b/searx/templates/pix-art/result_templates/images.html new file mode 100644 index 000000000..e06dcc194 --- /dev/null +++ b/searx/templates/pix-art/result_templates/images.html @@ -0,0 +1,6 @@ + diff --git a/searx/templates/pix-art/results.html b/searx/templates/pix-art/results.html new file mode 100644 index 000000000..b01b7cb09 --- /dev/null +++ b/searx/templates/pix-art/results.html @@ -0,0 +1,44 @@ +{% extends "pix-art/base.html" %} +{% block title %}{{ q }} - {% endblock %} +{% block meta %}{% endblock %} +{% block content %} + + +
+ {% for result in results %} + {% set index = loop.index %} + {% include 'pix-art/result_templates/default.html' %} + {% endfor %} + + {% if paging %} + + {% endif %} +
+{% endblock %} diff --git a/searx/templates/pix-art/search.html b/searx/templates/pix-art/search.html new file mode 100644 index 000000000..678ab11ed --- /dev/null +++ b/searx/templates/pix-art/search.html @@ -0,0 +1,9 @@ +
+
+ + + {% for category in categories %} + + {% endfor %} +
+
diff --git a/searx/templates/pix-art/stats.html b/searx/templates/pix-art/stats.html new file mode 100644 index 000000000..70fe98ac7 --- /dev/null +++ b/searx/templates/pix-art/stats.html @@ -0,0 +1,22 @@ +{% extends "default/base.html" %} +{% block head %} {% endblock %} +{% block content %} +

{{ _('Engine stats') }}

+ +{% for stat_name,stat_category in stats %} +
+ + + + + {% for engine in stat_category %} + + + + + + {% endfor %} +
{{ stat_name }}
{{ engine.name }}{{ '%.02f'|format(engine.avg) }}
 
+
+{% endfor %} +{% endblock %} diff --git a/searx/webapp.py b/searx/webapp.py index b12a08db5..d2aa91910 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -29,6 +29,7 @@ import hashlib from datetime import datetime, timedelta from urllib import urlencode +from urlparse import urlparse from werkzeug.contrib.fixers import ProxyFix from flask import ( Flask, request, render_template, url_for, Response, make_response, @@ -178,6 +179,12 @@ def code_highlighter(codelines, language=None): return html_code +# Extract domain from url +@app.template_filter('extract_domain') +def extract_domain(url): + return urlparse(url)[1] + + def get_base_url(): if settings['server']['base_url']: hostname = settings['server']['base_url'] From e181041f11f612937299d440ccb090d3a78cf740 Mon Sep 17 00:00:00 2001 From: Cqoicebordel Date: Tue, 17 Feb 2015 01:07:14 +0100 Subject: [PATCH 2/4] Ajax loading + Tweaks of CSS --- searx/static/themes/pix-art/css/style.css | 2 +- .../themes/pix-art/img/searx-pixel-small.png | Bin 0 -> 238 bytes searx/static/themes/pix-art/img/spinner.gif | Bin 0 -> 7293 bytes searx/static/themes/pix-art/js/searx.js | 94 ++++++++++++++++++ searx/static/themes/pix-art/less/search.less | 6 +- searx/static/themes/pix-art/less/style.less | 25 +++-- searx/templates/pix-art/base.html | 6 ++ .../pix-art/result_templates/default.html | 9 +- searx/templates/pix-art/results.html | 58 +++++------ searx/templates/pix-art/search.html | 2 +- 10 files changed, 147 insertions(+), 55 deletions(-) create mode 100644 searx/static/themes/pix-art/img/searx-pixel-small.png create mode 100644 searx/static/themes/pix-art/img/spinner.gif diff --git a/searx/static/themes/pix-art/css/style.css b/searx/static/themes/pix-art/css/style.css index a173f5428..22f30adcb 100644 --- a/searx/static/themes/pix-art/css/style.css +++ b/searx/static/themes/pix-art/css/style.css @@ -1 +1 @@ -html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:13px;right:1px;padding:0;border:0;background:url('../img/search-icon-pixel2.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:30px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="submit"]{padding:2px 6px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file +html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:15px;right:5px;padding:0;border:0;background:url('../img/search-icon-pixel.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:24px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="button"]{padding:4px 12px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="button"]:disabled{cursor:progress}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#logo{position:absolute;top:13px;left:10px}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both;text-align:center}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}#logo{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file diff --git a/searx/static/themes/pix-art/img/searx-pixel-small.png b/searx/static/themes/pix-art/img/searx-pixel-small.png new file mode 100644 index 0000000000000000000000000000000000000000..76f381c5c5bb137ec7dc0d129fff0d89552d9f89 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^^MP1~kr_z3e*AwGNU;U@gt(edyQ@6ouJ6R`H$V}_ zk|4ie28U-i(m_}nhf7NqLLsC)I^~iBPR%Qm#XS1%~4k**$ zl!zBOro#DqqWFWWQlB(=zg5J#-77GvOHopK&ylwHM03Fs`NManeDAD3>w3n`O8TV5 c@wz_@;vC{(GM5}T0xe_kboFyt=akR{0ALeKivR!s literal 0 HcmV?d00001 diff --git a/searx/static/themes/pix-art/img/spinner.gif b/searx/static/themes/pix-art/img/spinner.gif new file mode 100644 index 0000000000000000000000000000000000000000..d70e679c47adee493a2077547ac8114fb4ef582b GIT binary patch literal 7293 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 + var favicons = [[]]; +
@@ -23,6 +26,9 @@ searx = {}; +
diff --git a/searx/templates/pix-art/result_templates/default.html b/searx/templates/pix-art/result_templates/default.html index b9cbca342..60ff502c8 100644 --- a/searx/templates/pix-art/result_templates/default.html +++ b/searx/templates/pix-art/result_templates/default.html @@ -2,12 +2,5 @@ \ No newline at end of file diff --git a/searx/templates/pix-art/results.html b/searx/templates/pix-art/results.html index b01b7cb09..9385b608a 100644 --- a/searx/templates/pix-art/results.html +++ b/searx/templates/pix-art/results.html @@ -1,44 +1,32 @@ -{% extends "pix-art/base.html" %} -{% block title %}{{ q }} - {% endblock %} -{% block meta %}{% endblock %} -{% block content %} - - -
+{% if pageno > 1 %} {% for result in results %} {% set index = loop.index %} {% include 'pix-art/result_templates/default.html' %} {% endfor %} - - {% if paging %} +{% else %} +{% extends "pix-art/base.html" %} +{% block title %}{{ q }} - {% endblock %} +{% block meta %}{% endblock %} +{% block content %} + + + + +
+ + {% for result in results %} + {% set index = loop.index %} + {% include 'pix-art/result_templates/default.html' %} + {% endfor %} + - {% endif %}
{% endblock %} +{% endif %} \ No newline at end of file diff --git a/searx/templates/pix-art/search.html b/searx/templates/pix-art/search.html index 678ab11ed..4d129ec68 100644 --- a/searx/templates/pix-art/search.html +++ b/searx/templates/pix-art/search.html @@ -1,7 +1,7 @@
- + {% for category in categories %} {% endfor %} From af100afb98f56713deb94e19115883a2247e8a0b Mon Sep 17 00:00:00 2001 From: Cqoicebordel Date: Tue, 17 Feb 2015 18:50:57 +0100 Subject: [PATCH 3/4] Change font --- searx/static/themes/pix-art/css/style.css | 2 +- searx/static/themes/pix-art/less/search.less | 1 + searx/static/themes/pix-art/less/style.less | 6 ++++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/searx/static/themes/pix-art/css/style.css b/searx/static/themes/pix-art/css/style.css index 22f30adcb..229cf86a2 100644 --- a/searx/static/themes/pix-art/css/style.css +++ b/searx/static/themes/pix-art/css/style.css @@ -1 +1 @@ -html{font-family:sans-serif;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:15px;right:5px;padding:0;border:0;background:url('../img/search-icon-pixel.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:24px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="button"]{padding:4px 12px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="button"]:disabled{cursor:progress}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#logo{position:absolute;top:13px;left:10px}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both;text-align:center}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}#logo{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file +html{font-family:"Courier New",Courier,monospace;font-size:.9em;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;color:#444;padding:0;margin:0}body,#container{padding:0;margin:0}canvas{image-rendering:optimizeSpeed;image-rendering:-moz-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:optimize-contrast;image-rendering:pixelated;-ms-interpolation-mode:nearest-neighbor;width:32px;height:32px}#container{width:100%;position:absolute;top:0}.search{padding:0;margin:0}#search_wrapper{position:relative;width:50em;padding:10px}.center #search_wrapper{margin-left:auto;margin-right:auto}.q{background:none repeat scroll 0 0 #fff;border:1px solid #3498db;color:#222;font-size:16px;font-family:"Courier New",Courier,monospace;height:28px;margin:0;outline:medium none;padding:2px;padding-left:8px;padding-right:0 !important;width:100%;z-index:2}#search_submit{position:absolute;top:15px;right:5px;padding:0;border:0;background:url('../img/search-icon-pixel.png') no-repeat;background-size:24px 24px;opacity:.8;width:24px;height:24px;font-size:0}@media screen and (max-width:50em){#search_wrapper{width:90%;clear:both;overflow:hidden}}.row{max-width:800px;margin:20px auto;text-align:justify}.row h1{font-size:3em;margin-top:50px}.row p{padding:0 10px;max-width:700px}.row h3,.row ul{margin:4px 8px}.hmarg{margin:0 20px;border:1px solid #3498db;padding:4px 10px}a:link.hmarg{color:#3498db}a:visited.hmarg{color:#3498db}a:active.hmarg{color:#3498db}a:hover.hmarg{color:#3498db}.top_margin{margin-top:60px}.center{text-align:center}h1{font-size:5em}div.title{background:url('../img/searx-pixel.png') no-repeat;width:100%;min-height:80px;background-position:center}div.title h1{visibility:hidden}input[type="button"],input[type="submit"]{font-family:"Courier New",Courier,monospace;padding:4px 12px;margin:2px 4px;display:inline-block;background:#3498db;color:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:0;cursor:pointer}input[type="button"]:disabled{cursor:progress}input[type="checkbox"]{visibility:hidden}fieldset{margin:8px;border:1px solid #3498db}#logo{position:absolute;top:13px;left:10px}#categories{margin:0 10px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container{display:inline-block;position:relative;margin:0 3px;padding:0}.checkbox_container input{display:none}.checkbox_container label,.engine_checkbox label{cursor:pointer;padding:4px 10px;margin:0;display:block;text-transform:capitalize;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox_container input[type="checkbox"]:checked+label{background:#3498db;color:#fff}.engine_checkbox{padding:4px}label.allow{background:#e74c3c;padding:4px 8px;color:#fff;display:none}label.deny{background:#2ecc71;padding:4px 8px;color:#444;display:inline}.engine_checkbox input[type="checkbox"]:checked+label:nth-child(2)+label{display:none}.engine_checkbox input[type="checkbox"]:checked+label.allow{display:inline}a{text-decoration:none;color:#1a11be}a:visited{color:#8e44ad}.engines{color:#888}.small_font{font-size:.8em}.small p{margin:2px 0}.right{float:right}.invisible{display:none}.left{float:left}.highlight{color:#094089}.content .highlight{color:#000}.percentage{position:relative;width:300px}.percentage div{background:#444}table{width:100%}td{padding:0 4px}tr:hover{background:#ddd}#results{margin:auto;padding:0;width:50em;margin-bottom:20px}#search_url{margin-top:8px}#search_url input{border:1px solid #888;padding:4px;color:#444;width:14em;display:block;margin:4px;font-size:.8em}#preferences{top:10px;padding:0;border:0;background:url('../img/preference-icon-pixel.png') no-repeat;background-size:28px 28px;opacity:.8;width:28px;height:30px;display:block}#preferences *{display:none}#pagination{clear:both;text-align:center}#pagination br{clear:both}#apis{margin-top:8px;clear:both}#categories_container{position:relative}@media screen and (max-width:50em){#results{margin:auto;padding:0;width:90%}.checkbox_container{display:block;width:90%}.checkbox_container label{border-bottom:0}.preferences_container{display:none;postion:fixed !important;top:100px;right:0}}@media screen and (max-width:75em){div.title h1{font-size:1em}html.touch #categories{width:95%;height:30px;text-align:left;overflow-x:scroll;overflow-y:hidden;-webkit-overflow-scrolling:touch}html.touch #categories #categories_container{width:1000px;width:-moz-max-content;width:-webkit-max-content;width:max-content}html.touch #categories #categories_container .checkbox_container{display:inline-block;width:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#categories{font-size:90%;clear:both}#categories .checkbox_container{margin-top:2px;margin:auto}#apis{display:none}#search_url{display:none}#logo{display:none}}.favicon{float:left;margin-right:4px;margin-top:2px}.preferences_back{background:none repeat scroll 0 0 #3498db;border:0 none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;display:inline-block;margin:2px 4px;padding:4px 6px}.preferences_back a{color:#fff}.hidden{opacity:0;overflow:hidden;font-size:.8em;position:absolute;bottom:-20px;width:100%;text-position:center;background:white;transition:opacity 1s ease}#categories_container:hover .hidden{transition:opacity 1s ease;opacity:.8} \ No newline at end of file diff --git a/searx/static/themes/pix-art/less/search.less b/searx/static/themes/pix-art/less/search.less index ef0d881cb..f5ac33ee1 100644 --- a/searx/static/themes/pix-art/less/search.less +++ b/searx/static/themes/pix-art/less/search.less @@ -23,6 +23,7 @@ border: 1px solid @color-search-border; color: @color-search-font; font-size: 16px; + font-family: "Courier New", Courier, monospace; height: 28px; margin: 0; outline: medium none; diff --git a/searx/static/themes/pix-art/less/style.less b/searx/static/themes/pix-art/less/style.less index c11a43474..a2088e985 100644 --- a/searx/static/themes/pix-art/less/style.less +++ b/searx/static/themes/pix-art/less/style.less @@ -12,7 +12,7 @@ // Main LESS-Code html { - font-family: sans-serif; + font-family: "Courier New", Courier, monospace; font-size: 0.9em; .text-size-adjust; color: @color-font; @@ -113,7 +113,9 @@ div.title { } } -input[type="button"] { +input[type="button"], +input[type="submit"] { + font-family: "Courier New", Courier, monospace; padding: 4px 12px; margin: 2px 4px; display: inline-block; From 5c63f2a80a749897b66604e43cc483306d263aeb Mon Sep 17 00:00:00 2001 From: Cqoicebordel Date: Tue, 17 Feb 2015 19:01:18 +0100 Subject: [PATCH 4/4] A bit of cleanup --- .../static/themes/pix-art/img/searx_logo.svg | 203 ------------------ searx/static/themes/pix-art/img/spinner.gif | Bin 7293 -> 0 bytes searx/static/themes/pix-art/js/searx.js | 10 +- searx/templates/pix-art/base.html | 2 +- 4 files changed, 5 insertions(+), 210 deletions(-) delete mode 100644 searx/static/themes/pix-art/img/searx_logo.svg delete mode 100644 searx/static/themes/pix-art/img/spinner.gif diff --git a/searx/static/themes/pix-art/img/searx_logo.svg b/searx/static/themes/pix-art/img/searx_logo.svg deleted file mode 100644 index 67a2d4588..000000000 --- a/searx/static/themes/pix-art/img/searx_logo.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/searx/static/themes/pix-art/img/spinner.gif b/searx/static/themes/pix-art/img/spinner.gif deleted file mode 100644 index d70e679c47adee493a2077547ac8114fb4ef582b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7293 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 - +