From 5e0eeb79c63cf0e5791c0d907c5c80bee2ae286c Mon Sep 17 00:00:00 2001 From: artheru Date: Wed, 10 Jun 2026 12:09:50 +0800 Subject: [PATCH] perf: paint branded loading screen from static HTML (0.85.0) the
was empty until the JS bundle downloaded and React mounted, so the page was blank for ~2.4s (FCP). put the branded loading screen (pulsing gem + 'amerc') directly in the static HTML, with its critical CSS inlined in , so it paints as soon as the CSS loads instead of waiting for JS. - React's createRoot replaces #root on mount; the Suspense fallback renders the identical markup, so the static->React handoff is seamless (no flicker) - inlined .app-loading critical CSS mirrors styles.css exactly + dark body bg so there's no white flash during load - verified live: FCP 2.4s -> 1.4s, performance 86 -> 90, TBT 50 -> 0ms; app mounts cleanly, static loader replaced, 0 console errors --- index.html | 16 ++++++++++++++-- package.json | 2 +- src/Scene2D.jsx | 2 +- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index f5f5742..68b7a4f 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,20 @@ + - + @@ -56,7 +68,7 @@ -
+
amerc
diff --git a/package.json b/package.json index 295de07..f789090 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "amerc-site", - "version": "0.84.0-quality", + "version": "0.85.0-fastpaint", "private": true, "type": "module", "scripts": { diff --git a/src/Scene2D.jsx b/src/Scene2D.jsx index b5eac90..eaed03d 100644 --- a/src/Scene2D.jsx +++ b/src/Scene2D.jsx @@ -10,7 +10,7 @@ import { api } from './api.js'; const Menu = ({ size = 20 }) => (); const X = ({ size = 20 }) => (); -const RELEASE = '0.84.0-quality'; +const RELEASE = '0.85.0-fastpaint'; const NAV = [ { id: 'home', label: 'Tavern' },