summaryrefslogtreecommitdiff
path: root/client/simple/src/less/style.less
diff options
context:
space:
mode:
Diffstat (limited to 'client/simple/src/less/style.less')
-rw-r--r--client/simple/src/less/style.less1162
1 files changed, 1162 insertions, 0 deletions
diff --git a/client/simple/src/less/style.less b/client/simple/src/less/style.less
new file mode 100644
index 000000000..7dca47402
--- /dev/null
+++ b/client/simple/src/less/style.less
@@ -0,0 +1,1162 @@
+/*
+* SearXNG, A privacy-respecting, hackable metasearch engine
+*
+* To convert "style.less" to "style.css" run: $make styles
+*/
+
+// stylelint-disable no-descending-specificity
+
+@import (inline) "../../node_modules/normalize.css/normalize.css";
+@import "definitions.less";
+@import "mixins.less";
+@import "code.less";
+@import "toolkit.less";
+@import "autocomplete.less";
+@import "detail.less";
+@import "animations.less";
+@import "embedded.less";
+@import "info.less";
+@import "new_issue.less";
+@import "stats.less";
+@import "result_templates.less";
+
+// for index.html template
+@import "index.less";
+
+// for preferences.html template
+@import "preferences.less";
+
+// Search-Field
+@import "search.less";
+
+// to center the results
+@import "style-center.less";
+
+// ion-icon
+.ion-icon {
+ display: inline-block;
+ vertical-align: bottom;
+ line-height: 1;
+ text-decoration: inherit;
+ .ltr-transform();
+}
+
+.ion-icon-small {
+ width: 1rem;
+ height: 1rem;
+ .ion-icon;
+}
+
+.ion-icon-big {
+ width: 1.5rem;
+ height: 1.5rem;
+ .ion-icon;
+}
+
+// Main LESS-Code
+html {
+ font-family: sans-serif;
+ font-size: 0.9em;
+ .text-size-adjust;
+
+ color: var(--color-base-font);
+ background-color: var(--color-base-background);
+ padding: 0;
+ margin: 0;
+
+ scroll-behavior: smooth;
+}
+
+body,
+main {
+ padding: 0;
+ margin: 0;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+ height: 100vh;
+ margin: 0;
+}
+
+main {
+ width: 100%;
+ margin-bottom: 2rem;
+ flex: 1;
+}
+
+.page_with_header {
+ margin: 2em auto;
+ width: 85em;
+}
+
+footer {
+ clear: both;
+ min-height: 4rem;
+ padding: 1rem 0;
+ width: 100%;
+ text-align: center;
+ background-color: var(--color-footer-background);
+ border-top: 1px solid var(--color-footer-border);
+ overflow: hidden;
+
+ p {
+ font-size: 0.9em;
+ }
+}
+
+.page_with_header .logo {
+ height: 40px;
+}
+
+input[type="submit"],
+#results button[type="submit"],
+.button {
+ padding: 0.7rem;
+ display: inline-block;
+ background: var(--color-btn-background);
+ color: var(--color-btn-font);
+ .rounded-corners;
+
+ border: 0;
+ cursor: pointer;
+}
+
+a {
+ text-decoration: none;
+ color: var(--color-url-font);
+
+ &:visited {
+ color: var(--color-url-visited-font);
+
+ .highlight {
+ color: var(--color-url-visited-font);
+ }
+ }
+}
+
+article[data-vim-selected] {
+ background: var(--color-result-vim-selected);
+ .ltr-border-left(0.2rem solid var(--color-result-vim-arrow));
+ .ltr-rounded-right-corners(10px);
+}
+
+article.result-images[data-vim-selected] {
+ background: var(--color-result-vim-arrow);
+ border: none;
+ .rounded-corners;
+
+ .image_thumbnail {
+ filter: opacity(60%);
+ }
+
+ span.title,
+ span.source {
+ color: var(--color-result-image-span-font-selected);
+ }
+}
+
+article[data-vim-selected].category-videos,
+article[data-vim-selected].category-news,
+article[data-vim-selected].category-map,
+article[data-vim-selected].category-music,
+article[data-vim-selected].category-files,
+article[data-vim-selected].category-social {
+ border: 1px solid var(--color-result-vim-arrow);
+ .rounded-corners;
+}
+
+.result {
+ margin: @results-margin 0;
+ padding: @result-padding;
+ box-sizing: border-box;
+ width: 100%;
+ .ltr-border-left(0.2rem solid transparent);
+
+ h3 {
+ font-size: 1.2rem;
+ word-wrap: break-word;
+ margin: 0.4rem 0 0.4rem 0;
+ padding: 0;
+
+ a {
+ color: var(--color-result-link-font);
+ font-weight: normal;
+ font-size: 1.1em;
+
+ &:visited {
+ color: var(--color-result-link-visited-font);
+ }
+
+ &:focus,
+ &:hover {
+ text-decoration: underline;
+ border: none;
+ outline: none;
+ }
+ }
+ }
+
+ .cache_link,
+ .proxyfied_link {
+ font-size: smaller !important;
+ margin-left: 0.5rem;
+ }
+
+ .content,
+ .stat {
+ font-size: 0.9em;
+ margin: 0;
+ padding: 0;
+ max-width: 54em;
+ word-wrap: break-word;
+ line-height: 1.24;
+
+ .highlight {
+ color: var(--color-result-description-highlight-font);
+ background: inherit;
+ font-weight: bold;
+ }
+ }
+
+ .altlink a {
+ font-size: 0.9em;
+ margin: 0 10px 0 0;
+ .show-content-button;
+ }
+
+ .codelines {
+ .highlight {
+ color: inherit;
+ background: inherit;
+ font-weight: normal;
+ }
+ }
+
+ .url_header {
+ display: flex;
+ gap: 0.5rem;
+ }
+
+ .url_wrapper {
+ display: flex;
+ align-items: center;
+ font-size: 1rem;
+ color: var(--color-result-url-font);
+ flex-flow: row nowrap;
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
+
+ .url_o1 {
+ white-space: nowrap;
+ flex-shrink: 1;
+ padding-bottom: 1px;
+
+ .url_i1 {
+ unicode-bidi: plaintext;
+ }
+ }
+
+ .url_o1::after {
+ content: " ";
+ width: 1ch;
+ display: inline-block;
+ }
+
+ .url_o2 {
+ overflow: hidden;
+ white-space: nowrap;
+ flex: 0 1 content;
+ text-align: right;
+ padding-bottom: 1px;
+
+ .url_i2 {
+ float: right;
+ }
+ }
+ }
+
+ .published_date,
+ .result_length,
+ .result_views,
+ .result_author,
+ .result_shipping,
+ .result_source_country {
+ font-size: 0.8em;
+ color: var(--color-result-publishdate-font);
+ }
+
+ .result_price {
+ font-size: 1.2em;
+ color: var(--color-result-description-highlight-font);
+ }
+
+ img.thumbnail {
+ .ltr-float-left();
+ padding-top: 0.6rem;
+ .ltr-padding-right(1rem);
+ width: 7rem;
+ height: unset; // remove height value that was needed for lazy loading
+ }
+
+ .break {
+ clear: both;
+ }
+}
+
+.result-paper,
+.result-packages {
+ .attributes {
+ display: table;
+ border-spacing: 0.125rem;
+
+ div {
+ display: table-row;
+
+ span {
+ font-size: 0.9rem;
+ margin-top: 0.25rem;
+ display: table-cell;
+
+ time {
+ font-size: 0.9rem;
+ }
+ }
+
+ span:first-child {
+ color: var(--color-base-font);
+ min-width: 10rem;
+ }
+
+ span:nth-child(2) {
+ color: var(--color-result-publishdate-font);
+ }
+ }
+ }
+
+ .content {
+ margin-top: 0.25rem;
+ }
+
+ .comments {
+ font-size: 0.9rem;
+ margin: 0.25rem 0 0 0;
+ padding: 0;
+ word-wrap: break-word;
+ line-height: 1.24;
+ font-style: italic;
+ }
+}
+
+.result-packages {
+ .attributes {
+ margin-top: 0.3rem;
+ }
+}
+
+.template_group_images {
+ display: flex;
+ flex-wrap: wrap;
+}
+
+.template_group_images::after {
+ flex-grow: 10;
+ content: "";
+}
+
+.category-videos,
+.category-news,
+.category-map,
+.category-music,
+.category-files,
+.category-social {
+ border: 1px solid var(--color-result-border);
+ margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;
+ .rounded-corners;
+}
+
+.category-social .image {
+ width: auto !important;
+ min-width: 48px;
+ min-height: 48px;
+ padding: 0 5px 25px 0 !important;
+}
+
+.audio-control audio {
+ width: 100%;
+ padding: 10px 0 0 0;
+}
+
+.embedded-content iframe {
+ width: 100%;
+ padding: 10px 0 0 0;
+}
+
+.result-videos {
+ img.thumbnail {
+ .ltr-float-left();
+ padding-top: 0.6rem;
+ .ltr-padding-right(1rem);
+ width: 20rem;
+ height: unset; // remove height value that was needed for lazy loading
+ }
+}
+
+.result-videos .content {
+ overflow: hidden;
+}
+
+.result-videos .embedded-video iframe {
+ width: 100%;
+ aspect-ratio: 16 / 9;
+ padding: 10px 0 0 0;
+}
+
+@supports not (aspect-ratio: 1 / 1) {
+ // support older browsers which do not have aspect-ratio
+ // https://caniuse.com/?search=aspect-ratio
+ .result-videos .embedded-video iframe {
+ height: calc(@results-width * 9 / 16);
+ }
+}
+
+.engines {
+ .ltr-float-right();
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-end;
+ color: var(--color-result-engines-font);
+
+ span {
+ font-size: smaller;
+ margin-top: 0;
+ margin-bottom: 0;
+ .ltr-margin-right(0.5rem);
+ .ltr-margin-left(0);
+ }
+}
+
+.small_font {
+ font-size: 0.8em;
+}
+
+.highlight {
+ color: var(--color-result-link-font-highlight);
+ background: inherit;
+}
+
+.empty_element {
+ font-style: italic;
+}
+
+.result-images {
+ flex-grow: 1;
+ padding: 0.5rem 0.5rem 3rem 0.5rem;
+ margin: 0.25rem;
+ border: none !important;
+ height: @results-image-row-height;
+ width: unset;
+
+ & > a {
+ position: relative;
+ outline: none;
+ }
+
+ img {
+ margin: 0;
+ padding: 0;
+ border: none;
+ height: 100%;
+ width: 100%;
+ object-fit: cover;
+ vertical-align: bottom;
+ background: var(--color-result-image-background);
+ }
+
+ .image_resolution {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ background: var(--color-image-resolution-background);
+ padding: 0.3rem 0.5rem;
+ font-size: 0.9rem;
+ color: var(--color-image-resolution-font);
+ border-top-left-radius: 0.3rem;
+ }
+
+ span.title,
+ span.source {
+ display: block;
+ position: absolute;
+
+ width: 100%;
+ font-size: 0.9rem;
+ color: var(--color-result-image-span-font);
+ padding: 0.5rem 0 0 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ span.source {
+ padding: 1.8rem 0 0 0;
+ font-size: 0.7rem;
+ }
+}
+
+.result-map {
+ img.image {
+ .ltr-float-right() !important;
+ height: 100px !important;
+ width: auto !important;
+ }
+
+ table {
+ font-size: 0.9em;
+ width: auto;
+ border-collapse: separate;
+ border-spacing: 0 0.35rem;
+
+ th {
+ font-weight: inherit;
+ width: 17rem;
+ vertical-align: top;
+ .ltr-text-align-left();
+ }
+
+ td {
+ vertical-align: top;
+ .ltr-text-align-left();
+ }
+ }
+}
+
+.hidden {
+ display: none !important;
+}
+
+#results {
+ margin-top: 1rem;
+ .ltr-margin-right(2rem);
+ margin-bottom: 0;
+ .ltr-margin-left(@results-offset);
+ display: grid;
+ grid-template:
+ "corrections sidebar" min-content
+ "answers sidebar" min-content
+ "urls sidebar" 1fr
+ "pagination sidebar" min-content
+ / @results-width @results-sidebar-width
+ ;
+ gap: 0 @results-gap;
+}
+
+#results #sidebar *:first-child {
+ margin-top: 0;
+}
+
+#urls {
+ padding: 0;
+ grid-area: urls;
+}
+
+#apis .wrapper {
+ display: flex;
+}
+
+#suggestions {
+ .wrapper {
+ display: flex;
+ flex-flow: column;
+ justify-content: flex-end;
+
+ form {
+ display: inline-block;
+ flex: 1 1 50%;
+ }
+ }
+}
+
+#suggestions,
+#infoboxes {
+ input {
+ padding: 0;
+ margin: 3px;
+ font-size: 0.9em;
+ display: inline-block;
+ background: transparent;
+ color: var(--color-result-search-url-font);
+ cursor: pointer;
+ width: calc(100%);
+ text-overflow: ellipsis;
+ overflow: hidden;
+ text-align: left;
+ }
+
+ input[type="submit"],
+ .infobox .url a {
+ color: var(--color-result-link-font);
+ text-decoration: none;
+ font-size: 0.9rem;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+}
+
+#corrections {
+ grid-area: corrections;
+ display: flex;
+ flex-flow: row wrap;
+ margin: 0 0 1em 0;
+
+ h4,
+ input[type="submit"] {
+ display: inline-block;
+ padding: 0.5rem;
+ margin: 0.5rem;
+ }
+
+ input[type="submit"] {
+ font-size: 0.8rem;
+ .rounded-corners-tiny;
+ }
+}
+
+#infoboxes .title,
+#suggestions .title,
+#search_url .title,
+#engines_msg .title,
+#apis .title {
+ margin: 2em 0 0.5em 0;
+ color: var(--color-base-font);
+}
+
+summary.title {
+ cursor: pointer;
+ padding-top: 1em;
+}
+
+.sidebar-collapsible {
+ border-top: 1px solid var(--color-sidebar-border);
+ padding-bottom: 0.5em;
+}
+
+#sidebar-end-collapsible {
+ border-bottom: 1px solid var(--color-sidebar-border);
+ width: 100%;
+}
+
+#answers {
+ grid-area: answers;
+ background: var(--color-answer-background);
+ padding: @result-padding;
+ margin: 1rem 0;
+ margin-top: 0;
+ color: var(--color-answer-font);
+ .rounded-corners;
+
+ h4 {
+ display: none;
+ }
+
+ span {
+ overflow-wrap: anywhere;
+ }
+
+ .answer {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .answer-url {
+ margin: 5px 10px 10px auto;
+ }
+}
+
+#infoboxes {
+ form {
+ min-width: 210px;
+ }
+}
+
+#sidebar {
+ grid-area: sidebar;
+ word-wrap: break-word;
+ color: var(--color-sidebar-font);
+
+ .infobox {
+ margin: 10px 0 10px;
+ border: 1px solid var(--color-sidebar-border);
+ padding: 1rem;
+ font-size: 0.9em;
+ .rounded-corners;
+
+ h2 {
+ margin: 0 0 0.5em 0;
+ }
+
+ img {
+ max-width: 100%;
+ max-height: 12em;
+ display: block;
+ margin: 0 auto;
+ padding: 0;
+ }
+
+ dt {
+ font-weight: bold;
+ }
+
+ .attributes {
+ dl {
+ margin: 0.5em 0;
+ }
+
+ dt {
+ display: inline;
+ margin-top: 0.5em;
+ .ltr-margin-right(0.25em);
+ margin-bottom: 0.5em;
+ .ltr-margin-left(0);
+ padding: 0;
+ }
+
+ dd {
+ display: inline;
+ margin: 0.5em 0;
+ padding: 0;
+ }
+ }
+
+ input {
+ font-size: 1em;
+ }
+
+ br {
+ clear: both;
+ }
+
+ .attributes,
+ .urls {
+ clear: both;
+ }
+ }
+}
+
+#apis {
+ input {
+ font-size: 0.9em;
+ margin: 0 10px 0 0;
+ .show-content-button;
+ }
+}
+
+#engines_msg {
+ .engine-name {
+ width: 10rem;
+ }
+
+ .response-error {
+ color: var(--color-error);
+ }
+
+ .bar-chart-value {
+ width: auto;
+ }
+}
+
+#search_url {
+ div.selectable_url {
+ pre {
+ float: left;
+ width: 200em;
+ }
+ }
+
+ button#copy_url {
+ float: right;
+ padding: 0.4rem;
+ margin-left: 0.5rem;
+ border-radius: 0.3rem;
+ display: none; // will be shown by JS.
+ }
+}
+
+#links_on_top {
+ position: absolute;
+ .ltr-right(1rem);
+ .ltr-text-align-right();
+ top: 2.7rem;
+ padding: 0;
+ border: 0;
+ display: flex;
+ align-items: center;
+ font-size: 1em;
+ color: var(--color-search-font);
+
+ a {
+ display: flex;
+ align-items: center;
+ margin-left: 1em;
+
+ svg {
+ font-size: 1.2em;
+ .ltr-margin-right(0.125em);
+ }
+ }
+
+ a,
+ a:link *,
+ a:hover *,
+ a:visited *,
+ a:active * {
+ color: var(--color-search-font);
+ }
+}
+
+#pagination {
+ grid-area: pagination;
+
+ br {
+ clear: both;
+ }
+}
+
+.numbered_pagination {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+}
+
+.page_number {
+ background: transparent !important;
+ color: var(--color-result-link-font) !important;
+ text-decoration: underline;
+}
+
+.page_number_current {
+ background: transparent;
+ color: var(--color-result-link-visited-font);
+ border: none;
+}
+
+#backToTop {
+ border: 1px solid var(--color-backtotop-border);
+ margin: 0;
+ padding: 0;
+ font-size: 1em;
+ background: var(--color-backtotop-background);
+ position: fixed;
+ bottom: 8rem;
+ .ltr-left(@results-width + @results-offset + (0.5 * @results-gap - 1.2em));
+ transition: opacity 0.5s;
+ opacity: 0;
+ pointer-events: none;
+ .rounded-corners;
+
+ a {
+ display: block;
+ margin: 0;
+ padding: 0.7em;
+ }
+
+ a,
+ a:visited,
+ a:hover,
+ a:active {
+ color: var(--color-backtotop-font);
+ }
+}
+
+#results.scrolling #backToTop {
+ opacity: 1;
+ pointer-events: all;
+}
+
+/*
+ tablet layout
+*/
+
+.results-tablet() {
+ #links_on_top {
+ span {
+ display: none;
+ }
+ }
+
+ .page_with_header {
+ margin: 2rem 0.5rem;
+ width: auto;
+ }
+
+ #infoboxes {
+ position: inherit;
+ max-width: inherit;
+
+ .infobox {
+ clear: both;
+
+ img {
+ .ltr-float-left();
+ max-width: 10em;
+ margin-top: 0.5em;
+ .ltr-margin-right(0.5em);
+ margin-bottom: 0.5em;
+ .ltr-margin-left(0);
+ }
+ }
+ }
+
+ #sidebar {
+ margin: 0 @results-tablet-offset @results-margin @results-tablet-offset;
+ padding: 0;
+ float: none;
+ border: none;
+ width: auto;
+
+ input {
+ border: 0;
+ }
+ }
+
+ .result {
+ .thumbnail {
+ max-width: 98%;
+ }
+
+ .url {
+ span.url {
+ display: block;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ width: 100%;
+ }
+ }
+
+ .engines {
+ .ltr-float-right();
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-end;
+ padding: 3px 0 0 0;
+ }
+ }
+
+ .result-images {
+ border-bottom: none !important;
+ }
+
+ .image_result {
+ max-width: 98%;
+
+ img {
+ max-width: 98%;
+ }
+ }
+
+ #backToTop {
+ display: none;
+ }
+
+ #pagination {
+ margin: 2rem 0 0 0 !important;
+ }
+
+ #main_results div#results {
+ margin: 0 auto;
+ justify-content: center;
+ display: grid;
+ grid-template:
+ "corrections" min-content
+ "answers" min-content
+ "sidebar" min-content
+ "urls" 1fr
+ "pagination" min-content
+ / @results-width
+ ;
+ gap: 0;
+ }
+}
+
+@media screen and (width <= calc(@tablet - 0.5px)) {
+ #links_on_top {
+ span {
+ display: none;
+ }
+ }
+}
+
+@media screen and (width <= 52rem) {
+ body.results_endpoint {
+ #links_on_top {
+ .link_on_top_about,
+ .link_on_top_donate {
+ display: none;
+ }
+ }
+ }
+}
+
+@media screen and (min-width: @phone) and (max-width: @tablet) {
+ // when .center-alignment-yes, see style-center.less
+ // the media query includes "min-width: @phone"
+ // because the phone layout includes the tablet layout unconditionally.
+ .center-alignment-no {
+ .results-tablet();
+ }
+}
+
+/* Misc */
+
+#main_results div#results.only_template_images {
+ margin: 1rem @results-tablet-offset 0 @results-tablet-offset;
+ display: grid;
+ grid-template:
+ "corrections" min-content
+ "answers" min-content
+ "sidebar" min-content
+ "urls" 1fr
+ "pagination" min-content
+ / 100%;
+ gap: 0;
+
+ #sidebar {
+ display: none;
+ }
+
+ #urls {
+ margin: 0;
+ display: flex;
+ flex-wrap: wrap;
+ }
+
+ #urls::after {
+ flex-grow: 10;
+ content: "";
+ }
+
+ #backToTop {
+ .ltr-left(auto);
+ .ltr-right(1rem);
+ }
+
+ #pagination {
+ .ltr-margin-right(4rem);
+ }
+}
+
+/*
+ phone layout
+*/
+
+@media screen and (max-width: @phone) {
+ // based on the tablet layout
+ .results-tablet();
+
+ html {
+ background-color: var(--color-base-background-mobile);
+ }
+
+ #main_results div#results {
+ grid-template-columns: 100%;
+ margin: 0 auto;
+ }
+
+ #links_on_top {
+ top: 1.4rem;
+ .ltr-right(10px);
+ }
+
+ #main_index #links_on_top {
+ top: 0.5rem;
+ .ltr-right(0.5rem);
+ }
+
+ #results {
+ margin: 0;
+ padding: 0;
+ }
+
+ #pagination {
+ margin: 2rem 1rem 0 1rem !important;
+ }
+
+ article[data-vim-selected] {
+ border: 1px solid var(--color-result-vim-arrow);
+ .rounded-corners;
+ }
+
+ .result {
+ background: var(--color-result-background);
+ border: 1px solid var(--color-result-background);
+ margin: 1rem 2%;
+ width: 96%;
+ .rounded-corners;
+ }
+
+ .result-images {
+ margin: 0;
+ height: @results-image-row-height-phone;
+ background: var(--color-base-background-mobile);
+ width: unset;
+ }
+
+ .infobox {
+ border: none !important;
+ background-color: var(--color-sidebar-background);
+ }
+
+ .numbered_pagination {
+ display: none;
+ }
+
+ .result-paper,
+ .result-packages {
+ .attributes {
+ display: block;
+
+ div {
+ display: block;
+
+ span {
+ display: inline;
+ }
+
+ span:first-child {
+ font-weight: bold;
+ }
+
+ span:nth-child(2) {
+ .ltr-margin-left(0.5rem);
+ }
+ }
+ }
+ }
+}
+
+/*
+ small-phone layout
+*/
+
+@media screen and (max-width: @small-phone) {
+ .result-videos {
+ img.thumbnail {
+ float: none !important;
+ }
+
+ .content {
+ overflow: inherit;
+ }
+ }
+}
+
+pre code {
+ white-space: pre-wrap;
+}