Use the real institutional logo for the header wordmark, not plain text
Deploy / deploy (push) Successful in 35s

The header link was just styled "UHHM" text, unrelated to the actual
brand mark - swapped in the institutional logo (the three-arch
"building" mark, matching infrastructure/assets/brand/institutional-*.svg
and Gitea's own homepage logo) instead. Dark-stroke variant only -
portal is a single permanent dark theme, no light mode to switch for.
Same explicit-route treatment the favicon files needed (the /*any
wildcard route would otherwise swallow the request before the static
file handler gets a chance).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Bendik Aagaard Lynghaug
2026-08-06 13:59:03 +02:00
co-authored by Claude Sonnet 5
parent 400316f622
commit bdab23d0f6
4 changed files with 19 additions and 7 deletions
+5
View File
@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="270" viewBox="-60 -95 300 270" fill="none" stroke="#fff" stroke-width="26" stroke-linecap="round">
<path d="M0,-34 V100 M84,-34 V100 M168,-34 V100"></path>
<path d="M0,42 A42,42 0 0 1 84,42 M84,42 A42,42 0 0 1 168,42"></path>
<path d="M-40,148 H208" stroke-width="18"></path>
</svg>

After

Width:  |  Height:  |  Size: 349 B

+1 -1
View File
@@ -368,7 +368,7 @@ fn Hero(title: String, description: String, show_yes: bool) -> impl IntoView {
})} })}
<div class="hero-copy"> <div class="hero-copy">
<a class="wordmark" href="/"> <a class="wordmark" href="/">
{SITE_NAME} <img src="/wordmark.svg" alt=SITE_NAME/>
</a> </a>
<h1>{title}</h1> <h1>{title}</h1>
<p>{description}</p> <p>{description}</p>
+2
View File
@@ -119,6 +119,7 @@ async fn main() -> anyhow::Result<()> {
); );
let favicon_light_path = format!("{}/favicon-light.svg", leptos_options.site_root); let favicon_light_path = format!("{}/favicon-light.svg", leptos_options.site_root);
let favicon_dark_path = format!("{}/favicon-dark.svg", leptos_options.site_root); let favicon_dark_path = format!("{}/favicon-dark.svg", leptos_options.site_root);
let wordmark_path = format!("{}/wordmark.svg", leptos_options.site_root);
let fonts_dir = format!("{}/fonts", leptos_options.site_root); let fonts_dir = format!("{}/fonts", leptos_options.site_root);
let app = Router::new() let app = Router::new()
@@ -133,6 +134,7 @@ async fn main() -> anyhow::Result<()> {
.nest_service("/fonts", ServeDir::new(fonts_dir)) .nest_service("/fonts", ServeDir::new(fonts_dir))
.route_service("/favicon-light.svg", ServeFile::new(favicon_light_path)) .route_service("/favicon-light.svg", ServeFile::new(favicon_light_path))
.route_service("/favicon-dark.svg", ServeFile::new(favicon_dark_path)) .route_service("/favicon-dark.svg", ServeFile::new(favicon_dark_path))
.route_service("/wordmark.svg", ServeFile::new(wordmark_path))
.leptos_routes_with_context( .leptos_routes_with_context(
&state, &state,
routes, routes,
+11 -6
View File
@@ -97,12 +97,17 @@ main.loading, main.not-found {
} }
.wordmark { .wordmark {
font-family: var(--heading); display: inline-flex;
font-size: 0.85rem; opacity: 0.85;
letter-spacing: 0.16em; transition: opacity 120ms;
text-transform: uppercase; }
color: var(--ink-dim);
text-decoration: none; .wordmark:hover { opacity: 1; }
.wordmark img {
height: 2.1rem;
width: auto;
display: block;
} }
.hero-copy h1 { font-size: 2.1rem; } .hero-copy h1 { font-size: 2.1rem; }