---
name: svelte-runes
description: |
Provides Svelte 5 runes guidance for reactive state, props, derived values, effects, and
attachments. Use when implementing reactivity, managing component props, computing derived
state, handling side effects, or migrating from Svelte 4. Triggers on "reactive state",
"component props", "computed value", "$state", "$derived", "$effect", "$props", or "Svelte 5
migration". Works with .svelte files using $state, $derived, $effect, $props, $bindable runes
and prevents common reactivity mistakes and Svelte 4/5 syntax mixing.
---
# IMPORTANT: Keep description on ONE line for Claude Code compatibility
# prettier-ignore
# Svelte Runes
## Quick Start
**Which rune?** Props: `$props()` | Bindable: `$bindable()` |
Computed: `$derived()` | Side effect: `$effect()` | State: `$state()`
**Key rules:** Runes are top-level only. $derived can be overridden
(use `const` for read-only). Don't mix Svelte 4/5 syntax.
Objects/arrays are deeply reactive by default.
## Example
```svelte
```
## Reference Files
- [reactivity-patterns.md](references/reactivity-patterns.md) - When
to use each rune
- [migration-gotchas.md](references/migration-gotchas.md) - Svelte 4→5
translation
- [component-api.md](references/component-api.md) - $props, $bindable
patterns
- [snippets-vs-slots.md](references/snippets-vs-slots.md) - New
snippet syntax
- [common-mistakes.md](references/common-mistakes.md) - Anti-patterns
with fixes
- [attachments.md](references/attachments.md) - @attach replaces use:
actions
## Notes
- Use `onclick` not `on:click`, `{@render children()}` in layouts
- `$derived` can be reassigned (5.25+) - use `const` for read-only
- **Last verified:** 2025-01-11