diff --git a/code/services-application/search-service/resources/static/search/serp.scss b/code/services-application/search-service/resources/static/search/serp.scss index 089c3884..7152f662 100644 --- a/code/services-application/search-service/resources/static/search/serp.scss +++ b/code/services-application/search-service/resources/static/search/serp.scss @@ -1,33 +1,87 @@ -$nicotine-dark: #acae89; -$nicotine-light: #f8f8ee; -$fg-dark: #000; -$fg-light: #fff; -$highlight-dark: #2f4858; -$highlight-light: #3F5F6F; -$highlight-light2: #eee; -$border-color: #ccc; -$border-color2: #aaa; -$heading-fonts: serif; -$visited: #fcc; +// $nicotine-dark: #acae89; +// $nicotine-light: #f8f8ee; +// $fg-dark: #000; +// $fg-light: #fff; +// $highlight-dark: #2f4858; +// $highlight-light: #3F5F6F; +// $highlight-light2: #eee; +// $border-color: #ccc; +// $border-color2: #aaa; +// $heading-fonts: serif; +// $visited: #fcc; + +:root { + --clr-bg: #fff; + --clr-text: #000; // $fg-dark + + --clr-bg-page: #f8f8ee; // $nicotine-light + + --clr-bg-theme: #3F5F6F; // $highlight-light + --clr-text-theme: #fff; // $fg-light + + --clr-bg-highlight: #eee; // $highlight-light2 + --clr-text-highlight: #111111; + + --clr-bg-accent: #acae89; // $nicotine-dark + + --clr-text-visited: #fcc; // $visited + + --clr-border: #ccc; // $border-color + --clr-border-dim: #aaa; // $border-color2 + --clr-border-dark: #888; + + --clr-shadow: var(--clr-border); + + --font-family: sans-serif; + --font-size: 14px; + --font-family-heading: serif; // $heading-fonts +} + +@media (prefers-color-scheme: dark) { + :root { + --clr-bg: #2f2f2f; + --clr-text: #ddd; + --clr-bg-page: #161616; + + --clr-bg-theme: #111111; + --clr-text-theme: var(--clr-text); + + --clr-bg-highlight: #606060; + --clr-text-highlight: #eee; + + --clr-bg-accent: var(--clr-bg); + + --clr-border: #666666; + --clr-border-dim: #444444; + --clr-border-dark: #222222; + + --clr-shadow: #000; + } +} * { box-sizing: border-box; } + +html { + color-scheme: light dark; +} + h1 a, h2 a { - color: $fg-light; + color: var(--clr-text-theme); } h1 a:visited, h2 a:visited { - color: $visited; + color: var(--clr-text-visited); } progress { width: 10ch; } body { - background-color: $nicotine-light; - color: $fg-dark; - font-family: sans-serif; - font-size: 14px; + background-color: var(--clr-bg-page); + color: var(--clr-text); + font-family: var(--font-family); + font-size: var(--font-size); line-height: 1.6; margin-left: auto; margin-right: auto; @@ -99,28 +153,28 @@ body { li { display: inline; padding: 1ch; - background-color: $highlight-light2; + background-color: var(--clr-bg-highlight); a { text-decoration: none; display: inline-block; - color: #000; + color: var(--clr-text-highlight); } } li.current { - background-color: $highlight-light; + background-color: var(--clr-bg-theme); a { - color: #fff; + color: var(--clr-text-theme); } } } } .dialog { - border: 1px solid $border-color2; - box-shadow: 0 0 1ch $border-color; - background-color: #fff; + border: 1px solid var(--clr-border-dim); + box-shadow: 0 0 1ch var(--clr-shadow); + background-color: var(--clr-bg); padding: 1ch; h2 { @@ -129,22 +183,22 @@ body { font-weight: normal; padding: 0.5ch; font-size: 12pt; - background-color: $highlight-light; - color: #fff; + background-color: var(--clr-bg-theme); + color: var(--clr-text-theme); } } header { - background-color: $nicotine-dark; - color: #fff; - border: 1px solid #888; - box-shadow: 0 0 0.5ch #888; + background-color: var(--clr-bg-accent); + color: var(--clr-text); + border: 1px solid var(--clr-border-dark); + box-shadow: 0 0 0.5ch var(--clr-border-dark); margin-bottom: 1ch; nav { a { text-decoration: none; - color: #000; + color: var(--clr-text); padding: .5ch; display: inline-block; @@ -160,8 +214,8 @@ header { } a:hover, a:focus { - background: #2f4858; - color: #fff !important; + background: var(--clr-bg-theme); + color: var(--clr-text-theme); } } } @@ -210,11 +264,11 @@ header { @extend .heading; } - background-color: #fff; + background-color: var(--clr-); padding: 1ch; margin: 1ch; - border: 1px solid $border-color2; - box-shadow: 0 0 1ch $border-color; + border: 1px solid var(--clr-border-dim); + box-shadow: 0 0 1ch var(--clr-shadow); } section.cards { @@ -276,7 +330,8 @@ section.cards { .positions { box-shadow: 0 0 2px #888; - background-color: #e4e4e4; + background-color: var(--clr-bg-highlight); + color: var(--clr-text-highlight); padding: 2px; margin-right: -1ch; margin-left: 1ch; @@ -297,13 +352,13 @@ footer { h1 { font-weight: normal; - border-bottom: 4px solid $highlight-light; + border-bottom: 4px solid var(--clr-bg-theme); } h2 { font-size: 14pt; font-weight: normal; - border-bottom: 2px solid $highlight-dark; + border-bottom: 2px solid var(--clr-bg-theme); width: 80%; } @@ -312,9 +367,9 @@ footer { flex-basis: 40ch; flex-grow: 1.1; - background-color: #fff; - border-left: 1px solid $border-color2; - box-shadow: -1px -1px 5px $border-color; + background-color: var(--clr-bg); + border-left: 1px solid var(--clr-border-dim); + box-shadow: -1px -1px 5px var(--clr-shadow); padding-left: 1ch; padding-right: 1ch; @@ -329,18 +384,18 @@ footer { } .shadowbox { - box-shadow: 0 0 1ch $border-color2; - border: 1px solid $border-color; + box-shadow: 0 0 1ch var(--clr-shadow); + border: 1px solid var(--clr-border); } .heading { margin: 0; padding: 0.5ch; - background-color: $highlight-light; - border-bottom: 1px solid $border-color2; - font-family: $heading-fonts; + background-color: var(--clr-bg-theme); + border-bottom: 1px solid var(--clr-border-dim); + font-family: var(--font-family-heading); font-weight: normal; - color: $fg-light; + color: var(--clr-text-theme); font-size: 12pt; word-break: break-word; } @@ -440,7 +495,7 @@ footer { @extend .shadowbox; padding: 0.5ch; - background-color: $fg-light; + background-color: var(--clr-bg); display: grid; grid-template-columns: max-content 0 auto max-content; grid-gap: 0.5ch; @@ -452,9 +507,9 @@ footer { padding: 0.5ch; font-size: 14pt; word-break: keep-all; - background-color: $highlight-light; - color: $fg-light; - font-family: $heading-fonts; + background-color: var(--clr-bg-theme); + color: var(--clr-text-theme); + font-family: var(--font-family-heading); font-weight: normal; border: 1px solid; text-align: center; @@ -469,16 +524,13 @@ footer { font-family: monospace; font-size: 12pt; padding: 0.5ch; - border: 1px solid $border-color2; - background-color: $fg-light; - color: $fg-dark; + border: 1px solid var(--clr-border-dim); } input[type="submit"] { font-size: 12pt; - border: 1px solid $border-color2; - background-color: $fg-light; - color: $fg-dark; + border: 1px solid var(--clr-border-dim); + background-color: var(--clr-bg); } .suggestions { @@ -528,22 +580,22 @@ footer { #filters { @extend .shadowbox; margin-top: 1ch; - background-color: $fg-light; + background-color: var(--clr-bg); h2 { @extend .heading; - background-color: $highlight-light; + background-color: var(--clr-bg-theme); } h3 { @extend .heading; - background-color: $highlight-light2; + background-color: var(--clr-bg-highlight); font-family: sans-serif; color: #000; border-bottom: 1px solid #000; } hr { - border-top: 0.5px solid $border-color2; + border-top: 0.5px solid var(--clr-border-dim); border-bottom: none; } ul { @@ -553,17 +605,17 @@ footer { li { padding: 1ch; a { - color: $fg-dark; + color: inherit; text-decoration: none; } a:hover, a:focus { - border-bottom: 1px solid $highlight-light; + border-bottom: 1px solid var(--clr-bg-theme); } } li.current { - border-left: 4px solid $highlight-light; - background-color: $highlight-light2; + border-left: 4px solid var(--clr-bg-theme); + background-color: var(--clr-bg-highlight); a { margin-left: -4px; } @@ -576,46 +628,46 @@ footer { margin: 1ch 0 2ch 0; .url { - background-color: $highlight-light; + background-color: var(--clr-bg-theme); padding-left: 0.5ch; a { word-break: break-all; font-family: monospace; font-size: 8pt; - color: $fg-light; + color: var(--clr-text-theme); text-shadow: 0 0 1ch #000; // guarantee decent contrast across background colors } a:visited { - color: $visited; + color: var(--clr-text-visited); } } h2 { a { word-break: break-all; - color: $fg-dark; + color: var(--clr-text); text-decoration: none; } font-size: 12pt; @extend .heading; - background-color: $highlight-light2; + background-color:var(--clr-bg-highlight); } .description { - background-color: $fg-light; + background-color: var(--clr-bg); word-break: break-word; padding: 1ch; margin: 0; } ul.additional-results { - background-color: $fg-light; + background-color: var(--clr-bg); padding: 1ch; list-style: none; margin: 0; a { - color: $fg-dark; + color: inherit; } } } @@ -631,7 +683,7 @@ footer { display: flex; font-size: 10pt; padding: 1ch; - background-color: #eee; + background-color: var(--clr-bg-highlight); > * { margin-right: 1ch; @@ -645,7 +697,7 @@ footer { padding-left: 4px; } a { - color: #000; + color: var(--clr-text-highlight); } }