on master help sign in
Merge branch 'master' of https://github.com/dalf/searx
ba141d6asciimoo
searx/static/css/style.css+93−54
@@ -2,8 +2,22 @@ html {
2 font-family: sans-serif;
2 font-family: sans-serif;
3 font-size: 0.9em;
3 font-size: 0.9em;
4 -webkit-text-size-adjust: 100%;
4 -webkit-text-size-adjust: 100%;
5− -ms-text-size-adjust: 100%;
5+ -ms-text-size-adjust: 100%;
6+ -moz-text-size-adjust: 100%;
6 color: #444444;
7 color: #444444;
8+ padding: 0;
9+ margin: 0;
10+}
11+
12+body, #container {
13+ padding: 0;
14+ margin: 0;
15+}
16+
17+#container {
18+ width: 100%;
19+ position: absolute;
20+ top: 0;
7}
21}
8
22
9.row { max-width: 800px; margin: auto; text-align: justify; }
23.row { max-width: 800px; margin: auto; text-align: justify; }
@@ -22,60 +36,43 @@ h1 { font-size: 5em; }
22div.title { background: url('/static/img/searx.png') no-repeat; width: 100%; background-position: center; }
36div.title { background: url('/static/img/searx.png') no-repeat; width: 100%; background-position: center; }
23div.title h1 { visibility: hidden; }
37div.title h1 { visibility: hidden; }
24
38
25−
26input[type="submit"] { border: 1px solid #666666; color: #444444; padding: 4px; background-color: #FFFFFF; margin-left: 8px; }
39input[type="submit"] { border: 1px solid #666666; color: #444444; padding: 4px; background-color: #FFFFFF; margin-left: 8px; }
27
40
28input[type="checkbox"] { visibility: hidden; }
41input[type="checkbox"] { visibility: hidden; }
29
42
43+#categories { margin: 0 10px; }
44+
30−.checkbox_container { display: inline-block; position: relative; padding-left: 3px; margin: 0 10px; }
45+.checkbox_container { display: inline-block; position: relative; margin: 0 3px; padding: 0px; }
46+.checkbox_container input {
47+ display: none;
48+}
31.checkbox_container label {
49.checkbox_container label {
32 cursor: pointer;
50 cursor: pointer;
33−}
51+ padding: 4px 10px;
34−.checkbox_container label.cb {
52+ margin: 0;
35− position: absolute;
53+ display: block;
36− width: 16px;
54+ text-transform: capitalize;
37− height: 16px;
55+
38− top: 2px;
56+ -webkit-touch-callout: none;
39− left: 2px;
57+ -webkit-user-select: none;
40− background: #eee;
58+ -khtml-user-select: none;
41− border:1px solid #ddd;
59+ -moz-user-select: none;
42−}
60+ -ms-user-select: none;
43−.checkbox_container label.cb:after {
61+ user-select: none;
44− opacity: 0.2;
45− content: '';
46− position: absolute;
47− width: 8px;
48− height: 4px;
49− background: transparent;
50− top: 3px;
51− left: 3px;
52− border: 3px solid #333;
53− border-top: none;
54− border-right: none;
55−
56− -webkit-transform: rotate(-45deg);
57− -moz-transform: rotate(-45deg);
58− -o-transform: rotate(-45deg);
59− -ms-transform: rotate(-45deg);
60− transform: rotate(-45deg);
61−}
62−.checkbox_container label.cb:hover:after {
63− opacity: 0.5;
64−}
65−.checkbox_container input[type=checkbox]:checked + label.cb:after {
66− opacity: 1;
67}
62}
68
63
69−a { text-decoration: none; }
64+.checkbox_container input[type="checkbox"]:checked + label { background: #b8c1d9; }
65+.search .checkbox_container label { border-bottom: 4px solid #e8e7e6; }
66+.search .checkbox_container input[type="checkbox"]:checked + label { border-bottom: 4px solid #1a11be; }
70
67
68+a { text-decoration: none; color: #1a11be; }
69+a:visited { color: #7b11be; }
71
70
72−.result { margin-bottom: 16px; clear: both; }
71+.result { margin: 19px 0 18px 0; padding: 0; max-width: 55em; }
73.result_title { margin-bottom: 0; }
72.result_title { margin-bottom: 0; }
74−.result p { margin-top: 0; padding-top: 0; font-size: 0.8em; max-width: 54em; }
73+.result h3 { font-size: 1em; word-wrap:break-word; margin: 5px 0 1px 0; padding: 0 }
75−.result h3 { font-size: 0.9em;}
74+.result .content { font-size: 0.8em; margin: 0; padding: 0; max-width: 54em; word-wrap:break-word; line-height: 1.24; }
76−.result { max-width: 70em; }
77−
78−.url { font-weight: bold; word-wrap:break-word; }
75+.result .url { font-size: 0.8em; margin: 3px 0 0 0; padding: 0; max-width: 54em; word-wrap:break-word; color: #2e1c0b; }
79
76
80.q { width: 30em; }
77.q { width: 30em; }
81
78
@@ -85,6 +82,8 @@ a { text-decoration: none; }
85
82
86.small p { margin: 2px 0; }
83.small p { margin: 2px 0; }
87
84
85+.search { background: #e8e7e6; padding: 0; margin: 0 }
86+
88.right { float: right; }
87.right { float: right; }
89
88
90.invisible { display: none; }
89.invisible { display: none; }
@@ -103,8 +102,7 @@ a { text-decoration: none; }
103td { padding: 0 4px; }
102td { padding: 0 4px; }
104tr:hover td { background: #DDDDDD; }
103tr:hover td { background: #DDDDDD; }
105
104
106−
107−#search_wrapper { position: relative; max-width: 600px; margin: 10px; }
105+#search_wrapper { position: relative; max-width: 600px; padding: 10px; }
108.center #search_wrapper { margin-left: auto; margin-right: auto; }
106.center #search_wrapper { margin-left: auto; margin-right: auto; }
109.q {
107.q {
110 background: none repeat scroll 0 0 #FFFFFF;
108 background: none repeat scroll 0 0 #FFFFFF;
@@ -124,8 +122,8 @@ tr:hover td { background: #DDDDDD; }
124}
122}
125#search_submit {
123#search_submit {
126 position: absolute;
124 position: absolute;
127− top: 5px;
125+ top: 15px;
128− right: 0px;
126+ right: 4px;
129 padding: 0;
127 padding: 0;
130 border: 0;
128 border: 0;
131 background: url('/static/img/search-icon.png') no-repeat;
129 background: url('/static/img/search-icon.png') no-repeat;
@@ -135,14 +133,55 @@ tr:hover td { background: #DDDDDD; }
135 height: 30px;
133 height: 30px;
136}
134}
137
135
138−#results { margin-left: 10px; margin-top: 10px; }
136+#results { margin: 10px; padding: 0; }
139
137
140−#suggestions { max-width: 50em;}
138+#result_count { font-size: 0.8em; margin: 2px 0 2px 0; padding: 0 }
139+
140+#suggestions { position: absolute; left: 54em; width: 12em; margin: 0 2px 5px 5px; padding: 0 2px 2px 2px; }
141+#suggestions span { display: block; font-size: 0.8em; margin: 0 2px 10px 2px; padding: 0; }
141−#suggestions form { display: inline; }
142+#suggestions form { display: block; }
142#suggestions input { padding: 2px 6px; margin: 2px 4px; font-size: 0.8em; display: inline-block; background: #E4E4E4; border-radius: 4px; border: 0; cursor: pointer; }
143#suggestions input { padding: 2px 6px; margin: 2px 4px; font-size: 0.8em; display: inline-block; background: #E4E4E4; border-radius: 4px; border: 0; cursor: pointer; }
143
144
145+#preferences {
146+ top: 10px;
147+ padding: 0;
148+ border: 0;
149+ background: url('/static/img/preference-icon.png') no-repeat;
150+ background-size: 28px 28px;
151+ opacity: 0.8;
152+ width: 28px;
153+ height: 30px;
154+ display: block;
155+}
156+
157+#preferences * {
158+ display: none;
159+}
160+
161+#apis {
162+ clear: both;
163+}
164+
144−@media screen and (max-width: 740px) {
165+@media screen and (max-width: 60em) {
145− .right { margin: 5px; }
166+
167+ #suggestions { position: static; max-width: 50em; margin: 0 0 2px 0; padding: 0; float: none; border: none; width: auto }
168+ #suggestions span { display: inline; font-size: 0.8em }
169+ #suggestions form { display: inline; }
170+ #suggestions input { padding: 2px 6px; margin: 2px 4px; font-size: 0.8em; display: inline-block; background: #E4E4E4; border-radius: 4px; border: 0; cursor: pointer; }
171+
172+}
173+
174+@media screen and (max-width: 680px) {
175+
176+ #search_wrapper { width: 90%; clear:both; overflow: hidden }
177+
178+ .right { display: none; postion: fixed !important; top: 100px; right: 0px; }
179+
180+ #categories { font-size: 80% }
181+
182+ #categories .checkbox_container { margin-top: 2px; margin: 0 2px; }
183+
184+ .result { border-top: 1px solid #e8e7e6; margin: 7px 0 6px 0; }
146
185
147− #search_wrapper { max-width: 90%; clear:both }
186+ .result img { max-width: 90%; width: auto; height: auto }
148}
187}
searx/static/img/preference-icon.pngnew file

Binary file not shown.

searx/templates/categories.html+3−1
@@ -1,5 +1,7 @@
1+<div id="categories">
1{% for category in categories %}
2{% for category in categories %}
2 <div class="checkbox_container">
3 <div class="checkbox_container">
3− <input type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} /><label for="checkbox_{{ category|replace(' ', '_') }}" class="cb"></label><label for="checkbox_{{ category|replace(' ', '_') }}">{{ category }}</label>
4+ <input type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} /></label><label for="checkbox_{{ category|replace(' ', '_') }}">{{ category }}</label>
4 </div>
5 </div>
5{% endfor %}
6{% endfor %}
7+</div>
searx/templates/result_templates/default.html+2−1
@@ -1,4 +1,5 @@
1<div class="result">
1<div class="result">
2 <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
2 <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
3− <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}<span class="url">{{ result.pretty_url }}</span></p>
3+ <p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p>
4+ <p class="url">{{ result.pretty_url }}</p>
4</div>
5</div>
searx/templates/results.html+16−14
@@ -1,15 +1,15 @@
1{% extends "base.html" %}
1{% extends "base.html" %}
2{% block title %}{{ q }} - {% endblock %}
2{% block title %}{{ q }} - {% endblock %}
3{% block content %}
3{% block content %}
4−<div class="right"><a href="/preferences">preferences</a></div>
4+<div class="right"><a href="/preferences" id="preferences"><span>preferences</span></a></div>
5−<div class="small">
5+<div class="small search">
6 {% include 'search.html' %}
6 {% include 'search.html' %}
7</div>
7</div>
8<div id="results">
8<div id="results">
9 {% if suggestions %}
9 {% if suggestions %}
10− <div id="suggestions">Suggestions: {% for suggestion in suggestions %}<form method="post" action="/"><input type="hidden" name="q" value="{{suggestion}}"><input type="submit" value="{{ suggestion }}" /></form>{% endfor %}</div>
10+ <div id="suggestions"><span>Suggestions: </span>{% for suggestion in suggestions %}<form method="post" action="/"><input type="hidden" name="q" value="{{suggestion}}"><input type="submit" value="{{ suggestion }}" /></form>{% endfor %}</div>
11 {% endif %}
11 {% endif %}
12− <div>
12+ <div id ="result_count">
13 Number of results: {{ number_of_results }}
13 Number of results: {{ number_of_results }}
14 </div>
14 </div>
15 {% for result in results %}
15 {% for result in results %}
@@ -19,19 +19,21 @@
19 {% include 'result_templates/default.html' %}
19 {% include 'result_templates/default.html' %}
20 {% endif %}
20 {% endif %}
21 {% endfor %}
21 {% endfor %}
22+ <div id="apis">
22− <form method="post" action="/">
23+ <form method="post" action="/">
23 <div class="left">
24 <div class="left">
24− <input type="hidden" name="q" value="{{ q }}" />
25+ <input type="hidden" name="q" value="{{ q }}" />
25− <input type="hidden" name="format" value="csv" />
26+ <input type="hidden" name="format" value="csv" />
26− <input type="submit" value="download results in csv" />
27+ <input type="submit" value="download results in csv" />
27 </div>
28 </div>
28− </form>
29+ </form>
29− <form method="post" action="/">
30+ <form method="post" action="/">
30 <div class="">
31 <div class="">
31− <input type="hidden" name="q" value="{{ q }}" />
32+ <input type="hidden" name="q" value="{{ q }}" />
32− <input type="hidden" name="format" value="json" />
33+ <input type="hidden" name="format" value="json" />
33− <input type="submit" value="download results in json" />
34+ <input type="submit" value="download results in json" />
34 </div>
35 </div>
35− </form>
36+ </form>
37+ </div>
36</div>
38</div>
37{% endblock %}
39{% endblock %}
searx/templates/search.html+3−5
@@ -1,9 +1,7 @@
1<form method="post" action="/" id="search_form">
1<form method="post" action="/" id="search_form">
2−<div id="search_wrapper">
2+ <div id="search_wrapper">
3 <input type="text" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/>
3 <input type="text" id="q" class="q" name="q" tabindex="1" autocomplete="off" {% if q %}value="{{ q }}"{% endif %}/>
4 <input type="submit" value="" id="search_submit" />
4 <input type="submit" value="" id="search_submit" />
5−</div>
5+ </div>
6− <div>
7− {% include 'categories.html' %}
6+ {% include 'categories.html' %}
8− </div>
9</form>
7</form>