Home › All rules › Community › Svelte 5 Vs Svelte 4 Cursor Rules

Svelte 5 Vs Svelte 4 Cursor Rules

Cursor rules for comparing Svelte 5 and Svelte 4 development.

CursorSvelteKitCommunity (CC0)

How to use

Save this as .cursor/rules/svelte-5-vs-svelte-4-cursorrules-prompt-file.mdc in your project, commit it, and Cursor will load it. Review it first: community files can be opinionated or out of date.

Note: Review and test before use. Provided as is, without warranty. See Terms.

.cursor/rules/svelte-5-vs-svelte-4-cursorrules-prompt-file.mdcDownload  
---
description: "Cursor rules for comparing Svelte 5 and Svelte 4 development."
globs: **/*
alwaysApply: false
---
I'm using svelte 5 instead of svelte 4 here is an overview of the changes.
# .cursorrules for Svelte 5

## Overview of Changes

Svelte 5 introduces runes, a set of advanced primitives for controlling reactivity. The runes replace certain non-runes features and provide more explicit control over state and effects.

Snippets, along with render tags, help create reusable chunks of markup inside your components, reducing duplication and enhancing maintainability.

## Event Handlers in Svelte 5

In Svelte 5, event handlers are treated as standard HTML properties rather than Svelte-specific directives, simplifying their use and integrating them more closely with the rest of the properties in the component.

### Svelte 4 vs. Svelte 5:

**Before (Svelte 4):**
```html
<script>
  let count = 0;
  $: double = count * 2;
  $: {
    if (count > 10) alert('Too high!');
  }
</script>
<button on:click={() => count++}> {count} / {double}</button>
```

**After (Svelte 5):**
```html
<script>
  // Define state with runes
  let count = $state(0);
  
  // Option 1: Using $derived for computed values
  let double = $derived(count * 2);
  
  // Reactive effects using runes
  $effect(() => {
    if (count > 10) alert('Too high!');
  });
</script>

<!-- Standard HTML event attributes instead of Svelte directives -->
<button onclick={() => count++}>
  {count} / {double}
</button>

<!-- Alternatively, you can compute values inline -->
<!-- <button onclick={() => count++}>
  {count} / {count * 2}
</button> -->
```

## Key Differences:

1. **Reactivity is Explicit**: 
   - Svelte 5 uses `$state()` to explicitly mark reactive variables
   - `$derived()` replaces `$:` for computed values 
   - `$effect()` replaces `$: {}` blocks for side effects

2. **Event Handling is Standardized**:
   - Svelte 4: `on:click={handler}`
   - Svelte 5: `onclick={handler}`

3. **Runes are Compiler Syntax**:
   - Do not import `$state`, `$derived`, `$effect`, `$props`, `$bindable`, or `$inspect`.
   - Import only regular Svelte utilities that require imports, such as `tick`, `untrack`, `mount`, or `unmount`.

4. **No More Event Modifiers**:
   - Svelte 4: `on:click|preventDefault={handler}`
   - Svelte 5: `onclick={e => { e.preventDefault(); handler(e); }}`

This creates clearer, more maintainable components compared to Svelte 4's previous syntax by making reactivity explicit and using standardized web platform features.

More: SvelteKit rules · all community rules

Related rules

Svelte 5 runes Windsurf rules

Windsurf rules for Svelte 5 components with runes ($state, $derived, $props) in SvelteKit 2 apps.

WindsurfSvelteKit

SvelteKit AGENTS.md

AGENTS.md for SvelteKit 2 + Svelte 5 (runes) apps with TypeScript.

AGENTS.mdSvelteKit

Svelte Cursor Rules

Svelte best practices and patterns for modern web applications

CursorSvelteKitCommunity (CC0)

Sveltekit Restful Api Tailwind Css Cursor Rules

Cursor rules for SvelteKit development with RESTful API and Tailwind CSS integration.

CursorSvelteKitCommunity (CC0)

Sveltekit Tailwindcss TypeScript Cursor Rules

Cursor rules for SvelteKit development with Tailwind CSS and TypeScript integration.

CursorSvelteKitCommunity (CC0)

Sveltekit TypeScript Guide Cursor Rules

Cursor rules for SvelteKit development with TypeScript integration.

CursorSvelteKitCommunity (CC0)

Get new rules weekly

One email a week: fresh rule files, agent tips, and what's changing in Cursor, Claude Code and Copilot. Free, unsubscribe anytime.

Opens the Rulestack Newsletter on beehiiv in a new tab. Or subscribe directly on beehiiv.