From c3d9a23832995939e2bf31df6e5c1d5483cff514 Mon Sep 17 00:00:00 2001 From: Yannic Date: Tue, 30 Sep 2025 15:57:12 +0200 Subject: [PATCH 1/3] replace inline styles with style tag --- packages/kit/src/core/sync/write_root.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/core/sync/write_root.js b/packages/kit/src/core/sync/write_root.js index eb9c61885c9c..ebddcf23752b 100644 --- a/packages/kit/src/core/sync/write_root.js +++ b/packages/kit/src/core/sync/write_root.js @@ -137,12 +137,27 @@ export function write_root(manifest_data, output) { ${pyramid} {#if mounted} -
+
{#if navigated} {title} {/if}
{/if} + + ` ); From a74fe8c111b2ed39df0bc2f1e3727cce97ae6be2 Mon Sep 17 00:00:00 2001 From: Tee Ming Date: Tue, 27 Jan 2026 01:37:38 +0800 Subject: [PATCH 2/3] account for root component's stylesheets --- packages/kit/src/exports/vite/build/build_server.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/kit/src/exports/vite/build/build_server.js b/packages/kit/src/exports/vite/build/build_server.js index 6a1e13fcc2b1..6735d4f3816c 100644 --- a/packages/kit/src/exports/vite/build/build_server.js +++ b/packages/kit/src/exports/vite/build/build_server.js @@ -76,6 +76,16 @@ export async function build_server_nodes( static_exports }); + /** @type {string[] | undefined} */ + let root_stylesheets; + if (client_manifest) { + root_stylesheets = find_deps( + client_manifest, + `${normalizePath(kit.outDir)}/generated/client-optimized/app.js`, + false + ).stylesheets; + } + for (let i = 0; i < manifest_data.nodes.length; i++) { const node = manifest_data.nodes[i]; @@ -134,7 +144,6 @@ export async function build_server_nodes( ) { const entry_path = `${normalizePath(kit.outDir)}/generated/client-optimized/nodes/${i}.js`; const entry = find_deps(client_manifest, entry_path, true); - // eagerly load client stylesheets and fonts imported by the SSR-ed page to avoid FOUC. // However, if it is not used during SSR (not present in the server manifest), // then it can be lazily loaded in the browser. @@ -152,7 +161,7 @@ export async function build_server_nodes( } /** @type {Set} */ - const eager_css = new Set(); + const eager_css = new Set(root_stylesheets); /** @type {Set} */ const eager_assets = new Set(); From 999c20b1447cbf8e609f435a7d03813e2fecf810 Mon Sep 17 00:00:00 2001 From: Tee Ming Date: Tue, 27 Jan 2026 01:54:45 +0800 Subject: [PATCH 3/3] don't add root stylesheet for inline builds --- packages/kit/src/exports/vite/build/build_server.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/kit/src/exports/vite/build/build_server.js b/packages/kit/src/exports/vite/build/build_server.js index 6735d4f3816c..5effe652707a 100644 --- a/packages/kit/src/exports/vite/build/build_server.js +++ b/packages/kit/src/exports/vite/build/build_server.js @@ -34,7 +34,12 @@ export async function build_server_nodes( /** @type {Map} */ const stylesheets_to_inline = new Map(); - if (server_bundle && client_chunks && kit.inlineStyleThreshold > 0) { + if ( + server_bundle && + client_chunks && + kit.inlineStyleThreshold > 0 && + output_config.bundleStrategy === 'split' + ) { const client = get_stylesheets(client_chunks); const server = get_stylesheets(Object.values(server_bundle)); @@ -78,7 +83,7 @@ export async function build_server_nodes( /** @type {string[] | undefined} */ let root_stylesheets; - if (client_manifest) { + if (client_manifest && output_config.bundleStrategy === 'split') { root_stylesheets = find_deps( client_manifest, `${normalizePath(kit.outDir)}/generated/client-optimized/app.js`,