diff --git a/documentation/docs/02-template-syntax/01-component-fundamentals.md b/documentation/docs/02-template-syntax/01-component-fundamentals.md
index c3042be7d7..5db2045436 100644
--- a/documentation/docs/02-template-syntax/01-component-fundamentals.md
+++ b/documentation/docs/02-template-syntax/01-component-fundamentals.md
@@ -29,7 +29,7 @@ A `
```
-> Note that we can't do `{cart.empty}` since `cart` is `undefined` when the button is first rendered and throws an error.
+> [!NOTE] Note that we can't do `{cart.empty}` since `cart` is `undefined` when the button is first rendered and throws an error.
## bind:_property_ for components
diff --git a/documentation/docs/02-template-syntax/09-special-elements.md b/documentation/docs/02-template-syntax/09-special-elements.md
index 2b41d55fe4..860ddcd632 100644
--- a/documentation/docs/02-template-syntax/09-special-elements.md
+++ b/documentation/docs/02-template-syntax/09-special-elements.md
@@ -110,7 +110,7 @@ All except `scrollX` and `scrollY` are readonly.
```
-> Note that the page will not be scrolled to the initial value to avoid accessibility issues. Only subsequent changes to the bound variable of `scrollX` and `scrollY` will cause scrolling. However, if the scrolling behaviour is desired, call `scrollTo()` in `onMount()`.
+> [!NOTE] Note that the page will not be scrolled to the initial value to avoid accessibility issues. Only subsequent changes to the bound variable of `scrollX` and `scrollY` will cause scrolling. However, if the scrolling behaviour is desired, call `scrollTo()` in `onMount()`.
## ``
diff --git a/documentation/docs/03-runes/01-state.md b/documentation/docs/03-runes/01-state.md
index 7bcff2c968..1ab89fa239 100644
--- a/documentation/docs/03-runes/01-state.md
+++ b/documentation/docs/03-runes/01-state.md
@@ -41,7 +41,7 @@ class Todo {
}
```
-> In this example, the compiler transforms `done` and `text` into `get`/`set` methods on the class prototype referencing private fields
+> [!NOTE] In this example, the compiler transforms `done` and `text` into `get`/`set` methods on the class prototype referencing private fields
Objects and arrays are made deeply reactive by wrapping them with [`Proxies`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy). What that means is that in the following example, we can mutate the `entries` object and the UI will still update - but only the list item that is actually changed will rerender:
@@ -60,7 +60,7 @@ Objects and arrays are made deeply reactive by wrapping them with [`Proxies`](ht
```
-> Only POJOs (plain old JavaScript objects) are made deeply reactive. Reactivity will stop at class boundaries and leave those alone
+> [!NOTE] Only POJOs (plain old JavaScript objects) are made deeply reactive. Reactivity will stop at class boundaries and leave those alone
## `$state.raw`
diff --git a/documentation/docs/03-runes/02-side-effects.md b/documentation/docs/03-runes/02-side-effects.md
index 3d425f8ee3..583d3c9bfa 100644
--- a/documentation/docs/03-runes/02-side-effects.md
+++ b/documentation/docs/03-runes/02-side-effects.md
@@ -164,7 +164,7 @@ In general, `$effect` is best considered something of an escape hatch — useful
```
-> For things that are more complicated than a simple expression like `count * 2`, you can also use [`$derived.by`](#$derived-by).
+> [!NOTE] For things that are more complicated than a simple expression like `count * 2`, you can also use [`$derived.by`](#$derived-by).
You might be tempted to do something convoluted with effects to link one value to another. The following example shows two inputs for "money spent" and "money left" that are connected to each other. If you update one, the other should update accordingly. Don't use effects for this ([demo](/#H4sIAAAAAAAACpVRy2rDMBD8lWXJwYE0dg-9KFYg31H3oNirIJBlYa1DjPG_F8l1XEop9LgzOzP7mFAbSwHF-4ROtYQCL97jAXn0sQh3skx4wNANfR2RMtS98XyuXMWWGLhjZUHCa1GcVix4cgwSdoEVU1bsn4wl_Y1I2kS6inekNdWcZXuQZ5giFDWpfwl5WYyT2fynbB1g1UWbTVbm2w6utOpKNq1TGucHhri6rLBX7kYVwtW4RtyVHUhOyXeGVj3klLxnyJP0i8lXNJUx6en-v6A48K85kTimpi0sYj-yAo-Wlh9FcL1LY4K3ahSgLT1OC3ZTXkBxfKN2uVC6T5LjAduuMdpQg4L7geaP-RNHPuClMQIAAA==)):
diff --git a/documentation/docs/04-runtime/01-stores.md b/documentation/docs/04-runtime/01-stores.md
index a6c3be06c3..d7fb4f552f 100644
--- a/documentation/docs/04-runtime/01-stores.md
+++ b/documentation/docs/04-runtime/01-stores.md
@@ -250,7 +250,7 @@ readableStore.set(2); // ERROR
Generally, you should read the value of a store by subscribing to it and using the value as it changes over time. Occasionally, you may need to retrieve the value of a store to which you're not subscribed. `get` allows you to do so.
-> This works by creating a subscription, reading the value, then unsubscribing. It's therefore not recommended in hot code paths.
+> [!NOTE] This works by creating a subscription, reading the value, then unsubscribing. It's therefore not recommended in hot code paths.
```ts
// @filename: ambient.d.ts
diff --git a/documentation/docs/04-runtime/02-context.md b/documentation/docs/04-runtime/02-context.md
index 8a8b9d97d0..0833d3d9bc 100644
--- a/documentation/docs/04-runtime/02-context.md
+++ b/documentation/docs/04-runtime/02-context.md
@@ -62,7 +62,7 @@ The context is then available to children of the component (including slotted co
- the state is not global, it's scoped to the component. That way it's safe to render your components on the server and not leak state
- it's clear that the state is not global but rather scoped to a specific component tree and therefore can't be used in other parts of your app
-> `setContext`/`getContext` must be called during component initialisation.
+> [!NOTE] `setContext`/`getContext` must be called during component initialisation.
Context is not inherently reactive. If you need reactive values in context then you can pass a `$state` object into context, whos properties _will_ be reactive.
diff --git a/documentation/docs/04-runtime/03-lifecycle-hooks.md b/documentation/docs/04-runtime/03-lifecycle-hooks.md
index b4af4e5df7..f08cbd910e 100644
--- a/documentation/docs/04-runtime/03-lifecycle-hooks.md
+++ b/documentation/docs/04-runtime/03-lifecycle-hooks.md
@@ -41,7 +41,7 @@ If a function is returned from `onMount`, it will be called when the component i
```
-> This behaviour will only work when the function passed to `onMount` _synchronously_ returns a value. `async` functions always return a `Promise`, and as such cannot _synchronously_ return a function.
+> [!NOTE] This behaviour will only work when the function passed to `onMount` _synchronously_ returns a value. `async` functions always return a `Promise`, and as such cannot _synchronously_ return a function.
## `onDestroy`
diff --git a/documentation/docs/05-misc/01-debugging.md b/documentation/docs/05-misc/01-debugging.md
index f07baa13fd..00659a1e0d 100644
--- a/documentation/docs/05-misc/01-debugging.md
+++ b/documentation/docs/05-misc/01-debugging.md
@@ -48,7 +48,7 @@ A convenient way to find the origin of some change is to pass `console.trace` to
$inspect(stuff).with(console.trace);
```
-> `$inspect` only works during development. In a production build it becomes a noop.
+> [!NOTE] `$inspect` only works during development. In a production build it becomes a noop.
## @debug
diff --git a/documentation/docs/05-misc/02-testing.md b/documentation/docs/05-misc/02-testing.md
index a16f94c929..e159b3818b 100644
--- a/documentation/docs/05-misc/02-testing.md
+++ b/documentation/docs/05-misc/02-testing.md
@@ -99,7 +99,7 @@ test('Effect', () => {
It is possible to test your components in isolation using Vitest.
-> Before writing component tests, think about whether you actually need to test the component, or if it's more about the logic _inside_ the component. If so, consider extracting out that logic to test it in isolation, without the overhead of a component
+> [!NOTE] Before writing component tests, think about whether you actually need to test the component, or if it's more about the logic _inside_ the component. If so, consider extracting out that logic to test it in isolation, without the overhead of a component
To get started, install jsdom (a library that shims DOM APIs):
diff --git a/documentation/docs/05-misc/03-typescript.md b/documentation/docs/05-misc/03-typescript.md
index 10f0dd30eb..5e1aed4d97 100644
--- a/documentation/docs/05-misc/03-typescript.md
+++ b/documentation/docs/05-misc/03-typescript.md
@@ -75,7 +75,7 @@ In both cases, a `svelte.config.js` with `vitePreprocess` will be added. Vite/Sv
If you're using tools like Rollup or Webpack instead, install their respective Svelte plugins. For Rollup that's [rollup-plugin-svelte](https://github.com/sveltejs/rollup-plugin-svelte) and for Webpack that's [svelte-loader](https://github.com/sveltejs/svelte-loader). For both, you need to install `typescript` and `svelte-preprocess` and add the preprocessor to the plugin config (see the respective READMEs for more info). If you're starting a new project, you can also use the [rollup](https://github.com/sveltejs/template) or [webpack](https://github.com/sveltejs/template-webpack) template to scaffold the setup from a script.
-> If you're starting a new project, we recommend using SvelteKit or Vite instead
+> [!NOTE] If you're starting a new project, we recommend using SvelteKit or Vite instead
## Typing `$props`