From 11c6f3e8f7c6eeb69e8b3e8cdd7ea8f199a4d575 Mon Sep 17 00:00:00 2001 From: Bendik Aagaard Lynghaug Date: Thu, 6 Aug 2026 12:11:17 +0200 Subject: [PATCH] Fix favicon (real icon, not an unrelated orange circle) + stack encouragements with the submit button favicon.svg was a plain solid circle, unrelated to the actual brand mark - replaced with the real single-arch icon (matching infrastructure/assets/icon-{light,dark}.svg), split into two prefers-color-scheme-scoped files rather than one SVG with an embedded @media query - the latter doesn't reliably re-evaluate via on Safari/iOS (confirmed by prior real-device testing on the Gitea side, see gitea-head.tmpl). Encouragements used to render right after the description, separated from the actual submit button by the whole features/requirements block - moved them into the same wrapper as the form, directly above the button, so reassurance text and the call to action read together. Co-Authored-By: Claude Sonnet 5 --- public/favicon-dark.svg | 3 +++ public/favicon-light.svg | 3 +++ public/favicon.svg | 3 --- src/app.rs | 38 +++++++++++++++++++++++--------------- src/main.rs | 6 ++++-- style/main.css | 10 +++++++++- 6 files changed, 42 insertions(+), 21 deletions(-) create mode 100644 public/favicon-dark.svg create mode 100644 public/favicon-light.svg delete mode 100644 public/favicon.svg diff --git a/public/favicon-dark.svg b/public/favicon-dark.svg new file mode 100644 index 0000000..3e2142d --- /dev/null +++ b/public/favicon-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/favicon-light.svg b/public/favicon-light.svg new file mode 100644 index 0000000..f23a3fb --- /dev/null +++ b/public/favicon-light.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/favicon.svg b/public/favicon.svg deleted file mode 100644 index a8bf722..0000000 --- a/public/favicon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/app.rs b/src/app.rs index 0044907..ea9d391 100644 --- a/src/app.rs +++ b/src/app.rs @@ -32,7 +32,13 @@ pub fn shell(options: LeptosOptions) -> impl IntoView { - + // Two prefers-color-scheme-scoped links, not one SVG with + // an embedded @media query - confirmed via real-device + // testing (see infrastructure's gitea-head.tmpl) that an + // SVG's own internal @media doesn't reliably re-evaluate + // once loaded via / on Safari/iOS. + + @@ -558,11 +564,6 @@ fn AlternativeCard(

{alternative.name.clone()}

{alternative.description.clone()}

- {e}

} - />
- - +
+ {e}

} + /> +
+ +
+
} })}
diff --git a/src/main.rs b/src/main.rs index b2e60a0..97d6997 100644 --- a/src/main.rs +++ b/src/main.rs @@ -117,7 +117,8 @@ async fn main() -> anyhow::Result<()> { "{}/{}", leptos_options.site_root, leptos_options.site_pkg_dir ); - let favicon_path = format!("{}/favicon.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 fonts_dir = format!("{}/fonts", leptos_options.site_root); let app = Router::new() @@ -130,7 +131,8 @@ async fn main() -> anyhow::Result<()> { .route("/automation/kv/{bucket}", get(content::automation_kv_handler)) .nest_service("/pkg", ServeDir::new(pkg_dir)) .nest_service("/fonts", ServeDir::new(fonts_dir)) - .route_service("/favicon.svg", ServeFile::new(favicon_path)) + .route_service("/favicon-light.svg", ServeFile::new(favicon_light_path)) + .route_service("/favicon-dark.svg", ServeFile::new(favicon_dark_path)) .leptos_routes_with_context( &state, routes, diff --git a/style/main.css b/style/main.css index c2a687b..7244669 100644 --- a/style/main.css +++ b/style/main.css @@ -178,6 +178,15 @@ main.loading, main.not-found { font-size: 0.9rem; color: var(--accent); font-style: italic; + margin: 0; +} + +.alt-cta { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 0.4rem; + margin-top: 1.4rem; } .features { display: grid; gap: 1.1rem; margin-top: 0.6rem; } @@ -272,7 +281,6 @@ input:focus, textarea:focus { .prosekit-editor p:last-child { margin-bottom: 0; } .alt-submit { - margin-top: 1.4rem; font-family: var(--sans); font-weight: 600; font-size: 0.95rem;