From e41c72d63cb52ee58008a08ab26f6d791d807285 Mon Sep 17 00:00:00 2001 From: Vaultnord Date: Sun, 30 Aug 2026 01:45:53 +0200 Subject: [PATCH] Synk fra arbeidsrepoet --- .../{nginx.conf => conf.d/default.conf} | 11 +- brand-proxy/static/brand.css | 112 +++++++++++++----- brand-proxy/static/logo-white.png | Bin 0 -> 18313 bytes brand-proxy/static/logo.png | Bin 0 -> 14960 bytes brand-proxy/static/ukjent.html | 29 +++++ brand-proxy/static/utilgjengelig.html | 28 +++++ 6 files changed, 150 insertions(+), 30 deletions(-) rename brand-proxy/{nginx.conf => conf.d/default.conf} (82%) create mode 100644 brand-proxy/static/logo-white.png create mode 100644 brand-proxy/static/logo.png create mode 100644 brand-proxy/static/ukjent.html create mode 100644 brand-proxy/static/utilgjengelig.html diff --git a/brand-proxy/nginx.conf b/brand-proxy/conf.d/default.conf similarity index 82% rename from brand-proxy/nginx.conf rename to brand-proxy/conf.d/default.conf index ae7d90c..5d695cb 100644 --- a/brand-proxy/nginx.conf +++ b/brand-proxy/conf.d/default.conf @@ -13,8 +13,8 @@ map $http_upgrade $connection_upgrade { # Første ledd i vertsnavnet er kundens slug: ethica.vaultnord.no -> ethica map $host $tenant { - default ""; - "~^(?[a-z0-9-]+)\." $slug; + default ""; + "~^(?[a-z0-9-]+)\.vaultnord\.no$" $slug; } server { @@ -28,6 +28,13 @@ server { # dynamisk, og nginx ville nektet å starte om en tenant var nede. resolver 127.0.0.11 valid=10s ipv6=off; + # Er hvelvet nede - stoppet, under oppdatering, eller kunden er satt på pause + # - skal brukeren møte noe som forklarer, ikke nginx sin 502-side. + error_page 502 503 504 =503 /_vaultnord/utilgjengelig.html; + # Gjelder bare våre egne 404-er (ukjent vertsnavn). 404 fra hvelvet selv + # slipper gjennom urørt - proxy_intercept_errors er av. + error_page 404 /_vaultnord/ukjent.html; + location = /_vaultnord/health { access_log off; return 200 "ok\n"; diff --git a/brand-proxy/static/brand.css b/brand-proxy/static/brand.css index 242c150..63da797 100644 --- a/brand-proxy/static/brand.css +++ b/brand-proxy/static/brand.css @@ -1,33 +1,90 @@ /* Vaultnord-preg på hvelvet. - Legges oppå Bitwarden-klienten utenfra, så den overlever en oppgradering av - hvelvet. Til gjengjeld kan klassenavnene endre seg oppstrøms - går noe i - stykker visuelt etter en oppdatering, er det her du ser først. */ + Legges oppå Bitwarden-klienten utenfra av brand-proxyen, så den overlever en + oppgradering av hvelvet. Prisen er at vi henger på klassenavn og CSS-variabler + fra web-klienten: ser noe rart ut etter en oppdatering, er det her du ser + først. Til gjengjeld er fiksen en CSS-linje, ikke en byggejobb. -:root { - --vn-turkis: #3dd2cc; - --vn-turkis-mork: #17807d; + Variabelnavnene under er hentet fra web-klientens egen styles.css, der de er + definert per tema som RGB-tripler uten rgb(). */ + +/* --- logo ------------------------------------------------------------ */ +/* To steder: den statiske i index.html før appen starter, og den Angular + tegner etterpå som inline SVG i . Begge må tas. */ +.theme_light img.new-logo-themed { content: url(/_vaultnord/logo.png) !important; } +.theme_dark img.new-logo-themed { content: url(/_vaultnord/logo-white.png) !important; } +img.new-logo-themed { width: 190px !important; height: auto !important; } + +bit-landing-header a bit-svg, +bit-landing-header a svg { + display: none !important; +} +bit-landing-header a { + display: block !important; + width: 190px; + height: 42px; + background: url(/_vaultnord/logo-white.png) left center / contain no-repeat; +} +.theme_light bit-landing-header a { + background-image: url(/_vaultnord/logo.png); } -/* Bitwardens egen aksentfarge, der klienten bruker variabler. */ -html, body.layout_frontend { +/* --- farger ---------------------------------------------------------- */ +/* Klienten bygger alt på en fargetrapp (--color-brand-050 … 950) som de + semantiske variablene peker inn i: knapper bruker --color-bg-brand-strong, + som igjen er var(--color-brand-800). Bytter vi trappa, følger resten med - + knapper, lenker, fokusringer - uten at vi må jakte enkeltklasser. */ +.theme_light, .theme_dark, :root { + --color-brand-050: #f0faf9; + --color-brand-100: #d7f2f0; + --color-brand-200: #b0e6e2; + --color-brand-300: #7ed6d1; + --color-brand-400: #47c2bc; + --color-brand-500: #2aa9a4; + --color-brand-600: #1f918d; + --color-brand-700: #17807d; + --color-brand-800: #12666a; + --color-brand-900: #0e4e52; + --color-brand-950: #082f33; + + /* Den gamle primary-trappa lever fortsatt enkelte steder. */ + --color-primary-100: 227 241 240; + --color-primary-300: 42 169 164; --color-primary-600: 23 128 125; --color-primary-700: 18 102 106; } +.theme_dark { + /* På mørk bunn er trappa speilvendt i klienten: bg-brand-strong peker på + brand-200, ikke 800. Da må de lyse trinnene være de mettede. */ + --color-brand-050: #082f33; + --color-brand-100: #0e4e52; + --color-brand-200: #3dd2cc; + --color-brand-300: #7ed6d1; + --color-brand-400: #3dd2cc; + --color-brand-500: #2aa9a4; + --color-brand-600: #1f918d; + --color-brand-700: #17807d; + --color-brand-800: #3dd2cc; + --color-brand-900: #0e4e52; + --color-brand-950: #082f33; -/* Innloggingssiden: rolig nordisk bunn i stedet for den blå gradienten. */ -body.layout_frontend { - background: linear-gradient(180deg, #f3f6fa 0%, #e8edf4 100%) !important; + --color-primary-100: 20 60 62; + --color-primary-300: 42 169 164; + --color-primary-600: 61 210 204; + --color-primary-700: 143 188 187; } -.bwi-shield::before, -.logo-image { - filter: hue-rotate(140deg) saturate(0.9); +/* --- illustrasjoner -------------------------------------------------- */ +/* Safen på innloggingssiden er en inline SVG med klientens blåtoner. Vi kan + ikke fargelegge enkeltbaner utenfra uten å kjenne dem, men et hue-skift på + hele figuren lander den i samme familie som resten. */ +svg:has(.tw-fill-illustration-logo) { + filter: hue-rotate(142deg) saturate(.8); } -button.btn-primary, -.btn.btn-primary { - background-color: var(--vn-turkis-mork) !important; - border-color: var(--vn-turkis-mork) !important; +/* --- bunntekst med kildekodelenke ------------------------------------ */ +/* Plass til den, ellers legger den seg oppå klientens egen bunntekst. */ +body { + padding-bottom: 42px !important; } #vaultnord-footer { @@ -35,21 +92,20 @@ button.btn-primary, bottom: 0; left: 0; right: 0; - padding: 6px 12px; - font: 12px/1.4 ui-sans-serif, system-ui, sans-serif; + padding: 7px 12px; + font: 12px/1.4 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: #55617a; - background: rgba(243, 246, 250, .94); + background: #f3f6fa; border-top: 1px solid #dbe2ec; text-align: center; z-index: 2147483000; } #vaultnord-footer a { color: #17807d; } -@media (prefers-color-scheme: dark) { - #vaultnord-footer { - color: #9aa5b8; - background: rgba(46, 52, 64, .94); - border-top-color: #434c5e; - } - #vaultnord-footer a { color: #8fbcbb; } +.theme_dark #vaultnord-footer, +body.theme_dark #vaultnord-footer { + color: #9aa5b8; + background: #202733; + border-top-color: #434c5e; } +.theme_dark #vaultnord-footer a { color: #8fbcbb; } diff --git a/brand-proxy/static/logo-white.png b/brand-proxy/static/logo-white.png new file mode 100644 index 0000000000000000000000000000000000000000..43ee4fe066e9bdeda2e4c1949a6cd52e668e2a5e GIT binary patch literal 18313 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 LtDnm{r-UW|@=^3< literal 0 HcmV?d00001 diff --git a/brand-proxy/static/logo.png b/brand-proxy/static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8c3839511ce3ff546f01e5485f87041f10ddd90e GIT binary patch literal 14960 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 Q`)!mjRkc(qlq^5~Km2ga<^TWy literal 0 HcmV?d00001 diff --git a/brand-proxy/static/ukjent.html b/brand-proxy/static/ukjent.html new file mode 100644 index 0000000..55ca4cc --- /dev/null +++ b/brand-proxy/static/ukjent.html @@ -0,0 +1,29 @@ + + + + + +Ukjent adresse — Vaultnord + + + +
+ +

Her er det ingenting

+

Adressen finnes ikke hos oss. Sjekk at du har skrevet den riktig — hvelvet + til bedriften din ligger på firmanavn.vaultnord.no.

+

Usikker? vaultnord.no eller + post@vaultnord.no.

+
+ + diff --git a/brand-proxy/static/utilgjengelig.html b/brand-proxy/static/utilgjengelig.html new file mode 100644 index 0000000..559b2bf --- /dev/null +++ b/brand-proxy/static/utilgjengelig.html @@ -0,0 +1,28 @@ + + + + + +Hvelvet er utilgjengelig — Vaultnord + + + +
+ +

Hvelvet er midlertidig utilgjengelig

+

Passordene deres er trygge og uendret — hvelvet svarer bare ikke akkurat nå.

+

Har dette vart en stund, ta kontakt på + post@vaultnord.no, så finner vi ut av det.

+
+ +