From 23cccf5f5384c9b315f9e2949b4f015d15556ffe Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Wed, 19 Aug 2026 09:17:37 -0700 Subject: [PATCH] fix(homepage): force the canvas clear of the cached wallpaper div Removing the `background:` block from settings.yaml was not sufficient. Homepage server-renders the wallpaper as an INLINE style on `
` and Next.js caches the rendered page, so the aurora survived both the config removal and a container restart. Only a full recreate clears that cache, and recreating this container costs an hour of missing tab bar and i18n before it heals itself. Adding `#background` to the canvas reset is deterministic and immediate, and it also keeps the canvas correct if the setting is ever re-added by accident. The existing selector missed it: the DOM is body > div#__next > div#background, so `body > div` matched the Next.js root, not the wallpaper layer. Verified live rather than locally: the served page now reports no background image, with all three canonical faces loaded and the group eyebrows rendering as JetBrains Mono in Australis cyan. --- stacks/homepage/conf/custom.css | 11 +++++++++++ stacks/homepage/theme/australis.css.in | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/stacks/homepage/conf/custom.css b/stacks/homepage/conf/custom.css index 5422f8c..7606e02 100644 --- a/stacks/homepage/conf/custom.css +++ b/stacks/homepage/conf/custom.css @@ -130,11 +130,22 @@ html, body, #page_wrapper, +#background, body > div { background-color: var(--bg-0) !important; background-image: none !important; } +/* `#background` above is load-bearing, not defensive tidiness. Homepage + server-renders the wallpaper as an INLINE style on `
`, + and Next.js caches that rendered page — so removing the `background:` block + from settings.yaml is not enough on its own. A restart does not clear it; + only a full recreate does, and recreating this container has its own cost + (the tab bar and i18n go missing for up to an hour and then heal on their + own). Enforcing it in the stylesheet is deterministic, immediate, and also + means the canvas stays correct if the setting is ever re-added by accident. + The deliberate absence of the config block is documented in settings.yaml. */ + body { font-family: var(--font-sans) !important; color: var(--fg-1); diff --git a/stacks/homepage/theme/australis.css.in b/stacks/homepage/theme/australis.css.in index 795224d..13b3a99 100644 --- a/stacks/homepage/theme/australis.css.in +++ b/stacks/homepage/theme/australis.css.in @@ -110,11 +110,22 @@ html, body, #page_wrapper, +#background, body > div { background-color: var(--bg-0) !important; background-image: none !important; } +/* `#background` above is load-bearing, not defensive tidiness. Homepage + server-renders the wallpaper as an INLINE style on `
`, + and Next.js caches that rendered page — so removing the `background:` block + from settings.yaml is not enough on its own. A restart does not clear it; + only a full recreate does, and recreating this container has its own cost + (the tab bar and i18n go missing for up to an hour and then heal on their + own). Enforcing it in the stylesheet is deterministic, immediate, and also + means the canvas stays correct if the setting is ever re-added by accident. + The deliberate absence of the config block is documented in settings.yaml. */ + body { font-family: var(--font-sans) !important; color: var(--fg-1);