Page Setup
Put the assets and inline scripts in <head>, and the main bundle just before </body>. The ?ver= query is a cache-busting stamp: change it whenever a bundle changes.
The HTML tab loads critical CSS render-blocking — the simplest setup, and first paint already carries the real tokens so there's no flash. The inline gate is optional. For a non-blocking first paint (better FCP on slow networks), drop the inline <style> gate from the Critical Gate tab into <head> and swap the render-blocking critical <link> for the async version:
The gate hides above-the-fold chrome until styles land, so async loading never flashes.
Asset Files
What each bundle holds and how it loads.
| File | Contents | Loading |
|---|---|---|
nds.critical.min.css | Tokens, reset, fonts, hero, gate | Render-blocking (or async behind the gate) |
nds-main.min.css | All component and layout styles | Deferred; gates the page reveal |
nds-icons.min.css | UI icons (nds-icon) | Loaded after main CSS |
hgi-rounded-stroke-min.css | Content icon font (hgi hgi-stroke) | Loaded after main CSS |
nds-main.min.js | Loader and all component behavior | <script defer> before </body> |