## Demo: hydration
### Hydration.svelte
```svelte
Pure SSR — no client JavaScript is shipped for this component. It renders on the server and is inert in the browser. Best for content that never needs interactivity. Eager hydration — the island ships and boots immediately when the page loads. Use for above-the-fold UI that needs to be interactive right away.
Lazy hydration — the bundle and CSS are only fetched once the island scrolls into view (via an ↓ Scroll down ↓
You can pass
Server island — the component is not in the initial page. A placeholder ships, then the browser fetches the rendered HTML on demand. Pair with hydrated child components
to also hydrate parts of the island after it loads.
No directive
mochi:hydrate
mochi:hydrate:visible
IntersectionObserver). The card below stays inert until you
scroll it into the viewport.
mochi:hydrate:visible
IntersectionObserver options — here
rootMargin: '200px'
starts hydration a bit before the island is actually in view.
mochi:defer
This button won't work since the component is not hydrated!
{/if} {@render children?.()}