# Svelte Diff
> A Svelte 5 text-diff component with semantic cleanup, expected-pattern matching, typed custom renderers, reactive updates, and timing callbacks.
## Install
```bash
npm install @humanspeak/svelte-diff
```
`@humanspeak/svelte-diff` is the Svelte 5 component package. It accepts `originalText` and `modifiedText`, computes a diff reactively, and renders removed, inserted, equal, and expected segments.
Use this library when the desired result is a rendered text diff inside a Svelte application. Use a lower-level algorithm library when you need patch creation, patch application, non-UI diff data, or non-Svelte runtimes.
## Minimal example
```svelte
```
## Important behavior
- `cleanupSemantic` improves readability and takes precedence over efficiency cleanup.
- `cleanupEfficiency` defaults to `4`; set it to `0` to skip efficiency cleanup.
- Expected patterns use named capture groups such as `(?\\d{4})` inside `originalText`.
- Child snippets override the corresponding `renderers` entry, which overrides built-in markup.
- `onProcessing` receives timing, raw diff tuples, and optional expected-pattern captures.
Canonical docs root: https://diff.svelte.page/docs
Per-page markdown mirrors: https://diff.svelte.page/docs/.md
Full reference (single document): https://diff.svelte.page/llms-full.txt
## Documentation
- [SvelteDiff API](https://diff.svelte.page/docs/api/svelte-diff.md): https://diff.svelte.page/docs/api/svelte-diff
- [Types and Exports](https://diff.svelte.page/docs/api/types.md): https://diff.svelte.page/docs/api/types
- [Getting Started](https://diff.svelte.page/docs/getting-started.md): https://diff.svelte.page/docs/getting-started
- [Cleanup Modes](https://diff.svelte.page/docs/guides/cleanup.md): https://diff.svelte.page/docs/guides/cleanup
- [Custom Rendering](https://diff.svelte.page/docs/guides/custom-rendering.md): https://diff.svelte.page/docs/guides/custom-rendering
- [Expected Patterns](https://diff.svelte.page/docs/guides/expected-patterns.md): https://diff.svelte.page/docs/guides/expected-patterns
- [Timing and Performance](https://diff.svelte.page/docs/guides/performance.md): https://diff.svelte.page/docs/guides/performance
- [Migration Guide](https://diff.svelte.page/docs/migration.md): https://diff.svelte.page/docs/migration
Canonical examples root: https://diff.svelte.page/examples
Per-example markdown mirrors: https://diff.svelte.page/examples/.md
## Examples
- [Interactive Examples](https://diff.svelte.page/examples.md): https://diff.svelte.page/examples
- [Basic Diff](https://diff.svelte.page/examples/basic-diff.md): https://diff.svelte.page/examples/basic-diff
- [Cleanup Modes](https://diff.svelte.page/examples/cleanup-modes.md): https://diff.svelte.page/examples/cleanup-modes
- [Custom Snippets](https://diff.svelte.page/examples/custom-snippets.md): https://diff.svelte.page/examples/custom-snippets
- [Expected Patterns](https://diff.svelte.page/examples/expected-patterns.md): https://diff.svelte.page/examples/expected-patterns
- [Live Editor](https://diff.svelte.page/examples/live-editor.md): https://diff.svelte.page/examples/live-editor
- [Timing](https://diff.svelte.page/examples/timing.md): https://diff.svelte.page/examples/timing
## Comparisons
- [jsdiff](https://diff.svelte.page/compare/vs-jsdiff.md): https://diff.svelte.page/compare/vs-jsdiff
- [diff-match-patch](https://diff.svelte.page/compare/vs-diff-match-patch.md): https://diff.svelte.page/compare/vs-diff-match-patch
- [diff2html](https://diff.svelte.page/compare/vs-diff2html.md): https://diff.svelte.page/compare/vs-diff2html
## External links
- [npm](https://www.npmjs.com/package/@humanspeak/svelte-diff)
- [GitHub](https://github.com/humanspeak/svelte-diff)
- [Issue tracker](https://github.com/humanspeak/svelte-diff/issues)
- [Humanspeak](https://humanspeak.com)