summaryrefslogtreecommitdiff
path: root/searx/static/themes/oscar/src/less
diff options
context:
space:
mode:
authorAlexandre Flament <alex@al-f.net>2021-03-13 09:29:13 +0100
committerGitHub <noreply@github.com>2021-03-13 09:29:13 +0100
commit9292571304376c2c463fb26ee0db89298bb00e6c (patch)
tree8a2dba56227f67aa52b091d1674190cd40e1411e /searx/static/themes/oscar/src/less
parent22a2e544551e87fb9ea74d2fe07b59bfa0815368 (diff)
parentcb04d4280642164bddd37e39151bf22799ef3792 (diff)
downloadsearxng-9292571304376c2c463fb26ee0db89298bb00e6c.tar.gz
searxng-9292571304376c2c463fb26ee0db89298bb00e6c.zip
Merge pull request #2346 from dalf/upgrade-oscar
[mod] oscar: upgrade dependencies
Diffstat (limited to 'searx/static/themes/oscar/src/less')
-rw-r--r--searx/static/themes/oscar/src/less/bootstrap/bootstrap.less3
-rw-r--r--searx/static/themes/oscar/src/less/bootstrap/typeahead.less154
-rw-r--r--searx/static/themes/oscar/src/less/logicodev-dark/oscar.less245
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/advanced.less49
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/checkbox.less9
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/code.less101
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/cursor.less8
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/footer.less30
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/infobox.less87
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/navbar.less30
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/onoff.less74
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/oscar.less23
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/preferences.less15
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/results.less212
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/search.less103
-rw-r--r--searx/static/themes/oscar/src/less/logicodev/variables.less16
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/advanced.less49
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/checkbox.less9
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/code.less79
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/cursor.less8
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/footer.less19
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/infobox.less62
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/navbar.less20
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/onoff.less57
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/oscar.less21
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/preferences.less3
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/results.less109
-rw-r--r--searx/static/themes/oscar/src/less/pointhi/search.less43
28 files changed, 1638 insertions, 0 deletions
diff --git a/searx/static/themes/oscar/src/less/bootstrap/bootstrap.less b/searx/static/themes/oscar/src/less/bootstrap/bootstrap.less
new file mode 100644
index 000000000..d6145eb00
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/bootstrap/bootstrap.less
@@ -0,0 +1,3 @@
+@import "../../../node_modules/bootstrap/less/bootstrap.less";
+
+@import "typeahead.less";
diff --git a/searx/static/themes/oscar/src/less/bootstrap/typeahead.less b/searx/static/themes/oscar/src/less/bootstrap/typeahead.less
new file mode 100644
index 000000000..de1c6ef05
--- /dev/null
+++ b/searx/static/themes/oscar/src/less/bootstrap/typeahead.less
@@ -0,0 +1,154 @@
+/*
+ * typehead.js-bootstrap3.less
+ * @version 0.2.3
+ * https://github.com/hyspace/typeahead.js-bootstrap3.less
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+//custom mixin for .form-control-validation
+.typeahead-form-control(@border-color: #ccc;) {
+ border-color: @border-color;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken(@border-color, 10%);
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
+ .box-shadow(@shadow);
+ }
+ }
+
+ //main styles for control
+ .tt-input,
+ .tt-hint {
+ .twitter-typeahead &{
+ //validation states
+ .has-warning &{
+ .typeahead-form-control(@state-warning-text);
+ }
+ .has-error &{
+ .typeahead-form-control(@state-danger-text);
+ }
+ .has-success &{
+ .typeahead-form-control(@state-success-text);
+ }
+ }
+
+ //border
+ .input-group .twitter-typeahead:first-child &{
+ .border-left-radius(@border-radius-base);
+ }
+ .input-group .twitter-typeahead:last-child &{
+ .border-right-radius(@border-radius-base);
+ }
+
+ //sizing - small:size and border
+ .input-group.input-group-sm .twitter-typeahead &{
+ .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
+ }
+ .input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) &{
+ border-radius: 0;
+ }
+ .input-group.input-group-sm .twitter-typeahead:first-child &{
+ .border-left-radius(@border-radius-small);
+ .border-right-radius(0);
+ }
+ .input-group.input-group-sm .twitter-typeahead:last-child &{
+ .border-left-radius(0);
+ .border-right-radius(@border-radius-small);
+ }
+
+ //sizing - large:size and border
+ .input-group.input-group-lg .twitter-typeahead &{
+ .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
+ }
+ .input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) &{
+ border-radius: 0;
+ }
+ .input-group.input-group-lg .twitter-typeahead:first-child &{
+ .border-left-radius(@border-radius-large);
+ .border-right-radius(0);
+ }
+ .input-group.input-group-lg .twitter-typeahead:last-child &{
+ .border-left-radius(0);
+ .border-right-radius(@border-radius-large);
+ }
+ }
+
+ //for wrapper
+ .twitter-typeahead {
+ width: 100%;
+ .input-group &{
+ //overwrite `display:inline-block` style
+ display: table-cell!important;
+ float: left;
+ }
+ }
+
+ //particular style for each other
+ .twitter-typeahead .tt-hint {
+ color: @text-muted;//color - hint
+ }
+ .twitter-typeahead .tt-input {
+ z-index: 2;
+ //disabled status
+ //overwrite inline styles of .tt-query
+ &[disabled],
+ &[readonly],
+ fieldset[disabled] & {
+ cursor: not-allowed;
+ //overwirte inline style
+ background-color: @input-bg-disabled!important;
+ }
+ }
+
+ //dropdown styles
+ .tt-dropdown-menu {
+ //dropdown menu
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: @zindex-dropdown;
+ min-width: 160px;
+ width: 100%;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: @font-size-base;
+ background-color: @dropdown-bg;
+ border: 1px solid @dropdown-fallback-border;
+ border: 1px solid @dropdown-border;
+ border-radius: @border-radius-base;
+ .box-shadow(0 6px 12px rgba(0,0,0,.175));
+ background-clip: padding-box;
+ *border-right-width: 2px;
+ *border-bottom-width: 2px;
+
+ .tt-suggestion {
+ //item
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: @line-height-base;
+ color: @dropdown-link-color;
+ white-space: nowrap;
+ text-align: left;
+ cursor: pointer !important;
+ &.tt-cursor {
+ //item selected
+ text-decoration: none;
+ outline: 0;
+ background-color: @dropdown-link-hover-bg;
+ color: @dropdown-link-hover-color;
+ a {
+ //link in item selected
+ color: @dropdown-link-hover-color;
+ }
+ }
+ p {
+ margin: 0;
+ }
+ }
+ }
+ \ No newline at end of file
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 */
+}