site: owner-only dashboard link in header, mobile menu and homepage (g then d from any page); /start skips the site chrome JS
All checks were successful
Deploy production / deploy (push) Successful in 2m56s
All checks were successful
Deploy production / deploy (push) Successful in 2m56s
- Header/footer moved to #lib/components/SiteChrome.svelte, returned by a universal +layout.ts load only for non-immersive pages, so /start and the book reader never download icon libraries, dropdowns or the bits-ui Sheet. /start: 36 -> 18 JS files, 133 -> 78 KB gzip. - Header logo is a hashed asset (inlined), so it is cached with the build. - inlineStyleThreshold 4096: tiny page/component CSS is inlined into the HTML. - Umami is not loaded on /start.
This commit is contained in:
12
src/routes/+layout.ts
Normal file
12
src/routes/+layout.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
import { isImmersive } from '#lib/chrome.js';
|
||||
import type { LayoutLoad } from './$types';
|
||||
|
||||
// The site header/footer (icon libraries, dropdowns, the bits-ui Sheet) live in SiteChrome,
|
||||
// imported only for pages that show them. Immersive pages such as the /start new-tab
|
||||
// dashboard never download that code. Universal loads may return components.
|
||||
export const load: LayoutLoad = async ({ data, url }) => ({
|
||||
...data,
|
||||
Chrome: isImmersive(url.pathname)
|
||||
? null
|
||||
: (await import('#lib/components/SiteChrome.svelte')).default
|
||||
});
|
||||
Reference in New Issue
Block a user