Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

svelte

/svelte

Obejmuje Svelte 5 z systemem reaktywności runes: komponenty, zarządzanie stanem i deklaracje reaktywne, w tym $state, $derived i $effect.

Licencja
MIT
Ostatnia zmiana repozytorium
21.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
4
Skrypty
0
Komentarze HTML
2
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 21.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co sprawdzić przed instalacją
  • SKILL.md zawiera komentarze HTML (2). Nie widać ich w podglądzie Markdown, a model je czyta.

Co robi i kiedy

Obejmuje Svelte 5 z systemem reaktywności runes: komponenty, zarządzanie stanem i deklaracje reaktywne, w tym $state, $derived i $effect.

Wyzwalacze z opisu

Svelterunes$state$derived$effectSvelteKitSvelte 5 patternsreactive runes
Oryginalny opis (EN)

Svelte 5 with runes reactivity system. Covers components, state management, and reactive declarations. USE WHEN: user mentions "Svelte", "runes", "$state", "$derived", "$effect", "SvelteKit", asks about "Svelte 5 patterns", "reactive runes" DO NOT USE FOR: Svelte 4 and earlier - use Svelte 4 documentation, React - use `frontend-react`, Vue - use `vue-composition`, Angular - use `angular`

Jak działa

  1. When NOT to Use This Skill
  2. Component Structure
  3. Runes (Svelte 5)
  4. Key Concepts
  5. Migration from Svelte 4
  6. Anti-Patterns
  7. Quick Troubleshooting
  8. Production Readiness
  9. Reference Documentation
Sekcje z nagłówków SKILL.md, w oryginale · 162 linii, 650 słów
Podgląd SKILL.md
---
name: svelte
description: |
  Svelte 5 with runes reactivity system. Covers components, state
  management, and reactive declarations.

  USE WHEN: user mentions "Svelte", "runes", "$state", "$derived", "$effect",
  "SvelteKit", asks about "Svelte 5 patterns", "reactive runes"

  DO NOT USE FOR: Svelte 4 and earlier - use Svelte 4 documentation,
  React - use `frontend-react`, Vue - use `vue-composition`, Angular - use `angular`
allowed-tools: Read, Grep, Glob, Write, Edit
---
# Svelte 5 Core Knowledge

> **Full Reference**: See [advanced.md](advanced.md) for WebSocket store patterns, room management, Socket.IO integration, and SvelteKit SSE patterns.

> **Deep Knowledge**: Use `mcp__documentation__fetch_docs` with technology: `svelte` for comprehensive documentation.

## When NOT to Use This Skill

Skip this skill when:
- Working with Svelte 4 or earlier (use Svelte 4 docs)
- Building React applications (use `frontend-react`)
- Using Vue framework (use `vue-composition`)
- Working with Angular (use `angular`)
- Need only vanilla JavaScript (no framework needed)

## Component Structure

```svelte
<script lang="ts">
  interface Props {
    name: string;
    count?: number;
  }

  let { name, count = 0 }: Props = $props();

  let localState = $state('');
  let doubled = $derived(count * 2);

  function handleClick() {
    localState = 'clicked';
  }
</script>

<div>
  <h1>Hello {name}</h1>
  <p>Count: {count}, Doubled: {doubled}</p>
  <button onclick={handleClick}>Click</button>
</div>

<style>
  div { padding: 1rem; }
</style>
```

## Runes (Svelte 5)

| Rune | Purpose |
|------|---------|
| `$state` | Reactive state |
| `$derived` | Computed values |
| `$effect` | Side effects |
| `$props` | Component props |
| `$bindable` | Two-way bindable props |

## Key Concepts

- No virtual DOM - compiles to vanilla JS
- Scoped CSS by default
- `{#if}`, `{#each}`, `{#await}` blocks
- `bind:` for two-way binding
- `use:` for actions (reusable behaviors)

## Migration from Svelte 4

```svelte
<!-- Svelte 4 -->
<script>
  export let count = 0;
  $: doubled = count * 2;
</script>

<!-- Svelte 5 -->
<script>
  let { count = 0 } = $props();
  let doubled = $derived(count * 2);
</script>
```

## Anti-Patterns

| Anti-Pattern | Why It's Bad | Correct Approach |
|--------------|--------------|------------------|
| Using Svelte 4 `$:` syntax | Deprecated in Svelte 5 | Use `$derived` rune |
| Not using `$props()` | Old prop syntax | Use `let { prop } = $props()` |
| Using `{@html}` without sanitization | XSS vulnerability | Use DOMPurify before rendering |
| Complex logic in templates | Hard to read/test | Extract to `$derived` or functions |
| Not cleaning up in `onDestroy` | Memory leaks | Clear timers, unsubscribe |
| Overusing stores | Unnecessary complexity | Use component state when possible |

## Quick Troubleshooting

| Issue | Likely Cause | Solution |
|-------|--------------|----------|
| State not reactive | Using regular `let` | Use `$state()` rune |
| Derived not updating | Not using `$derived` | Convert to `$derived()` |
| Effect running too often | Missing dependencies | Check `$effect` dependencies |
| Props not updating | Using old syntax | Use `$props()` rune |
| Memory leaks | No cleanup | Add `onDestroy()` lifecycle |
| Binding not working | Wrong syntax | Use `bind:value` not `:value` |

## Production Readiness

### Security

```svelte
<script lang="ts">
  import DOMPurify from 'dompurify';
  let { rawHtml }: { rawHtml: string } = $props();
  let safeHtml = $derived(DOMPurify.sanitize(rawHtml));
</script>

{@html safeHtml}
```

### Testing

```typescript
import { render, screen } from '@testing-library/svelte';
import userEvent from '@testing-library/user-event';
import Counter from './Counter.svelte';

describe('Counter', () => {
  it('increments count on click', async () => {
    const user = userEvent.setup();
    render(Counter, { props: { initial: 0 } });

    const button = screen.getByRole('button');
    await user.click(button);

    expect(screen.getByText('Count: 1')).toBeInTheDocument();
  });
});
```

### Monitoring Metrics

| Metric | Target |
|--------|--------|
| Bundle size | < 50KB |
| First Contentful Paint | < 1s |
| Time to Interactive | < 2s |
| Hydration time | < 100ms |

### Checklist

- [ ] Svelte 5 runes ($state, $derived, $effect)
- [ ] No {@html} with user input
- [ ] Error boundaries in SvelteKit
- [ ] Virtual lists for large data
- [ ] Lazy loaded components
- [ ] Proper ARIA attributes
- [ ] Testing with @testing-library/svelte
- [ ] Server-side rendering enabled
- [ ] Prerendering static pages
- [ ] Bundle analysis

## Reference Documentation

- [Runes Cheatsheet](quick-ref/runes-cheatsheet.md)
- [Component Patterns](quick-ref/component-patterns.md)
Pliki w paczce (4)
  • SKILL.md 5 KB
  • advanced.md 6 KB
  • quick-ref/component-patterns.md 3 KB
  • quick-ref/runes-cheatsheet.md 3 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · claude-dev-suite/claude-dev-suite100MIT
ericrisco/rsc-harness100MIT
TerminalSkills/skills100Apache-2.0
xobotyi/cc-foundry100MIT
vercel-labs/json-render100Apache-2.0
EpicenterHQ/epicenter100MIT
Mindrally/skills100Apache-2.0
G1Joshi/Agent-Skills100MIT
chrishuffman5/domain-expert100MIT

Migawka bazy z 28.10.2026 · wersja paczki 60c64504a097 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 95svelte-development
    Wspiera tworzenie aplikacji w Svelte 5 z runami ($state, $derived, $effect) i SvelteKit: drobnoziarnista reaktywność, routing i funkcje serwerowe.
  • 95agent-svelte-expert
    Działa jako subagent od Svelte 5 runes, routingu SvelteKit, form actions i reaktywności w czasie kompilacji przy budowie aplikacji Svelte.
  • 90frontend-svelte-architecture
    Pomaga pisać komponenty Svelte 5 z runami ($state, $derived, $effect, $props) i reaktywnością opartą na kompilatorze.
  • 95vue-composition
    Opisuje Vue 3 z Composition API: reaktywność, composables, hooki cyklu życia i wzorce komponentów.
  • 100svelte5-development
    Prowadzi budowę aplikacji webowych w Svelte 5 z runes, routingiem SvelteKit, form actions i wzorcami komponentów.
  • 100svelte-stinger
    Wspiera pracę ze Svelte 5: runes, snippety, cykl życia, uniwersalna reaktywność, load, actions i remote functions w SvelteKit 2 oraz migracja ze Svelte 4.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.