diff options
author | Alexandre Flament <alex@al-f.net> | 2021-03-10 15:03:18 +0100 |
---|---|---|
committer | Alexandre Flament <alex@al-f.net> | 2021-03-10 19:28:51 +0100 |
commit | c7133efb12641c55395e5b249cbc3cf44d8c8dff (patch) | |
tree | 081789575e0d287107f68087da209133286fa725 /searx/static/themes/oscar/src | |
parent | eda3b513acd2106da44e8cddae3d54a90e241958 (diff) | |
download | searxng-c7133efb12641c55395e5b249cbc3cf44d8c8dff.tar.gz searxng-c7133efb12641c55395e5b249cbc3cf44d8c8dff.zip |
[mod] oscar: move compiled files to the src directory
Diffstat (limited to 'searx/static/themes/oscar/src')
32 files changed, 1854 insertions, 0 deletions
diff --git a/searx/static/themes/oscar/src/js/01_init.js b/searx/static/themes/oscar/src/js/01_init.js new file mode 100644 index 000000000..690365c7f --- /dev/null +++ b/searx/static/themes/oscar/src/js/01_init.js @@ -0,0 +1,30 @@ +/** + * searx is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * searx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with searx. If not, see < http://www.gnu.org/licenses/ >. + * + * (C) 2019 by Alexandre Flament + */ +window.searx = (function(d) { + 'use strict'; + + // add data- properties + var script = d.currentScript || (function() { + var scripts = d.getElementsByTagName('script'); + return scripts[scripts.length - 1]; + })(); + + return { + autocompleter: script.getAttribute('data-autocompleter') === 'true', + method: script.getAttribute('data-method') + }; +})(document); diff --git a/searx/static/themes/oscar/src/js/autocompleter.js b/searx/static/themes/oscar/src/js/autocompleter.js new file mode 100644 index 000000000..26d567507 --- /dev/null +++ b/searx/static/themes/oscar/src/js/autocompleter.js @@ -0,0 +1,49 @@ +/** + * searx is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * searx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with searx. If not, see < http://www.gnu.org/licenses/ >. + * + * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> + */ + +if(searx.autocompleter) { + searx.searchResults = new Bloodhound({ + datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), + queryTokenizer: Bloodhound.tokenizers.whitespace, + remote: './autocompleter?q=%QUERY' + }); + searx.searchResults.initialize(); +} + +$(document).ready(function(){ + var original_search_value = ''; + if(searx.autocompleter) { + $("#q").on('keydown', function(e) { + if(e.which == 13) { + original_search_value = $('#q').val(); + } + }); + $('#q').typeahead(null, { + name: 'search-results', + displayKey: function(result) { + return result; + }, + source: searx.searchResults.ttAdapter() + }); + $('#q').bind('typeahead:selected', function(ev, suggestion) { + if(original_search_value) { + $('#q').val(original_search_value); + } + $("#search_form").submit(); + }); + } +}); diff --git a/searx/static/themes/oscar/src/js/element_modifiers.js b/searx/static/themes/oscar/src/js/element_modifiers.js new file mode 100644 index 000000000..a113df9a3 --- /dev/null +++ b/searx/static/themes/oscar/src/js/element_modifiers.js @@ -0,0 +1,111 @@ +/** + * searx is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * searx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with searx. If not, see < http://www.gnu.org/licenses/ >. + * + * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> + */ + +$(document).ready(function(){ + /** + * focus element if class="autofocus" and id="q" + */ + $('#q.autofocus').focus(); + + /** + * Empty search bar when click on reset button + */ + $("#clear_search").click(function () { + document.getElementById("q").value = ""; + }); + + /** + * select full content on click if class="select-all-on-click" + */ + $(".select-all-on-click").click(function () { + $(this).select(); + }); + + /** + * change text during btn-collapse click if possible + */ + $('.btn-collapse').click(function() { + var btnTextCollapsed = $(this).data('btn-text-collapsed'); + var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed'); + + if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') { + if($(this).hasClass('collapsed')) { + new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed); + } else { + new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed); + } + $(this).html(new_html); + } + }); + + /** + * change text during btn-toggle click if possible + */ + $('.btn-toggle .btn').click(function() { + var btnClass = 'btn-' + $(this).data('btn-class'); + var btnLabelDefault = $(this).data('btn-label-default'); + var btnLabelToggled = $(this).data('btn-label-toggled'); + if(btnLabelToggled !== '') { + if($(this).hasClass('btn-default')) { + new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled); + } else { + new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault); + } + $(this).html(new_html); + } + $(this).toggleClass(btnClass); + $(this).toggleClass('btn-default'); + }); + + /** + * change text during btn-toggle click if possible + */ + $('.media-loader').click(function() { + var target = $(this).data('target'); + var iframe_load = $(target + ' > iframe'); + var srctest = iframe_load.attr('src'); + if(srctest === undefined || srctest === false){ + iframe_load.attr('src', iframe_load.data('src')); + } + }); + + /** + * Select or deselect every categories on double clic + */ + $(".btn-sm").dblclick(function() { + var btnClass = 'btn-' + $(this).data('btn-class'); // primary + if($(this).hasClass('btn-default')) { + $(".btn-sm > input").attr('checked', 'checked'); + $(".btn-sm > input").prop("checked", true); + $(".btn-sm").addClass(btnClass); + $(".btn-sm").addClass('active'); + $(".btn-sm").removeClass('btn-default'); + } else { + $(".btn-sm > input").attr('checked', ''); + $(".btn-sm > input").removeAttr('checked'); + $(".btn-sm > input").checked = false; + $(".btn-sm").removeClass(btnClass); + $(".btn-sm").removeClass('active'); + $(".btn-sm").addClass('btn-default'); + } + }); + $(".nav-tabs").click(function(a) { + var tabs = $(a.target).parents("ul"); + tabs.children().attr("aria-selected", "false"); + $(a.target).parent().attr("aria-selected", "true"); + }); +}); diff --git a/searx/static/themes/oscar/src/js/infobox.js b/searx/static/themes/oscar/src/js/infobox.js new file mode 100644 index 000000000..cb7f1eec5 --- /dev/null +++ b/searx/static/themes/oscar/src/js/infobox.js @@ -0,0 +1,11 @@ +window.addEventListener('load', function() { + // Hide infobox toggle if shrunk size already fits all content. + $('.infobox').each(function() { + var infobox_body = $(this).find('.infobox_body'); + var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height(); + var max_height = infobox_body.css('max-height').replace('px', ''); + if (total_height <= max_height) { + $(this).find('.infobox_toggle').hide(); + } + }); +}); diff --git a/searx/static/themes/oscar/src/js/leaflet_map.js b/searx/static/themes/oscar/src/js/leaflet_map.js new file mode 100644 index 000000000..60bf836ce --- /dev/null +++ b/searx/static/themes/oscar/src/js/leaflet_map.js @@ -0,0 +1,162 @@ +/** + * searx is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * searx is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with searx. If not, see < http://www.gnu.org/licenses/ >. + * + * (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at> + */ + +$(document).ready(function(){ + $(".searx_overpass_request").on( "click", function( event ) { + var overpass_url = "https://overpass-api.de/api/interpreter?data="; + var query_start = overpass_url + "[out:json][timeout:25];("; + var query_end = ");out meta;"; + + var osm_id = $(this).data('osm-id'); + var osm_type = $(this).data('osm-type'); + var result_table = $(this).data('result-table'); + var result_table_loadicon = "#" + $(this).data('result-table-loadicon'); + + // tags which can be ignored + var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ]; + + if(osm_id && osm_type && result_table) { + result_table = "#" + result_table; + var query = null; + switch(osm_type) { + case 'node': + query = query_start + "node(" + osm_id + ");" + query_end; + break; + case 'way': + query = query_start + "way(" + osm_id + ");" + query_end; + break; + case 'relation': + query = query_start + "relation(" + osm_id + ");" + query_end; + break; + default: + break; + } + if(query) { + //alert(query); + var ajaxRequest = $.ajax( query ) + .done(function( html) { + if(html && html.elements && html.elements[0]) { + var element = html.elements[0]; + var newHtml = $(result_table).html(); + for (var row in element.tags) { + if(element.tags.name === null || osm_ignore_tags.indexOf(row) == -1) { + newHtml += "<tr><td>" + row + "</td><td>"; + switch(row) { + case "phone": + case "fax": + newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>"; + break; + case "email": + newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>"; + break; + case "website": + case "url": + newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>"; + break; + case "wikidata": + newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>"; + break; + case "wikipedia": + if(element.tags[row].indexOf(":") != -1) { + newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>"; + break; + } + /* jshint ignore:start */ + default: + /* jshint ignore:end */ + newHtml += element.tags[row]; + break; + } + newHtml += "</td></tr>"; + } + } + $(result_table).html(newHtml); + $(result_table).removeClass('hidden'); + $(result_table_loadicon).addClass('hidden'); + } + }) + .fail(function() { + $(result_table_loadicon).html($(result_table_loadicon).html() + "<p class=\"text-muted\">"+could_not_load+"</p>"); + }); + } + } + + // this event occour only once per element + $( this ).off( event ); + }); + + $(".searx_init_map").on( "click", function( event ) { + var leaflet_target = $(this).data('leaflet-target'); + var map_lon = $(this).data('map-lon'); + var map_lat = $(this).data('map-lat'); + var map_zoom = $(this).data('map-zoom'); + var map_boundingbox = $(this).data('map-boundingbox'); + var map_geojson = $(this).data('map-geojson'); + + if(map_boundingbox) { + southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]); + northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]); + map_bounds = L.latLngBounds(southWest, northEast); + } + + // change default imagePath + L.Icon.Default.imagePath = "./static/themes/oscar/img/map"; + + // init map + var map = L.map(leaflet_target); + + // create the tile layer with correct attribution + var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'; + var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'; + var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib}); + + var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png'; + var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'; + var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib}); + + // init map view + setTimeout(function() { + if(map_bounds) { + map.fitBounds(map_bounds, { + maxZoom:17 + }); + } else if (map_lon && map_lat) { + if(map_zoom) + map.setView(new L.LatLng(map_lat, map_lon),map_zoom); + else + map.setView(new L.LatLng(map_lat, map_lon),8); + } + }, 0); + + map.addLayer(osmMapnik); + + var baseLayers = { + "OSM Mapnik": osmMapnik/*, + "OSM Wikimedia": osmWikimedia*/ + }; + + L.control.layers(baseLayers).addTo(map); + + if(map_geojson) + L.geoJson(map_geojson).addTo(map); + /*else if(map_bounds) + L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/ + + // this event occour only once per element + $( this ).off( event ); + }); +}); diff --git a/searx/static/themes/oscar/src/js/toggleall.js b/searx/static/themes/oscar/src/js/toggleall.js new file mode 100644 index 000000000..b6c484e3e --- /dev/null +++ b/searx/static/themes/oscar/src/js/toggleall.js @@ -0,0 +1,10 @@ +$(document).ready(function(){ + $("#allow-all-engines").click(function() { + $(".onoffswitch-checkbox").each(function() { this.checked = false;}); + }); + + $("#disable-all-engines").click(function() { + $(".onoffswitch-checkbox").each(function() { this.checked = true;}); + }); +}); + diff --git a/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less b/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less new file mode 100644 index 000000000..e788b8cba --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less @@ -0,0 +1,245 @@ +@import "../logicodev/variables.less"; +@import "../logicodev/footer.less"; +@import "../logicodev/checkbox.less"; +@import "../logicodev/onoff.less"; +@import "../logicodev/results.less"; +@import "../logicodev/infobox.less"; +@import "../logicodev/search.less"; +@import "../logicodev/advanced.less"; +@import "../logicodev/cursor.less"; +@import "../logicodev/code.less"; +@import "../logicodev/preferences.less"; + +/*Global*/ +body { + background:#1d1f21 none !important; + color:#D5D8D7 !important; +} + +a { + color:#41a2ce !important; + text-decoration: none !important; +} + +a:hover { + color:#5F89AC !important; +} + +input, button, textarea, select { + border: 1px solid #282a2e !important; + background-color: #444 !important; + color: #BBB !important; +} + +input:focus, button:focus, textarea:focus, select:focus { + border: 1px solid #C5C8C6 !important; + box-shadow: initial !important; +} + +div#advanced-search-container div#categories label{ + background:none; + border: 1px solid #282a2e; +} + +ul.nav li a { + border: 0 !important; + border-bottom: 1px solid #4d3f43 !important; +} + +#categories *, .modal-wrapper * { + background:#1d1f21 none !important; + color:#D5D8D7 !important; +} + +#categories *, { + border: 1px solid #3d3f43 !important; +} + +#categories *:checked + label { + border-bottom: 4px solid #3d9f94 !important; +} + +.result-content, .result-source, .result-format { + color:#B5B8B7 !important; +} + +.external-link { + color:#35B887 !important; +} + +.table-striped tr td, .table-striped tr th { + border-color: #4d3f43 !important; +} + +.highlight { + background: #333333 !important; +} + +/*nav*/ +.navbar{ + background:#1d1f21 none; + border: none; +} + +.navbar .active, .menu { + background: none !important; +} + +.label-default { + background: none; + color: #BBB; +} + +.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus, .nav-tabs.nav-justified > .active > a{ + background-color: #282a2e !important; + +} + +/*Search Page*/ +.result-default:hover, .result-code:hover, .result-torrent:hover, .result-videos:hover, .result-map:hover { + background-color: #222426; +} + +/*buttons*/ +.btn { + color: #BBB; + background-color: #444 ; + border: 1px solid #282a2e; +} + +.btn:hover { + color:#444 !important; + background-color: #BBB !important; +} + +.btn-primary.active { + color: #C5C8C6; + background-color: #5F89AC; + border-color: #5F89AC; +} + +/*Right Pannels*/ +.panel { + border: 1px solid #111; + background: none; +} + +.panel-heading { + color: #C5C8C6 !important; + background: #282a2e !important; + border-bottom: none; +} + +.panel-body { + color: #C5C8C6 !important; + background: #1d1f21 !important; + border-color: #111 !important; +} + +p.btn.btn-default{ + background: none; +} + +.table-striped>tbody>tr:nth-child(odd)>td, .table-striped>tbody>tr:nth-child(odd)>th, .table-striped>thead>tr:nth-child(odd)>th { + background:#2d2f32 none !important; + color:#D5D8D7 !important; +} + +.label-success { + background:#1d6f42 none !important; +} + +.label-danger { + background:#ad1f12 none !important; +} + +.searx-navbar { + background: #333334; + height: 2.3rem; + font-size: 1.3rem; + line-height: 1.3rem; + padding: 0.5rem; + font-weight: bold; + margin-bottom: 0.8rem; + + a, a:hover { + margin-right: 2.0rem; + color: white; + text-decoration: none; + } + + .instance a { + color: @light-green; + margin-left: 2.0rem; + } +} + +#main-logo { + margin-top: 20vh; + margin-bottom: 25px; + + & > img { + max-width: 350px; + width: 80%; + } +} + +.onoffswitch-inner:before, .onoffswitch-inner:after { + background:#1d1f21 none !important; +} + +.onoffswitch-switch, .onoffswitch-label { + border: 2px solid #3d3f43 !important; +} + +.nav>li>a:hover, .nav>li>a:focus { + background-color: #3d3f43 !important; +} + +/*Images search*/ +.img-thumbnail, .thumbnail { + padding: 0px; + line-height: 1.42857143; + background: none; + border: none; +} + +.modal-content { + background:#1d1f21 none !important; +} + +/*Preferences*/ + +.table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, .table > thead > tr > th.danger, .table > tbody > tr > th.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > tbody > tr.danger > td, .table > tfoot > tr.danger > td, .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th { + background: RGBA(240, 0, 0, 0.56) !important; + color: #C5C8C6 !important; +} + +.table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th { + background: RGBA(237, 59, 59, 0.61) !important; + color: #C5C8C6 !important; +} + +.table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th { + background: rgb(102, 105, 110) !important; +} + +.btn-success { + color: #C5C8C6; + background: #449d44; +} + +.btn-danger { + color: #C5C8C6; + background: #d9534f; + +} + +.well { + background: #444; + border-color: #282a2e; +} + +.highlight { + background-color: transparent !important; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/advanced.less b/searx/static/themes/oscar/src/less/logicodev/advanced.less new file mode 100644 index 000000000..b8e10de4d --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/advanced.less @@ -0,0 +1,49 @@ +#advanced-search-container { + display: none; + text-align: left; + margin-bottom: 1rem; + clear: both; + + label, .input-group-addon { + font-size: 1.2rem; + font-weight:normal; + background-color: white; + border: @mild-gray 1px solid; + border-right: none; + color: @dark-gray; + padding-bottom: 0.4rem; + padding-right: 0.7rem; + padding-left: 0.7rem; + } + + label:last-child, .input-group-addon:last-child { + border-right: @mild-gray 1px solid; + } + + input[type="radio"] { + display: none; + } + + input[type="radio"]:checked + label{ + color: @black; + font-weight: bold; + border-bottom: @light-green 5px solid; + } +} + +#check-advanced:focus + label { + text-decoration: underline; +} + +#check-advanced:checked ~ #advanced-search-container { + display: block; +} + +.advanced { + padding: 0; + margin-top: 0.3rem; + text-align: right; + label, select { + cursor: pointer; + } +} diff --git a/searx/static/themes/oscar/src/less/logicodev/checkbox.less b/searx/static/themes/oscar/src/less/logicodev/checkbox.less new file mode 100644 index 000000000..6428b36ed --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/checkbox.less @@ -0,0 +1,9 @@ +// Hide element if checkbox is checked +input[type=checkbox]:checked + .label_hide_if_checked, input[type=checkbox]:checked + .label_hide_if_not_checked + .label_hide_if_checked { + display:none; +} + +// Hide element if checkbox is not checked +input[type=checkbox]:not(:checked) + .label_hide_if_not_checked, input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not_checked { + display:none; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/code.less b/searx/static/themes/oscar/src/less/logicodev/code.less new file mode 100644 index 000000000..491b30e5a --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/code.less @@ -0,0 +1,101 @@ +pre, code{ + font-family: 'Ubuntu Mono', 'Courier New', 'Lucida Console', monospace !important; +} + +.lineno{ + margin-right: 5px; +} + +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #556366; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid @orange } /* Error */ +.highlight .k { color: #BE74D5; font-weight: bold } /* Keyword */ +.highlight .o { color: #D19A66 } /* Operator */ +.highlight .cm { color: #556366; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ +.highlight .c1 { color: #556366; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #556366; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #BE74D5; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #BE74D5; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #BE74D5; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #BE74D5 } /* Keyword.Pseudo */ +.highlight .kr { color: #BE74D5; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #D46C72 } /* Keyword.Type */ +.highlight .m { color: #D19A66 } /* Literal.Number */ +.highlight .s { color: #86C372 } /* Literal.String */ +.highlight .na { color: #7D9029 } /* Name.Attribute */ +.highlight .nb { color: #BE74D5 } /* Name.Builtin */ +.highlight .nc { color: #61AFEF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #D19A66 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #61AFEF } /* Name.Function */ +.highlight .nl { color: #A0A000 } /* Name.Label */ +.highlight .nn { color: #61AFEF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #BE74D5; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #DFC06F } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #D7DAE0 } /* Text.Whitespace */ +.highlight .mf { color: #D19A66 } /* Literal.Number.Float */ +.highlight .mh { color: #D19A66 } /* Literal.Number.Hex */ +.highlight .mi { color: #D19A66 } /* Literal.Number.Integer */ +.highlight .mo { color: #D19A66 } /* Literal.Number.Oct */ +.highlight .sb { color: #86C372 } /* Literal.String.Backtick */ +.highlight .sc { color: #86C372 } /* Literal.String.Char */ +.highlight .sd { color: #86C372; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #86C372 } /* Literal.String.Double */ +.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #86C372 } /* Literal.String.Heredoc */ +.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #BE74D5 } /* Literal.String.Other */ +.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ +.highlight .s1 { color: #86C372 } /* Literal.String.Single */ +.highlight .ss { color: #DFC06F } /* Literal.String.Symbol */ +.highlight .bp { color: #BE74D5 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #DFC06F } /* Name.Variable.Class */ +.highlight .vg { color: #DFC06F } /* Name.Variable.Global */ +.highlight .vi { color: #DFC06F } /* Name.Variable.Instance */ +.highlight .il { color: #D19A66 } /* Literal.Number.Integer.Long */ + +.highlight .lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: default; + color: #556366; + + &::selection { + background: transparent; /* WebKit/Blink Browsers */ + } + &::-moz-selection { + background: transparent; /* Gecko Browsers */ + } +} + +.highlight pre { + background-color: #282C34; + color: #D7DAE0; + border: none; + margin-bottom: 25px; + font-size: 15px; + padding: 20px 10px; +} + +.highlight { + font-weight: 700; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/cursor.less b/searx/static/themes/oscar/src/less/logicodev/cursor.less new file mode 100644 index 000000000..cbc1ea6fc --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/cursor.less @@ -0,0 +1,8 @@ +// display cursor +.cursor-text { + cursor: text !important; +} + +.cursor-pointer { + cursor: pointer !important; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/footer.less b/searx/static/themes/oscar/src/less/logicodev/footer.less new file mode 100644 index 000000000..d23a0cc97 --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/footer.less @@ -0,0 +1,30 @@ +// Sticky footer styles +*{ + border-radius: 0 !important; +} +html { + position: relative; + min-height: 100%; + color: @black; +} + +body { + /* Margin bottom by footer height */ + font-family: 'Roboto', Helvetica, Arial, sans-serif; + margin-bottom: 80px; + background-color: white; + + a{ + color: @blue; + } +} + +.footer { + position: absolute; + bottom: 0; + width: 100%; + /* Set the fixed height of the footer here */ + height: 60px; + text-align: center; + color: #999; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/infobox.less b/searx/static/themes/oscar/src/less/logicodev/infobox.less new file mode 100644 index 000000000..e3582dffc --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/infobox.less @@ -0,0 +1,87 @@ +.infobox { + + .panel-heading{ + background-color: @dim-gray; + + .panel-title{ + font-weight: 700; + } + } + + .header_url { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: block; + } + + + p{ + font-family: "DejaVu Serif", Georgia, Cambria, "Times New Roman", Times, serif !important; + font-style: italic; + } + + img{ + max-height: "250px"; + } + + .btn{ + background-color: @dark-blue; + border: none; + + a{ + color: white; + margin: 5px; + } + } + + .infobox_part { + margin-bottom: 20px; + word-wrap: break-word; + table-layout: fixed; + + } + + .infobox_part:last-child { + margin-bottom: 0; + } + + .infobox_toggle { + width: 100%; + text-align: center; + margin-bottom: 0px; + } + + // Shrink infobox size when toggle is off + .infobox_checkbox ~ .infobox_body { + max-height: 300px; + overflow: hidden; + } + .infobox_checkbox:checked ~ .infobox_body { + max-height: none; + } + + // Show toggle button as down when infobox is shrunk + .infobox_checkbox ~ .infobox_toggle .infobox_label_down { + display: block; + } + .infobox_checkbox ~ .infobox_toggle .infobox_label_up { + display: none; + } + + // Show toggle button as up when infobox is expanded + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { + display: block; + } + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { + display: none; + } + + // Hide main image when toggle is off + .infobox_checkbox ~ .infobox_body img.infobox_part { + display: none; + } + .infobox_checkbox:checked ~ .infobox_body img.infobox_part { + display: block; + } +} diff --git a/searx/static/themes/oscar/src/less/logicodev/navbar.less b/searx/static/themes/oscar/src/less/logicodev/navbar.less new file mode 100644 index 000000000..6e4f9ee10 --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/navbar.less @@ -0,0 +1,30 @@ +.searx-navbar { + background: @black; + height: 2.3rem; + font-size: 1.3rem; + line-height: 1.3rem; + padding: 0.5rem; + font-weight: bold; + margin-bottom: 0.8rem; + + a, a:hover { + margin-right: 2.0rem; + color: white; + text-decoration: none; + } + + .instance a { + color: @light-green; + margin-left: 2.0rem; + } +} + +#main-logo { + margin-top: 20vh; + margin-bottom: 25px; + + & > img { + max-width: 350px; + width: 80%; + } +} diff --git a/searx/static/themes/oscar/src/less/logicodev/onoff.less b/searx/static/themes/oscar/src/less/logicodev/onoff.less new file mode 100644 index 000000000..fbd2983eb --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/onoff.less @@ -0,0 +1,74 @@ +.onoff-checkbox { + width:15%; +} +.onoffswitch { + position: relative; + width: 110px; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select: none; +} +.onoffswitch-checkbox { + opacity: 0; + position: absolute; +} +.onoffswitch-checkbox:before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 10px; + position: absolute; + left: 0; + bottom: 1px; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 0px; +} +.onoffswitch-label { + display: block; + overflow: hidden; + cursor: pointer; + border: 2px solid #FFFFFF !important; + border-radius: 50px !important; +} +.onoffswitch-inner { + display: block; + transition: margin 0.3s ease-in 0s; +} + +.onoffswitch-inner:before, .onoffswitch-inner:after { + display: block; + float: left; + width: 50%; + height: 30px; + padding: 0; + line-height: 40px; + font-size: 20px; + box-sizing: border-box; + content: ""; + background-color: #EEEEEE; +} + +.onoffswitch-switch { + display: block; + width: 37px; + background-color: @light-green; + position: absolute; + top: 0; + bottom: 0; + right: 0px; + border: 2px solid #FFFFFF; + border-radius: 50px !important; + transition: all 0.3s ease-in 0s; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-right: 0; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 71px; + background-color: #A1A1A1; +} +.onoffswitch-checkbox:focus + .onoffswitch-label .onoffswitch-switch { + border: 3px solid #444444; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/oscar.less b/searx/static/themes/oscar/src/less/logicodev/oscar.less new file mode 100644 index 000000000..da80d1e94 --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/oscar.less @@ -0,0 +1,23 @@ +@import "variables.less"; + +@import "navbar.less"; + +@import "footer.less"; + +@import "checkbox.less"; + +@import "onoff.less"; + +@import "results.less"; + +@import "infobox.less"; + +@import "search.less"; + +@import "advanced.less"; + +@import "cursor.less"; + +@import "code.less"; + +@import "preferences.less"; diff --git a/searx/static/themes/oscar/src/less/logicodev/preferences.less b/searx/static/themes/oscar/src/less/logicodev/preferences.less new file mode 100644 index 000000000..82ce16310 --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/preferences.less @@ -0,0 +1,15 @@ +.table > tbody > tr > td, .table > tbody > tr > th { + vertical-align: middle !important; +} + +.nav-tabs.nav-justified{ + margin-bottom: 20px; +} + +p { + margin: 10px 0; +} + +input.cursor-text { + margin: 10px 0; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/results.less b/searx/static/themes/oscar/src/less/logicodev/results.less new file mode 100644 index 000000000..33965fb33 --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/results.less @@ -0,0 +1,212 @@ +.result_header { + margin-top: 0px; + margin-bottom: 2px; + font-size: 16px; + + .favicon { + margin-bottom:-3px; + } + + a { + color: @black; + text-decoration: none; + + &:hover{ + color: @blue; + } + + &:visited{ + color: @violet; + } + + .highlight { + background-color: @dim-gray; + // Chrome hack: bold is different size than normal + // https://stackoverflow.com/questions/20713988/weird-text-alignment-issue-in-css-when-bolded-lucida-sans + } + } +} + +.result-content, .result-format, .result-source { + margin-top: 2px; + margin-bottom: 0; + word-wrap: break-word; + color: @dark-gray; + font-size: 13px; + + + .highlight { + font-weight:bold; + } + +} + +.result-source { + font-size: 10px; + float: left; +} + +.result-format { + font-size: 10px; + float: right; +} + +.result-abstract { + margin-top: 0.5em; + margin-bottom: 0.8em; +} + +.external-link { + color: @dark-green; + font-size: 12px; + margin-bottom: 15px; + + a { + margin-right: 3px; + } +} + +// default formating of results +.result-default, .result-code, .result-torrent, .result-videos, .result-map { + clear: both; + padding: 0.5em 4px; + &:hover{ + background-color: @dim-gray; + } +} + + +// image formating of results +.result-images { + float: left !important; + width: 24%; + margin: .5%; + a { + display: block; + width: 100%; + background-size: cover; + } +} + +.img-thumbnail { + margin: 5px; + max-height: 128px; + min-height: 128px; +} + +// video formating of results +.result-videos { + clear: both; + + hr{ + margin: 5px 0 15px 0; + } + + .collapse{ + width: 100%; + } + + .in{ + margin-bottom: 8px; + } +} + +// torrent formating of results +.result-torrent { + clear: both; + + b{ + margin-right: 5px; + margin-left: 5px; + } + + .seeders{ + color: @green; + } + + .leechers{ + color: @red; + } +} + +.result-metadata { + clear: both; + margin: 1em; + + td { + padding-right: 1em; + color: @gray; + } + + td:first-of-type { + color: @dark-gray; + } +} + +// map formating of results +.result-map { + clear: both; +} + +// code formating of results +.result-code { + clear: both; + + .code-fork, .code-fork a{ + color: @dark-gray; + } + +} + +// suggestion +.suggestion_item { + margin: 2px 5px; + max-width: 100%; + + .btn { + max-width: 100%; + white-space: normal; + word-wrap: break-word; + text-align: left; + } +} + +// download result +.result_download { + margin-right: 5px; +} + +// page forward, backward +#pagination { + margin-top: 30px; + padding-bottom: 60px; +} + +.label-default { + color: @dark-gray; + background: transparent; +} + +.result .text-muted small { + word-wrap: break-word; +} + +.modal-wrapper { + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); +} + +.modal-wrapper { + background-clip: padding-box; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + outline: 0 none; + position: relative; +} + +@media screen and (max-width: 75em) { + .img-thumbnail { + object-fit: cover; + } +} diff --git a/searx/static/themes/oscar/src/less/logicodev/search.less b/searx/static/themes/oscar/src/less/logicodev/search.less new file mode 100644 index 000000000..01422873c --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/search.less @@ -0,0 +1,103 @@ +.search_categories, #categories { + text-transform: capitalize; + margin-bottom: 0.5rem; + display: flex; + flex-wrap: wrap; + flex-flow: row wrap; + align-content: stretch; + + label, .input-group-addon { + flex-grow: 1; + flex-basis: auto; + font-size: 1.2rem; + font-weight: normal; + background-color: white; + border: @mild-gray 1px solid; + border-right: none; + color: @dark-gray; + padding-bottom: 0.4rem; + padding-top: 0.4rem; + text-align: center; + min-width: 50px; + } + label:last-child, .input-group-addon:last-child { + border-right: @mild-gray 1px solid; + } + + input[type="checkbox"]:checked + label { + color: @black; + font-weight: bold; + border-bottom: @light-green 5px solid; + } +} + +#main-logo{ + margin-top: 10vh; + margin-bottom: 25px; +} + +#main-logo > img { + max-width: 350px; + width: 80%; +} + +#q{ + box-shadow: none; + border-right: none; + border-color: @semidark-gray; +} + + #search_form .input-group-btn .btn{ + border-color: @semidark-gray; + } + + #search_form .input-group-btn .btn:hover{ + background-color: @dark-green; + color: white; + } + +.custom-select, .custom-select-rtl { + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + font-size: 1.2rem; + font-weight:normal; + background-color: white; + border: @semidark-gray 1px solid; + color: @dark-gray; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAQAAACR313BAAAABGdBTUEAALGPC/xhBQAAACBjSFJN +AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZ +cwAABFkAAARZAVnbJUkAAAAHdElNRQfgBxgLDwB20OFsAAAAbElEQVQY073OsQ3CMAAEwJMYwJGn +sAehpoXJItltBkmcdZBYgIIiQoLglnz3ui+eP+bk5uneteTMZJa6OJuIqvYzSJoqwqBq8gdmTTW8 +6/dghxAUq4xsVYT9laBYXCw93Aajh7GPEF23t4fkBYevGFTANkPRAAAAJXRFWHRkYXRlOmNyZWF0 +ZQAyMDE2LTA3LTI0VDExOjU1OjU4KzAyOjAwRFqFOQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0w +Ny0yNFQxMToxNTowMCswMjowMP7RDgQAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb +7jwaAAAAAElFTkSuQmCC) 96% no-repeat; +} + +.custom-select-rtl { + background-position-x: 4%; +} + +.search-margin { + margin-bottom: 0.6em; +} + +.visually-hidden { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + white-space: nowrap; /* added line */ +} +.label-danger, .btn-danger { + background: @dark-red; +} +.label-success, .btn-success { + background: @dark-green; +} +select.form-control { + border-color: @semidark-gray !important; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/variables.less b/searx/static/themes/oscar/src/less/logicodev/variables.less new file mode 100644 index 000000000..4ee8df8e7 --- /dev/null +++ b/searx/static/themes/oscar/src/less/logicodev/variables.less @@ -0,0 +1,16 @@ +@black: #29314D; +@gray: #A4A4A4; +@dim-gray: #F6F9FA; +@dark-gray: #666; +@semidark-gray: #888; +@middle-gray: #F5F5F5; +@mild-gray: #DDD; +@dark-blue: #007AB8; +@blue: #0088CC; +@red: #F35E77; +@violet: #684898; +@dark-green: #068922; +@green: #2ecc71; +@light-green: #01D7D4; +@orange: #FFA92F; +@dark-red: #c9432f; diff --git a/searx/static/themes/oscar/src/less/pointhi/advanced.less b/searx/static/themes/oscar/src/less/pointhi/advanced.less new file mode 100644 index 000000000..23bfdb0d2 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/advanced.less @@ -0,0 +1,49 @@ +#advanced-search-container { + display: none; + text-align: center; + margin-bottom: 1rem; + clear: both; + + label, .input-group-addon { + font-size: 1.3rem; + font-weight:normal; + background-color: white; + border: #DDD 1px solid; + border-right: none; + color: #333; + padding-bottom: 0.8rem; + padding-left: 1.2rem; + padding-right: 1.2rem; + } + + label:last-child, .input-group-addon:last-child { + border-right: #DDD 1px solid; + } + + input[type="radio"] { + display: none; + } + + input[type="radio"]:checked + label { + color: black; + font-weight: bold; + background-color: #EEE; + } +} + +#check-advanced { + display: none; +} + +#check-advanced:checked ~ #advanced-search-container { + display: block; +} + +.advanced { + padding: 0; + margin-top: 0.3rem; + text-align: right; + label, select { + cursor: pointer; + } +} diff --git a/searx/static/themes/oscar/src/less/pointhi/checkbox.less b/searx/static/themes/oscar/src/less/pointhi/checkbox.less new file mode 100644 index 000000000..6428b36ed --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/checkbox.less @@ -0,0 +1,9 @@ +// Hide element if checkbox is checked +input[type=checkbox]:checked + .label_hide_if_checked, input[type=checkbox]:checked + .label_hide_if_not_checked + .label_hide_if_checked { + display:none; +} + +// Hide element if checkbox is not checked +input[type=checkbox]:not(:checked) + .label_hide_if_not_checked, input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not_checked { + display:none; +} diff --git a/searx/static/themes/oscar/src/less/pointhi/code.less b/searx/static/themes/oscar/src/less/pointhi/code.less new file mode 100644 index 000000000..70a2a5d49 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/code.less @@ -0,0 +1,79 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #408080; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ +.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #7D9029 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #880000 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0000FF } /* Name.Function */ +.highlight .nl { color: #A0A000 } /* Name.Label */ +.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #666666 } /* Literal.Number.Float */ +.highlight .mh { color: #666666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666666 } /* Literal.Number.Oct */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ + +.highlight .lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: default; + + &::selection { + background: transparent; /* WebKit/Blink Browsers */ + } + &::-moz-selection { + background: transparent; /* Gecko Browsers */ + } +} diff --git a/searx/static/themes/oscar/src/less/pointhi/cursor.less b/searx/static/themes/oscar/src/less/pointhi/cursor.less new file mode 100644 index 000000000..cbc1ea6fc --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/cursor.less @@ -0,0 +1,8 @@ +// display cursor +.cursor-text { + cursor: text !important; +} + +.cursor-pointer { + cursor: pointer !important; +} diff --git a/searx/static/themes/oscar/src/less/pointhi/footer.less b/searx/static/themes/oscar/src/less/pointhi/footer.less new file mode 100644 index 000000000..0b25e735f --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/footer.less @@ -0,0 +1,19 @@ +// Sticky footer styles + +html { + position: relative; + min-height: 100%; +} + +body { + /* Margin bottom by footer height */ + margin-bottom: 80px; +} + +.footer { + position: absolute; + bottom: 0; + width: 100%; + /* Set the fixed height of the footer here */ + height: 60px; +} diff --git a/searx/static/themes/oscar/src/less/pointhi/infobox.less b/searx/static/themes/oscar/src/less/pointhi/infobox.less new file mode 100644 index 000000000..e6a55e944 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/infobox.less @@ -0,0 +1,62 @@ +.infobox { + + img { + max-height: 250px; + } + + .infobox_part { + margin-bottom: 20px; + word-wrap: break-word; + table-layout: fixed; + } + + .infobox_part:last-child { + margin-bottom: 0; + } + + .header_url { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + display: block; + } + + .infobox_toggle { + width: 100%; + text-align: center; + margin-bottom: 0px; + } + + // Shrink infobox size when toggle is off + .infobox_checkbox ~ .infobox_body { + max-height: 300px; + overflow: hidden; + } + .infobox_checkbox:checked ~ .infobox_body { + max-height: none; + } + + // Show toggle button as down when infobox is shrunk + .infobox_checkbox ~ .infobox_toggle .infobox_label_down { + display: block; + } + .infobox_checkbox ~ .infobox_toggle .infobox_label_up { + display: none; + } + + // Show toggle button as up when infobox is expanded + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up { + display: block; + } + .infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down { + display: none; + } + + // Hide main image when toggle is off + .infobox_checkbox ~ .infobox_body img.infobox_part { + display: none; + } + .infobox_checkbox:checked ~ .infobox_body img.infobox_part { + display: block; + } +} diff --git a/searx/static/themes/oscar/src/less/pointhi/navbar.less b/searx/static/themes/oscar/src/less/pointhi/navbar.less new file mode 100644 index 000000000..a057f8240 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/navbar.less @@ -0,0 +1,20 @@ +.searx-navbar { + background: #eee; + color: #aaa; + height: 2.3rem; + font-size: 1.3rem; + line-height: 1.3rem; + padding: 0.5rem; + font-weight: bold; + margin-bottom: 1.3rem; + + a, a:hover { + margin-right: 2.0rem; + text-decoration: none; + } + + .instance a { + color: #444; + margin-left: 2.0rem; + } +} diff --git a/searx/static/themes/oscar/src/less/pointhi/onoff.less b/searx/static/themes/oscar/src/less/pointhi/onoff.less new file mode 100644 index 000000000..72b289a23 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/onoff.less @@ -0,0 +1,57 @@ +.onoff-checkbox { + width:15%; +} +.onoffswitch { + position: relative; + width: 110px; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select: none; +} +.onoffswitch-checkbox { + display: none; +} +.onoffswitch-label { + display: block; + overflow: hidden; + cursor: pointer; + border: 2px solid #FFFFFF !important; + border-radius: 50px !important; +} +.onoffswitch-inner { + display: block; + transition: margin 0.3s ease-in 0s; +} + +.onoffswitch-inner:before, .onoffswitch-inner:after { + display: block; + float: left; + width: 50%; + height: 30px; + padding: 0; + line-height: 40px; + font-size: 20px; + box-sizing: border-box; + content: ""; + background-color: #EEEEEE; +} + +.onoffswitch-switch { + display: block; + width: 37px; + background-color: #00CC00; + position: absolute; + top: 0; + bottom: 0; + right: 0px; + border: 2px solid #FFFFFF !important; + border-radius: 50px !important; + transition: all 0.3s ease-in 0s; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-right: 0; +} +.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 71px; + background-color: #A1A1A1; +} diff --git a/searx/static/themes/oscar/src/less/pointhi/oscar.less b/searx/static/themes/oscar/src/less/pointhi/oscar.less new file mode 100644 index 000000000..fc1c525ff --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/oscar.less @@ -0,0 +1,21 @@ +@import "footer.less"; + +@import "checkbox.less"; + +@import "onoff.less"; + +@import "results.less"; + +@import "infobox.less"; + +@import "search.less"; + +@import "advanced.less"; + +@import "cursor.less"; + +@import "code.less"; + +@import "navbar.less"; + +@import "preferences.less"; diff --git a/searx/static/themes/oscar/src/less/pointhi/preferences.less b/searx/static/themes/oscar/src/less/pointhi/preferences.less new file mode 100644 index 000000000..9672d5011 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/preferences.less @@ -0,0 +1,3 @@ +.table > tbody > tr > td, .table > tbody > tr > th { + vertical-align: middle !important; +} diff --git a/searx/static/themes/oscar/src/less/pointhi/results.less b/searx/static/themes/oscar/src/less/pointhi/results.less new file mode 100644 index 000000000..13266c007 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/results.less @@ -0,0 +1,109 @@ + +.result_header { + margin-bottom:5px; + margin-top:20px; + + .favicon { + margin-bottom:-3px; + } + + a { + vertical-align: bottom; + + .highlight { + font-weight:bold; + } + } +} + +.result-content { + margin-top: 5px; + word-wrap: break-word; + + .highlight { + font-weight:bold; + } +} + +// default formating of results +.result-default { + clear: both; +} + +// image formating of results +.result-images { + float: left !important; + height: 138px; +} + +.img-thumbnail { + margin: 5px; + max-height: 128px; +} + +// video formating of results +.result-videos { + clear: both; +} + +// torrent formating of results +.result-torrents { + clear: both; +} + +// map formating of results +.result-map { + clear: both; +} + +// code formating of results +.result-code { + clear: both; +} + +// suggestion +.suggestion_item { + margin: 2px 5px; + max-width: 100%; + + .btn { + max-width: 100%; + white-space: normal; + word-wrap: break-word; + text-align: left; + } +} + +// download result +.result_download { + margin-right: 5px; +} + +// page forward, backward +#pagination { + margin-top: 30px; + padding-bottom: 50px; +} + +.label-default { + color: #AAA; + background: #FFF; +} + +.result .text-muted small { + word-wrap: break-word; +} + +.modal-wrapper { + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); +} + +.modal-wrapper { + background-clip: padding-box; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + outline: 0 none; + position: relative; +} diff --git a/searx/static/themes/oscar/src/less/pointhi/search.less b/searx/static/themes/oscar/src/less/pointhi/search.less new file mode 100644 index 000000000..ac0a7a0c7 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/search.less @@ -0,0 +1,43 @@ +.search_categories, #categories { + text-transform: capitalize; + margin-bottom: 1.5rem; + margin-top: 1.5rem; + display: flex; + flex-wrap: wrap; + align-content: stretch; + + label, .input-group-addon { + flex-grow: 1; + flex-basis: auto; + font-size: 1.3rem; + font-weight: normal; + background-color: white; + border: #DDD 1px solid; + border-right: none; + color: #333; + padding-bottom: 0.8rem; + padding-top: 0.8rem; + text-align: center; + min-width: 50px; + } + + label:last-child, .input-group-addon:last-child { + border-right: #DDD 1px solid; + } + + input[type="checkbox"]:checked + label{ + color: black; + font-weight: bold; + background-color: #EEE; + } +} + +.visually-hidden { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ + clip: rect(1px, 1px, 1px, 1px); + white-space: nowrap; /* added line */ +} |