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} }
- />
-
- {button_label.clone()}
-
-
+
+ {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;