diff --git a/searx/static/themes/oscar/css/logicodev.min.css.map b/searx/static/themes/oscar/css/logicodev.min.css.map index 52840b8ad..7cec798b3 100644 Binary files a/searx/static/themes/oscar/css/logicodev.min.css.map and b/searx/static/themes/oscar/css/logicodev.min.css.map differ diff --git a/searx/static/themes/simple/css/searxng-rtl.css b/searx/static/themes/simple/css/searxng-rtl.css index 77483b017..d5c78a6ac 100644 --- a/searx/static/themes/simple/css/searxng-rtl.css +++ b/searx/static/themes/simple/css/searxng-rtl.css @@ -729,91 +729,6 @@ template { display: none; } -@font-face { - font-family: "ion"; - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45"); - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight: normal; - font-style: normal; -} -.ion-icon { - display: inline-block; - line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; - text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.ion-icon:before { - font-family: "ion"; -} -.ion-navicon-round:before { - content: "\f101"; -} -.ion-search:before { - content: "\f102"; -} -.ion-play:before { - content: "\f103"; -} -.ion-link:before { - content: "\f104"; -} -.ion-chevron-up:before { - content: "\f105"; -} -.ion-chevron-left:before { - content: "\f106"; -} -.ion-chevron-right:before { - content: "\f107"; -} -.ion-arrow-down-a:before { - content: "\f108"; -} -.ion-arrow-up-a:before { - content: "\f109"; -} -.ion-arrow-swap:before { - content: "\f10a"; -} -.ion-arrow-dropdown:before { - content: "\f10b"; -} -.ion-globe:before { - content: "\f10c"; -} -.ion-time:before { - content: "\f10d"; -} -.ion-location:before { - content: "\f10e"; -} -.ion-warning:before { - content: "\f10f"; -} -.ion-error:before { - content: "\f110"; -} -.ion-film-outline:before { - content: "\f111"; -} -.ion-music-note:before { - content: "\f112"; -} -.ion-more-vertical:before { - content: "\f113"; -} -.ion-magnet:before { - content: "\f114"; -} -.ion-close:before { - content: "\f115"; -} /* * SearXNG, A privacy-respecting, hackable metasearch engine * @@ -1431,7 +1346,8 @@ div.selectable_url pre { } .dialog-error { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; @@ -1442,13 +1358,6 @@ div.selectable_url pre { background: var(--color-error-background); border-color: var(--color-error); } -.dialog-error::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-error .close { float: right; position: relative; @@ -1477,12 +1386,10 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-error:before { - content: "\f110"; -} .dialog-warning { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; @@ -1493,13 +1400,6 @@ div.selectable_url pre { background: var(--color-warning-background); border-color: var(--color-warning); } -.dialog-warning::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-warning .close { float: right; position: relative; @@ -1528,12 +1428,10 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-warning:before { - content: "\f10f"; -} .dialog-modal { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; @@ -1548,13 +1446,6 @@ div.selectable_url pre { transform: translate(-50%, -50%); z-index: 10000000; } -.dialog-modal::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-modal .close { float: right; position: relative; @@ -2367,6 +2258,39 @@ article.result-images .detail { grid-template-columns: 3rem 1fr; grid-template-areas: "logo search" "spacer categories"; } +.category { + display: inline-block; + position: relative; + margin-right: 1rem; + padding: 0; +} +.category input { + display: none; +} +.category label { + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.category label svg { + padding-right: 0.2rem; +} +.category label div.category_name { + margin: auto 0; +} +.category input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} #search_logo { grid-area: logo; display: flex; @@ -2422,7 +2346,7 @@ article.result-images .detail { border-collapse: separate; box-sizing: border-box; margin: 0; - padding: 8px; + padding: 10px; background: none repeat scroll 0 0 var(--color-search-background); border: 1px solid var(--color-search-border); border-radius: 0; @@ -2487,7 +2411,6 @@ article.result-images .detail { html.touch #main_index #categories, html.touch #main_results #categories { width: 100%; - margin: 0; text-align: left; overflow-x: scroll; overflow-y: hidden; @@ -2536,9 +2459,14 @@ article.result-images .detail { .category { display: block; width: 100%; + margin: 0; } .category label { - padding: 10px !important; + padding: 0.8rem !important; + margin: 0 !important; + } + .category label svg { + display: none; } } @media screen and (max-width: 20rem) { @@ -2550,7 +2478,6 @@ article.result-images .detail { } } #categories { - margin: 0 10px 0 0; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -2562,52 +2489,30 @@ article.result-images .detail { width: 0; height: 0; } -.category { - display: inline-block; - position: relative; - margin: 0 3px; - padding: 0; -} -.category input { - display: none; -} -.category label { - cursor: pointer; - padding: 0.3rem 0.75rem 0.5rem 0.75rem; - margin: 0; - display: block; - text-transform: capitalize; - font-size: 0.9em; - border-bottom: 2px solid transparent; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.category input[type="checkbox"]:checked + label { - color: var(--color-categories-item-selected-font); - border-bottom: 2px solid var(--color-categories-item-border-selected); -} #categories_container { position: relative; } -.ion-icon-big { +.ion-icon { display: inline-block; + vertical-align: bottom; line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-size: 149%; } -.ion-icon-big:before { - font-family: "ion"; +.ion-icon-small { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; +} +.ion-icon-big { + width: 1.5rem; + height: 1.5rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; } html { font-family: sans-serif; @@ -3036,7 +2941,7 @@ article[data-vim-selected].category-social { #linkto_preferences { position: absolute; right: 10px; - top: 2rem; + top: 2.2rem; padding: 0; border: 0; display: block; diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css b/searx/static/themes/simple/css/searxng-rtl.min.css index e93db0933..ba10451b4 100644 Binary files a/searx/static/themes/simple/css/searxng-rtl.min.css and b/searx/static/themes/simple/css/searxng-rtl.min.css differ diff --git a/searx/static/themes/simple/css/searxng-rtl.min.css.map b/searx/static/themes/simple/css/searxng-rtl.min.css.map index fe208f045..8d7e4b1db 100644 Binary files a/searx/static/themes/simple/css/searxng-rtl.min.css.map and b/searx/static/themes/simple/css/searxng-rtl.min.css.map differ diff --git a/searx/static/themes/simple/css/searxng.css b/searx/static/themes/simple/css/searxng.css index 6313dc79f..4f5409b7c 100644 --- a/searx/static/themes/simple/css/searxng.css +++ b/searx/static/themes/simple/css/searxng.css @@ -729,91 +729,6 @@ template { display: none; } -@font-face { - font-family: "ion"; - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45"); - src: url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight: normal; - font-style: normal; -} -.ion-icon { - display: inline-block; - line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; - text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.ion-icon:before { - font-family: "ion"; -} -.ion-navicon-round:before { - content: "\f101"; -} -.ion-search:before { - content: "\f102"; -} -.ion-play:before { - content: "\f103"; -} -.ion-link:before { - content: "\f104"; -} -.ion-chevron-up:before { - content: "\f105"; -} -.ion-chevron-left:before { - content: "\f106"; -} -.ion-chevron-right:before { - content: "\f107"; -} -.ion-arrow-down-a:before { - content: "\f108"; -} -.ion-arrow-up-a:before { - content: "\f109"; -} -.ion-arrow-swap:before { - content: "\f10a"; -} -.ion-arrow-dropdown:before { - content: "\f10b"; -} -.ion-globe:before { - content: "\f10c"; -} -.ion-time:before { - content: "\f10d"; -} -.ion-location:before { - content: "\f10e"; -} -.ion-warning:before { - content: "\f10f"; -} -.ion-error:before { - content: "\f110"; -} -.ion-film-outline:before { - content: "\f111"; -} -.ion-music-note:before { - content: "\f112"; -} -.ion-more-vertical:before { - content: "\f113"; -} -.ion-magnet:before { - content: "\f114"; -} -.ion-close:before { - content: "\f115"; -} /* * SearXNG, A privacy-respecting, hackable metasearch engine * @@ -1431,7 +1346,8 @@ div.selectable_url pre { } .dialog-error { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; @@ -1442,13 +1358,6 @@ div.selectable_url pre { background: var(--color-error-background); border-color: var(--color-error); } -.dialog-error::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-error .close { float: right; position: relative; @@ -1477,12 +1386,10 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-error:before { - content: "\f110"; -} .dialog-warning { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; @@ -1493,13 +1400,6 @@ div.selectable_url pre { background: var(--color-warning-background); border-color: var(--color-warning); } -.dialog-warning::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-warning .close { float: right; position: relative; @@ -1528,12 +1428,10 @@ div.selectable_url pre { margin-top: 0.3em; margin-bottom: 0.3em; } -.dialog-warning:before { - content: "\f10f"; -} .dialog-modal { position: relative; - padding: 1em 1em 1em 2.7em; + display: flex; + padding: 1rem; margin: 0 0 1em 0; border: 1px solid var(--color-toolkit-dialog-border); text-align: left; @@ -1548,13 +1446,6 @@ div.selectable_url pre { transform: translate(-50%, -50%); z-index: 10000000; } -.dialog-modal::before { - position: absolute; - top: 0.5em; - left: 0.5em; - font-family: "ion"; - font-size: 1.5em; -} .dialog-modal .close { float: right; position: relative; @@ -2367,6 +2258,39 @@ article.result-images .detail { grid-template-columns: 3rem 1fr; grid-template-areas: "logo search" "spacer categories"; } +.category { + display: inline-block; + position: relative; + margin-right: 1rem; + padding: 0; +} +.category input { + display: none; +} +.category label { + cursor: pointer; + padding: 0.2rem 0; + display: inline-flex; + text-transform: capitalize; + font-size: 0.9em; + border-bottom: 2px solid transparent; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.category label svg { + padding-right: 0.2rem; +} +.category label div.category_name { + margin: auto 0; +} +.category input[type="checkbox"]:checked + label { + color: var(--color-categories-item-selected-font); + border-bottom: 2px solid var(--color-categories-item-border-selected); +} #search_logo { grid-area: logo; display: flex; @@ -2422,7 +2346,7 @@ article.result-images .detail { border-collapse: separate; box-sizing: border-box; margin: 0; - padding: 8px; + padding: 10px; background: none repeat scroll 0 0 var(--color-search-background); border: 1px solid var(--color-search-border); border-radius: 0; @@ -2487,7 +2411,6 @@ article.result-images .detail { html.touch #main_index #categories, html.touch #main_results #categories { width: 100%; - margin: 0; text-align: left; overflow-x: scroll; overflow-y: hidden; @@ -2536,9 +2459,14 @@ article.result-images .detail { .category { display: block; width: 100%; + margin: 0; } .category label { - padding: 10px !important; + padding: 0.8rem !important; + margin: 0 !important; + } + .category label svg { + display: none; } } @media screen and (max-width: 20rem) { @@ -2550,7 +2478,6 @@ article.result-images .detail { } } #categories { - margin: 0 10px 0 0; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; @@ -2562,52 +2489,30 @@ article.result-images .detail { width: 0; height: 0; } -.category { - display: inline-block; - position: relative; - margin: 0 3px; - padding: 0; -} -.category input { - display: none; -} -.category label { - cursor: pointer; - padding: 0.3rem 0.75rem 0.5rem 0.75rem; - margin: 0; - display: block; - text-transform: capitalize; - font-size: 0.9em; - border-bottom: 2px solid transparent; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.category input[type="checkbox"]:checked + label { - color: var(--color-categories-item-selected-font); - border-bottom: 2px solid var(--color-categories-item-border-selected); -} #categories_container { position: relative; } -.ion-icon-big { +.ion-icon { display: inline-block; + vertical-align: bottom; line-height: 1; - font-weight: normal; - font-style: normal; - speak: none; text-decoration: inherit; - text-transform: none; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-size: 149%; } -.ion-icon-big:before { - font-family: "ion"; +.ion-icon-small { + width: 1rem; + height: 1rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; +} +.ion-icon-big { + width: 1.5rem; + height: 1.5rem; + display: inline-block; + vertical-align: bottom; + line-height: 1; + text-decoration: inherit; } html { font-family: sans-serif; @@ -3036,7 +2941,7 @@ article[data-vim-selected].category-social { #linkto_preferences { position: absolute; right: 10px; - top: 2rem; + top: 2.2rem; padding: 0; border: 0; display: block; diff --git a/searx/static/themes/simple/css/searxng.min.css b/searx/static/themes/simple/css/searxng.min.css index 8e88a67be..920c0c41b 100644 Binary files a/searx/static/themes/simple/css/searxng.min.css and b/searx/static/themes/simple/css/searxng.min.css differ diff --git a/searx/static/themes/simple/css/searxng.min.css.map b/searx/static/themes/simple/css/searxng.min.css.map index eb8019d68..ef2245b1b 100644 Binary files a/searx/static/themes/simple/css/searxng.min.css.map and b/searx/static/themes/simple/css/searxng.min.css.map differ diff --git a/searx/static/themes/simple/fonts/ion.css b/searx/static/themes/simple/fonts/ion.css deleted file mode 100644 index 100524941..000000000 --- a/searx/static/themes/simple/fonts/ion.css +++ /dev/null @@ -1,139 +0,0 @@ -/* Generated by grunt-webfont */ - - - -@font-face { - font-family:"ion"; - src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45"); - src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"), - url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"), - url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"), - url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"), - url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg"); - font-weight:normal; - font-style:normal; -} - -.ion-icon { - - font-family:"ion"; - - display:inline-block; - line-height:1; - font-weight:normal; - font-style:normal; - speak:none; - text-decoration:inherit; - text-transform:none; - text-rendering:auto; - -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale; -} - - -/* Icons */ - - -.ion-navicon-round:before { - content:"\f101"; -} - - -.ion-search:before { - content:"\f102"; -} - - -.ion-play:before { - content:"\f103"; -} - - -.ion-link:before { - content:"\f104"; -} - - -.ion-chevron-up:before { - content:"\f105"; -} - - -.ion-chevron-left:before { - content:"\f106"; -} - - -.ion-chevron-right:before { - content:"\f107"; -} - - -.ion-arrow-down-a:before { - content:"\f108"; -} - - -.ion-arrow-up-a:before { - content:"\f109"; -} - - -.ion-arrow-swap:before { - content:"\f10a"; -} - - -.ion-arrow-dropdown:before { - content:"\f10b"; -} - - -.ion-globe:before { - content:"\f10c"; -} - - -.ion-time:before { - content:"\f10d"; -} - - -.ion-location:before { - content:"\f10e"; -} - - -.ion-warning:before { - content:"\f10f"; -} - - -.ion-error:before { - content:"\f110"; -} - - -.ion-film-outline:before { - content:"\f111"; -} - - -.ion-music-note:before { - content:"\f112"; -} - - -.ion-more-vertical:before { - content:"\f113"; -} - - -.ion-magnet:before { - content:"\f114"; -} - - -.ion-close:before { - content:"\f115"; -} diff --git a/searx/static/themes/simple/fonts/ion.html b/searx/static/themes/simple/fonts/ion.html deleted file mode 100644 index 0a7b49c60..000000000 --- a/searx/static/themes/simple/fonts/ion.html +++ /dev/null @@ -1,268 +0,0 @@ - - -
- -<i class="ion-icon ion-name"></i>
-
-
-
-
-
-
-
diff --git a/searx/static/themes/simple/fonts/ion.svg b/searx/static/themes/simple/fonts/ion.svg
deleted file mode 100644
index 01c2ce025..000000000
Binary files a/searx/static/themes/simple/fonts/ion.svg and /dev/null differ
diff --git a/searx/static/themes/simple/fonts/ion.ttf b/searx/static/themes/simple/fonts/ion.ttf
deleted file mode 100644
index 78264a571..000000000
Binary files a/searx/static/themes/simple/fonts/ion.ttf and /dev/null differ
diff --git a/searx/static/themes/simple/fonts/ion.woff b/searx/static/themes/simple/fonts/ion.woff
deleted file mode 100644
index 84dd55888..000000000
Binary files a/searx/static/themes/simple/fonts/ion.woff and /dev/null differ
diff --git a/searx/static/themes/simple/fonts/ion.woff2 b/searx/static/themes/simple/fonts/ion.woff2
deleted file mode 100644
index 1ab664a67..000000000
Binary files a/searx/static/themes/simple/fonts/ion.woff2 and /dev/null differ
diff --git a/searx/static/themes/simple/gruntfile.js b/searx/static/themes/simple/gruntfile.js
index f10d00cf3..43f61c0d2 100644
--- a/searx/static/themes/simple/gruntfile.js
+++ b/searx/static/themes/simple/gruntfile.js
@@ -8,8 +8,8 @@ module.exports = function(grunt) {
pkg: grunt.file.readJSON('package.json'),
watch: {
scripts: {
- files: ['src/**'],
- tasks: ['eslint', 'copy', 'concat', 'uglify', 'htmlmin', 'less:development', 'less:production']
+ files: ['gruntfile.js', 'src/**'],
+ tasks: ['eslint', 'copy', 'concat', 'svg2jinja', 'uglify', 'htmlmin', 'less:development', 'less:production']
}
},
eslint: {
@@ -106,70 +106,6 @@ module.exports = function(grunt) {
}
}
},
- webfont: {
- icons: {
- // src: 'node_modules/ionicons-npm/src/*.svg',
- src: [
- 'node_modules/ionicons-npm/src/navicon-round.svg',
- 'node_modules/ionicons-npm/src/search.svg',
- 'node_modules/ionicons-npm/src/play.svg',
- 'node_modules/ionicons-npm/src/link.svg',
- 'node_modules/ionicons-npm/src/chevron-up.svg',
- 'node_modules/ionicons-npm/src/chevron-left.svg',
- 'node_modules/ionicons-npm/src/chevron-right.svg',
- 'node_modules/ionicons-npm/src/arrow-down-a.svg',
- 'node_modules/ionicons-npm/src/arrow-up-a.svg',
- 'node_modules/ionicons-npm/src/arrow-swap.svg',
- 'node_modules/ionicons-npm/src/telephone.svg',
- 'node_modules/ionicons-npm/src/android-arrow-dropdown.svg',
- 'node_modules/ionicons-npm/src/android-globe.svg',
- 'node_modules/ionicons-npm/src/android-time.svg',
- 'node_modules/ionicons-npm/src/location.svg',
- 'node_modules/ionicons-npm/src/alert-circled.svg',
- 'node_modules/ionicons-npm/src/android-alert.svg',
- 'node_modules/ionicons-npm/src/ios-film-outline.svg',
- 'node_modules/ionicons-npm/src/music-note.svg',
- 'node_modules/ionicons-npm/src/ion-close-round.svg',
- 'node_modules/ionicons-npm/src/android-more-vertical.svg',
- 'src/fonts/magnet.svg',
- 'node_modules/ionicons-npm/src/android-close.svg',
- ],
- dest: 'fonts',
- destLess: 'src/generated',
- options: {
- font: 'ion',
- hashes : true,
- syntax: 'bem',
- styles : 'font,icon',
- types : 'eot,woff2,woff,ttf,svg',
- order : 'eot,woff2,woff,ttf,svg',
- stylesheets : ['css', 'less'],
- relativeFontPath : '../fonts/',
- autoHint : false,
- normalize : false,
- // ligatures : true,
- optimize : true,
- // fontHeight : 400,
- rename : function(name) {
- basename = path.basename(name);
- if (basename === 'android-alert.svg') {
- return 'error.svg';
- }
- if (basename === 'alert-circled.svg') {
- return 'warning.svg';
- }
- if (basename === 'ion-close-round.svg') {
- return 'close.svg';
- }
- return basename.replace(/(ios|md|android)-/i, '');
- },
- templateOptions: {
- baseClass: 'ion-icon',
- classPrefix: 'ion-'
- }
- }
- }
- },
less: {
development: {
options: {
@@ -197,6 +133,89 @@ module.exports = function(grunt) {
}
},
},
+ svg2jinja: {
+ all: {
+ src: {
+ 'warning': 'node_modules/ionicons/dist/svg/alert-outline.svg',
+ 'close': 'node_modules/ionicons/dist/svg/close-outline.svg',
+ 'chevron-up-outline': 'node_modules/ionicons/dist/svg/chevron-up-outline.svg',
+ 'chevron-right': 'node_modules/ionicons/dist/svg/chevron-forward-outline.svg',
+ 'chevron-left': 'node_modules/ionicons/dist/svg/chevron-back-outline.svg',
+ 'menu-outline': 'node_modules/ionicons/dist/svg/menu-outline.svg',
+ 'ellipsis-vertical-outline': 'node_modules/ionicons/dist/svg/ellipsis-vertical-outline.svg',
+ 'magnet-outline': 'node_modules/ionicons/dist/svg/magnet-outline.svg',
+ 'globe-outline': 'node_modules/ionicons/dist/svg/globe-outline.svg',
+ 'search-outline': 'node_modules/ionicons/dist/svg/search-outline.svg',
+ 'image-outline': 'node_modules/ionicons/dist/svg/image-outline.svg',
+ 'play-outline': 'node_modules/ionicons/dist/svg/play-outline.svg',
+ 'newspaper-outline': 'node_modules/ionicons/dist/svg/newspaper-outline.svg',
+ 'location-outline': 'node_modules/ionicons/dist/svg/location-outline.svg',
+ 'musical-notes-outline': 'node_modules/ionicons/dist/svg/musical-notes-outline.svg',
+ 'layers-outline': 'node_modules/ionicons/dist/svg/layers-outline.svg',
+ 'school-outline': 'node_modules/ionicons/dist/svg/school-outline.svg',
+ 'file-tray-full-outline': 'node_modules/ionicons/dist/svg/file-tray-full-outline.svg',
+ 'people-outline': 'node_modules/ionicons/dist/svg/people-outline.svg',
+ },
+ dest: '../../../templates/simple/icons.html',
+ },
+ },
+ });
+
+
+ grunt.registerMultiTask('svg2jinja', 'Create Jinja2 macro', function() {
+ const ejs = require('ejs'), svgo = require('svgo');
+ const icons = {}
+ for(const iconName in this.data.src) {
+ const svgFileName = this.data.src[iconName];
+ try {
+ const svgContent = grunt.file.read(svgFileName, { encoding: 'utf8' })
+ const svgoResult = svgo.optimize(svgContent, {
+ path: svgFileName,
+ multipass: true,
+ plugins: [
+ {
+ name: "removeTitle",
+ },
+ {
+ name: "removeXMLNS",
+ },
+ {
+ name: "addAttributesToSVGElement",
+ params: {
+ attributes: [
+ { "aria-hidden": "true" }
+ ]
+ }
+ }
+ ]
+ });
+ icons[iconName] = svgoResult.data.replace("'", "\\'");
+ } catch (err) {
+ grunt.log.error(err);
+ }
+ }
+ const template = `{# this file was generated by searx/static/themes/simple/gruntfile.js #}
+{%- set icons = {
+<% for (const iconName in icons) { %> '<%- iconName %>':'<%- icons[iconName] %>',
+<% } %>
+}
+-%}
+
+{% macro icon(action, alt) -%}
+ {{ icons[action] | replace("ionicon", "ion-icon") | safe }}
+{%- endmacro %}
+
+{% macro icon_small(action) -%}
+ {{ icons[action] | replace("ionicon", "ion-icon-small") | safe }}
+{%- endmacro %}
+
+{% macro icon_big(action, alt) -%}
+ {{ icons[action] | replace("ionicon", "ion-icon-big") | safe }}
+{%- endmacro %}
+`;
+ const result = ejs.render(template, { icons });
+ grunt.file.write(this.data.dest, result, { encoding: 'utf8' });
+ grunt.log.ok(this.data.dest + " created");
});
grunt.loadNpmTasks('grunt-contrib-watch');
@@ -207,7 +226,6 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-cssmin');
- grunt.loadNpmTasks('grunt-webfont');
grunt.loadNpmTasks('grunt-stylelint');
grunt.loadNpmTasks('grunt-eslint');
@@ -218,6 +236,7 @@ module.exports = function(grunt) {
'stylelint',
'copy',
'concat',
+ 'svg2jinja',
'uglify',
'htmlmin',
'less:development',
diff --git a/searx/static/themes/simple/package.json b/searx/static/themes/simple/package.json
index 4ef608db7..3676672bd 100644
--- a/searx/static/themes/simple/package.json
+++ b/searx/static/themes/simple/package.json
@@ -1,9 +1,9 @@
{
"devDependencies": {
- "grunt-cli": "^1.4.3",
+ "eslint": "^8.0.1",
"grunt": "~1.4.1",
- "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-concat": "~2.0.0",
+ "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-cssmin": "^4.0.0",
"grunt-contrib-jshint": "~3.1.1",
"grunt-contrib-less": "~3.0.0",
@@ -11,15 +11,15 @@
"grunt-xmlmin": "~0.1.8",
"grunt-contrib-htmlmin": "~3.1.0",
"grunt-contrib-watch": "~1.1.0",
- "grunt-stylelint": "^0.16.0",
"grunt-eslint": "^23.0.0",
- "grunt-webfont": "^1.7.2",
- "ionicons-npm": "^2.0.1",
- "eslint": "^8.0.1",
+ "grunt-stylelint": "^0.16.0",
+ "ionicons": "^5.5.4",
"less": "^4.1.1",
"less-plugin-clean-css": "^1.5.1",
"stylelint": "^13.13.1",
- "stylelint-config-standard": "^22.0.0"
+ "stylelint-config-standard": "^22.0.0",
+ "ejs": "^3.1.6",
+ "svgo": "^2.8.0"
},
"dependencies": {
"autocomplete-js": "2.7.1",
diff --git a/searx/static/themes/simple/src/fonts/magnet.svg b/searx/static/themes/simple/src/fonts/magnet.svg
deleted file mode 100644
index 1a1defdb8..000000000
Binary files a/searx/static/themes/simple/src/fonts/magnet.svg and /dev/null differ
diff --git a/searx/static/themes/simple/src/generated/ion.less b/searx/static/themes/simple/src/generated/ion.less
deleted file mode 100644
index 67158206f..000000000
--- a/searx/static/themes/simple/src/generated/ion.less
+++ /dev/null
@@ -1,181 +0,0 @@
-// Generated by grunt-webfont
-
-
-
-@font-face {
- font-family:"ion";
- src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45");
- src:url("../fonts/ion.eot?31a1b735188db616a2142d17947e8a45#iefix") format("embedded-opentype"),
- url("../fonts/ion.woff2?31a1b735188db616a2142d17947e8a45") format("woff2"),
- url("../fonts/ion.woff?31a1b735188db616a2142d17947e8a45") format("woff"),
- url("../fonts/ion.ttf?31a1b735188db616a2142d17947e8a45") format("truetype"),
- url("../fonts/ion.svg?31a1b735188db616a2142d17947e8a45#ion") format("svg");
- font-weight:normal;
- font-style:normal;
-}
-
-.ion-icon {
- &:before {
- font-family:"ion";
- }
- display:inline-block;
- line-height:1;
- font-weight:normal;
- font-style:normal;
- speak:none;
- text-decoration:inherit;
- text-transform:none;
- text-rendering:auto;
- -webkit-font-smoothing:antialiased;
- -moz-osx-font-smoothing:grayscale;
-}
-
-
-// Icons
-
-.ion-navicon-round {
- &:before {
- content:"\f101";
- }
-}
-
-
-.ion-search {
- &:before {
- content:"\f102";
- }
-}
-
-
-.ion-play {
- &:before {
- content:"\f103";
- }
-}
-
-
-.ion-link {
- &:before {
- content:"\f104";
- }
-}
-
-
-.ion-chevron-up {
- &:before {
- content:"\f105";
- }
-}
-
-
-.ion-chevron-left {
- &:before {
- content:"\f106";
- }
-}
-
-
-.ion-chevron-right {
- &:before {
- content:"\f107";
- }
-}
-
-
-.ion-arrow-down-a {
- &:before {
- content:"\f108";
- }
-}
-
-
-.ion-arrow-up-a {
- &:before {
- content:"\f109";
- }
-}
-
-
-.ion-arrow-swap {
- &:before {
- content:"\f10a";
- }
-}
-
-
-.ion-arrow-dropdown {
- &:before {
- content:"\f10b";
- }
-}
-
-
-.ion-globe {
- &:before {
- content:"\f10c";
- }
-}
-
-
-.ion-time {
- &:before {
- content:"\f10d";
- }
-}
-
-
-.ion-location {
- &:before {
- content:"\f10e";
- }
-}
-
-
-.ion-warning {
- &:before {
- content:"\f10f";
- }
-}
-
-
-.ion-error {
- &:before {
- content:"\f110";
- }
-}
-
-
-.ion-film-outline {
- &:before {
- content:"\f111";
- }
-}
-
-
-.ion-music-note {
- &:before {
- content:"\f112";
- }
-}
-
-
-.ion-more-vertical {
- &:before {
- content:"\f113";
- }
-}
-
-
-.ion-magnet {
- &:before {
- content:"\f114";
- }
-}
-
-
-.ion-close {
- &:before {
- content:"\f115";
- }
-}
-
diff --git a/searx/static/themes/simple/src/less/search.less b/searx/static/themes/simple/src/less/search.less
index b4818ba5d..99aa02a34 100644
--- a/searx/static/themes/simple/src/less/search.less
+++ b/searx/static/themes/simple/src/less/search.less
@@ -16,6 +16,40 @@
"spacer categories";
}
+.category {
+ display: inline-block;
+ position: relative;
+ margin-right: 1rem;
+ padding: 0;
+
+ input {
+ display: none;
+ }
+
+ label {
+ svg {
+ padding-right: 0.2rem;
+ }
+
+ cursor: pointer;
+ padding: 0.2rem 0;
+ display: inline-flex;
+ text-transform: capitalize;
+ font-size: 0.9em;
+ border-bottom: 2px solid transparent;
+ .disable-user-select;
+
+ div.category_name {
+ margin: auto 0;
+ }
+ }
+
+ input[type="checkbox"]:checked + label {
+ color: var(--color-categories-item-selected-font);
+ border-bottom: 2px solid var(--color-categories-item-border-selected);
+ }
+}
+
#search_logo {
grid-area: logo;
display: flex;
@@ -79,7 +113,7 @@
border-collapse: separate;
box-sizing: border-box;
margin: 0;
- padding: 8px;
+ padding: 10px;
background: none repeat scroll 0 0 var(--color-search-background);
border: 1px solid var(--color-search-border);
border-radius: 0;
@@ -156,7 +190,6 @@
#categories {
width: 100%;
- margin: 0;
text-align: left;
overflow-x: scroll;
overflow-y: hidden;
@@ -188,7 +221,7 @@
}
.search_box {
- // hack, should bew 100% ?
+ // hack, should be 100% ?
width: 99%;
margin: 0.1em;
padding: 0 0.1em 0 0;
@@ -219,9 +252,15 @@
.category {
display: block;
width: 100%;
+ margin: 0;
label {
- padding: 10px !important;
+ padding: 0.8rem !important;
+ margin: 0 !important;
+
+ svg {
+ display: none;
+ }
}
}
}
@@ -239,7 +278,6 @@
}
#categories {
- margin: 0 10px 0 0;
.disable-user-select;
&::-webkit-scrollbar {
@@ -248,33 +286,6 @@
}
}
-.category {
- display: inline-block;
- position: relative;
- margin: 0 3px;
- padding: 0;
-
- input {
- display: none;
- }
-
- label {
- cursor: pointer;
- padding: 0.3rem 0.75rem 0.5rem 0.75rem;
- margin: 0;
- display: block;
- text-transform: capitalize;
- font-size: 0.9em;
- border-bottom: 2px solid transparent;
- .disable-user-select;
- }
-
- input[type="checkbox"]:checked + label {
- color: var(--color-categories-item-selected-font);
- border-bottom: 2px solid var(--color-categories-item-border-selected);
- }
-}
-
#categories_container {
position: relative;
}
diff --git a/searx/static/themes/simple/src/less/style.less b/searx/static/themes/simple/src/less/style.less
index b93317fa3..a26c57db1 100644
--- a/searx/static/themes/simple/src/less/style.less
+++ b/searx/static/themes/simple/src/less/style.less
@@ -10,7 +10,6 @@
@import "../../__common__/less/stats.less";
@import "../../__common__/less/result_templates.less";
@import (inline) "../../node_modules/normalize.css/normalize.css";
-@import "../generated/ion.less";
@import "definitions.less";
@import "mixins.less";
@import "code.less";
@@ -28,10 +27,23 @@
@import "search.less";
// ion-icon
-.ion-icon-big {
- .ion-icon;
+.ion-icon {
+ display: inline-block;
+ vertical-align: bottom;
+ line-height: 1;
+ text-decoration: inherit;
+}
- font-size: 149%;
+.ion-icon-small {
+ width: 1rem;
+ height: 1rem;
+ .ion-icon;
+}
+
+.ion-icon-big {
+ width: 1.5rem;
+ height: 1.5rem;
+ .ion-icon;
}
// Main LESS-Code
@@ -530,7 +542,7 @@ article[data-vim-selected].category-social {
#linkto_preferences {
position: absolute;
right: 10px;
- top: 2rem;
+ top: 2.2rem;
padding: 0;
border: 0;
display: block;
diff --git a/searx/static/themes/simple/src/less/toolkit.less b/searx/static/themes/simple/src/less/toolkit.less
index f11275576..195cd9af4 100644
--- a/searx/static/themes/simple/src/less/toolkit.less
+++ b/searx/static/themes/simple/src/less/toolkit.less
@@ -121,20 +121,13 @@ div.selectable_url {
// dialog
.dialog() {
position: relative;
- padding: 1em 1em 1em 2.7em;
+ display: flex;
+ padding: 1rem;
margin: 0 0 1em 0;
border: 1px solid var(--color-toolkit-dialog-border);
text-align: left;
.rounded-corners;
- &::before {
- position: absolute;
- top: 0.5em;
- left: 0.5em;
- font-family: "ion"; // stylelint-disable font-family-no-missing-generic-family-keyword
- font-size: 1.5em;
- }
-
.close {
float: right;
position: relative;
@@ -177,7 +170,6 @@ div.selectable_url {
color: var(--color-error);
background: var(--color-error-background);
border-color: var(--color-error);
- .ion-error();
}
.dialog-warning {
@@ -186,7 +178,6 @@ div.selectable_url {
color: var(--color-warning);
background: var(--color-warning-background);
border-color: var(--color-warning);
- .ion-warning();
}
.dialog-modal {
diff --git a/searx/templates/simple/categories.html b/searx/templates/simple/categories.html
index 0c121eaed..71fdca90a 100644
--- a/searx/templates/simple/categories.html
+++ b/searx/templates/simple/categories.html
@@ -1,7 +1,25 @@
+{% from 'simple/icons.html' import icon_big %}
+{%- set category_icons = {
+ 'general': 'search-outline',
+ 'images': 'image-outline',
+ 'videos': 'play-outline',
+ 'news': 'newspaper-outline',
+ 'map': 'location-outline',
+ 'music': 'musical-notes-outline',
+ 'it': 'layers-outline',
+ 'science': 'school-outline',
+ 'files': 'file-tray-full-outline',
+ 'social media': 'people-outline',
+} -%}
{{ _('Error!') }} {{ _('Engines cannot retrieve results.') }}
- {% for engine_name, error_type in unresponsive_engines %} -{{- '' -}} - {{- engine_name }} ( + {{ icon_big('warning') }} +
{{ _('Error!') }} {{ _('Engines cannot retrieve results.') }}
+ {% for engine_name, error_type in unresponsive_engines %} +{{- '' -}} + {{- engine_name }} ( - {{- error_type -}} + {{- error_type -}} ){{- '' -}} -
- {%- endfor %} - -{{ _('Please, try again later or find another SearXNG instance.') }} ({{ _('Public instances') }})
+ + {%- endfor %} +{{ _('Please, try again later or find another SearXNG instance.') }} ({{ _('Public instances') }})
+wikidata.org/wiki/{{about.wikidata_id}}
{%- endif -%} - {%- if search_engine.enable_http %}{{ icon('exclamation-sign', 'No HTTPS') }}{{ _('No HTTPS')}}
{% endif -%} + {%- if search_engine.enable_http %}{{ icon_big('exclamation-sign', 'No HTTPS') }}{{ _('No HTTPS')}}
{% endif -%} {%- if reliabilities.get(search_engine.name, {}).errors or reliabilities.get(search_engine.name, {}).checker -%} {{ _('View error logs and submit a bug report') }} @@ -74,7 +75,7 @@• {{ result_link(result.magnetlink, icon('magnet') + _('magnet link'), "magnetlink") }}
{% endif %} -{% if result.torrentfile %}• {{ result_link(result.torrentfile, icon('download-alt') + _('torrent file'), "torrentfile") }}
{% endif %} +{% if result.magnetlink %}• {{ result_link(result.magnetlink, icon_big('magnet-outline') + _('magnet link'), "magnetlink") }}
{% endif %} +{% if result.torrentfile %}• {{ result_link(result.torrentfile, icon_big('download-alt') + _('torrent file'), "torrentfile") }}
{% endif %} -{% if result.seed is defined %}• {{ icon('arrow-swap') }} {{ _('Seeder') }} {{ result.seed }} • {{ _('Leecher') }} {{ result.leech }}
{% endif %} +{% if result.seed is defined %}• {{ icon_big('arrow-swap') }} {{ _('Seeder') }} {{ result.seed }} • {{ _('Leecher') }} {{ result.leech }}
{% endif %} -{%- if result.filesize %}{{ icon('floppy-disk') }} {{ _('Filesize') }}
+{%- if result.filesize %} {{ icon_big('floppy-disk') }} {{ _('Filesize') }}
{%- if result.filesize < 1024 %}{{ result.filesize }} {{ _('Bytes') }}
{%- elif result.filesize < 1024*1024 %}{{ '{0:0.2f}'.format(result.filesize/1024) }} {{ _('kiB') }}
{%- elif result.filesize < 1024*1024*1024 %}{{ '{0:0.2f}'.format(result.filesize/1024/1024) }} {{ _('MiB') }}
@@ -17,7 +17,7 @@
{{ icon('file') }} {{ _('Number of Files') }} {{ result.files }} {{ icon_big('file') }} {{ _('Number of Files') }} {{ result.files }} {{ result.content|safe }} {{ _('Error!') }} {{ _('Engines cannot retrieve results') }}: {{- engine_name }} (
-
+ {{ icon_big('warning') }}
+ {{ _('Error!') }} {{ _('Engines cannot retrieve results') }}: {{- engine_name }} (
+
{{- error_type -}}
- ){{- '' -}}
-