This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## svelte@5.57.0 ### Minor Changes - feat: export `RenderOutput`, `SyncRenderOutput`, `Csp` and `Sha256Source` from `svelte/server` ([#18648](https://github.com/sveltejs/svelte/pull/18648)) - feat: add `has` function to `createContext` ([#18472](https://github.com/sveltejs/svelte/pull/18472)) - feat: support `defaultValue` on `<select>` ([#18591](https://github.com/sveltejs/svelte/pull/18591)) - feat: add getOrInsert/getOrInsertComputed to SvelteMap ([#18728](https://github.com/sveltejs/svelte/pull/18728)) ### Patch Changes - fix: block template store subscriptions on the promise that assigns the store ([#18582](https://github.com/sveltejs/svelte/pull/18582)) - fix: route $derived teardown errors through invoke_error_boundary ([#18486](https://github.com/sveltejs/svelte/pull/18486)) - fix: track SvelteDate snapshots in reactions ([#18700](https://github.com/sveltejs/svelte/pull/18700)) - fix: remove `<svelte:head>` anchors on unmount ([#18697](https://github.com/sveltejs/svelte/pull/18697)) - fix: warn on undeclared shorthand event handlers on `<svelte:window>`, `<svelte:document>` and `<svelte:body>` ([#18480](https://github.com/sveltejs/svelte/pull/18480)) - perf: reuse the cached value in the `<option>`/`<select>` value guard ([#18713](https://github.com/sveltejs/svelte/pull/18713)) - fix: prevent malformed AST output for `<select>` with static `value` attribute ([#18449](https://github.com/sveltejs/svelte/pull/18449)) - fix: apply ownership mutation ignores to binding assignments ([#18718](https://github.com/sveltejs/svelte/pull/18718)) - fix: prevent onoutroend from firing twice when compilerOptions.hmr is true ([#18655](https://github.com/sveltejs/svelte/pull/18655)) - fix: preserve whitespace after inline elements when printing ([#18685](https://github.com/sveltejs/svelte/pull/18685)) - perf: fold SSR block-open markers into the branch's first push ([#18712](https://github.com/sveltejs/svelte/pull/18712)) - fix: run `onDestroy` callbacks when a server render throws ([#18585](https://github.com/sveltejs/svelte/pull/18585)) - fix: report `derived_invalid_export` for `export let x = $derived(...)` in runes mode ([#18692](https://github.com/sveltejs/svelte/pull/18692)) - fix: never apply class hash to elements inside `<svelte:head>` ([#18160](https://github.com/sveltejs/svelte/pull/18160)) - fix: keep `defaultChecked` on hydrated radio inputs with spread attributes ([#18701](https://github.com/sveltejs/svelte/pull/18701)) - fix: accept `onfocusin`/`onfocusout` in `a11y_mouse_events_have_key_events` ([#18689](https://github.com/sveltejs/svelte/pull/18689)) - perf: O(n²)→O(n) Map lookups for legacy `$:` reactive statement ordering ([#18602](https://github.com/sveltejs/svelte/pull/18602)) - fix: distinct memoizer on style/class directives ([#18466](https://github.com/sveltejs/svelte/pull/18466)) - fix: measure nested transitions before applying their starting styles ([#18647](https://github.com/sveltejs/svelte/pull/18647)) - fix: don't turn component instances stored in `$state` into state proxies ([#18646](https://github.com/sveltejs/svelte/pull/18646)) - perf: emit `$.only_child` for elements with a single child ([#18717](https://github.com/sveltejs/svelte/pull/18717)) - fix: omit `bind:focused` from SSR output (it has no HTML attribute) ([#18724](https://github.com/sveltejs/svelte/pull/18724)) - fix: more robust rendering of Svelte custom element slots ([#18710](https://github.com/sveltejs/svelte/pull/18710)) - perf: optimize simple object destructuring in `@const` tags ([#18390](https://github.com/sveltejs/svelte/pull/18390)) - fix: properly apply static textarea value attribute during CSR ([#18727](https://github.com/sveltejs/svelte/pull/18727)) - fix: end a restored reaction context at the end of its synchronous segment ([#18694](https://github.com/sveltejs/svelte/pull/18694)) - fix: keep the dependencies of a reaction that throws, so deriveds it read are neither leaked nor stuck in their error ([#18703](https://github.com/sveltejs/svelte/pull/18703)) - fix: don't resurrect outroing elements when an ancestor block is paused and resumed ([#18431](https://github.com/sveltejs/svelte/pull/18431)) - perf: use `$.comment()` for single-comment templates ([#18714](https://github.com/sveltejs/svelte/pull/18714)) - chore: move `@types/trusted-types` to devDependencies ([#18730](https://github.com/sveltejs/svelte/pull/18730)) - perf: store setters cache as `Set` instead of `Array` ([#18251](https://github.com/sveltejs/svelte/pull/18251)) - fix: transform derived assignments and select function bindings correctly during server-side rendering ([#18669](https://github.com/sveltejs/svelte/pull/18669)) - fix: keep boolean attributes with an empty string value when rendering attribute objects on the server ([#18721](https://github.com/sveltejs/svelte/pull/18721)) - fix: sync `SvelteURL` port signal when the protocol setter clears the port ([#18705](https://github.com/sveltejs/svelte/pull/18705)) - fix: block declaration tags and `{@const}` on async values read inside closures ([#18533](https://github.com/sveltejs/svelte/pull/18533)) - fix: avoid css tree-shaking for exported Snippet ([#18540](https://github.com/sveltejs/svelte/pull/18540)) - perf: treat `<img loading>` as a static element again ([#18711](https://github.com/sveltejs/svelte/pull/18711)) - fix: prevent `selectedcontent` mutation from changing the selected option ([#18495](https://github.com/sveltejs/svelte/pull/18495)) - fix: avoid `NaN` keyframe values in `slide` transition for elements without a layout box ([#18430](https://github.com/sveltejs/svelte/pull/18430)) - fix: preserve line feed character references in attribute values ([#18691](https://github.com/sveltejs/svelte/pull/18691)) - fix: decode uppercase-`X` hex numeric character references (`&#X...;`) ([#18708](https://github.com/sveltejs/svelte/pull/18708)) - chore: clarify when `$effect.pre` runs relative to DOM updates ([#18534](https://github.com/sveltejs/svelte/pull/18534)) - fix: scope SSR boundary failed snippets to their boundary ([#18593](https://github.com/sveltejs/svelte/pull/18593)) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> |
16 hours ago | |
|---|---|---|
| .agents/skills/performance-investigation | chore: agent hints for perf investigations (#18047) | 5 months ago |
| .changeset | Version Packages (#18682) | 16 hours ago |
| .github | chore: Supply chain hardening (#18253) | 1 month ago |
| .vscode | chore: cleanup obselete stuff (#16412) | 1 year ago |
| .well-known | chore: add funding manifest URL (#17827) | 6 months ago |
| assets | docs: update README banner (#15063) | 2 years ago |
| benchmarking | chore: bench compare report as HTML (#18543) | 2 months ago |
| documentation/docs | feat: add has function to createContext (#18472) | 2 days ago |
| packages/svelte | Version Packages (#18682) | 16 hours ago |
| playgrounds/sandbox | chore(deps-dev): bump vite from 7.3.2 to 7.3.5 (#18444) | 1 week ago |
| .editorconfig | chore: fix editorconfig (#18033) | 5 months ago |
| .gitattributes | Add a linguist configuration (#5878) | 6 years ago |
| .gitignore | chore: bench compare report as HTML (#18543) | 2 months ago |
| .npmrc | chore: Skip playwright instaling browsers (#8935) | 3 years ago |
| .prettierignore | docs: desloppify browser support page (#18333) | 3 months ago |
| .prettierrc | chore: cleanup obselete stuff (#16412) | 1 year ago |
| AGENTS.md | chore: try and discourage slop, even a tiny bit (#18293) | 3 months ago |
| CODE_OF_CONDUCT.md | Create CODE_OF_CONDUCT.md (#7183) | 5 years ago |
| CONTRIBUTING.md | docs(contributing): fix grammar in Prioritization section (#18241) | 3 months ago |
| FUNDING.json | Update Drips claim wallet address (#11444) | 2 years ago |
| LICENSE.md | docs: rephrase copyright holder (#15333) | 2 years ago |
| README.md | docs: update casing (#15321) | 2 years ago |
| eslint.config.js | docs: add auto-generated browser support page (#18276) | 3 months ago |
| package.json | chore: bump playwright (#18729) | 2 days ago |
| pnpm-lock.yaml | chore: move `@types/trusted-types` to devDependencies (#18730) | 1 day ago |
| pnpm-workspace.yaml | chore: Supply chain hardening (#18253) | 1 month ago |
| svelte.config.js | fix: allow async destructured deriveds (#16444) | 1 year ago |
| vitest-xhtml-environment.ts | chore: upgrade to vitest v4 (#18265) | 3 months ago |
| vitest.config.js | chore: set Vitest reporter for github actions (#18722) | 3 days ago |
README.md
What is Svelte?
Svelte is a new way to build web applications. It's a compiler that takes your declarative components and converts them into efficient JavaScript that surgically updates the DOM.
Learn more at the Svelte website, or stop by the Discord chatroom.
Supporting Svelte
Svelte is an MIT-licensed open source project with its ongoing development made possible entirely by fantastic volunteers. If you'd like to support their efforts, please consider:
Funds donated via Open Collective will be used for compensating expenses related to Svelte's development such as hosting costs. If sufficient donations are received, funds may also be used to support Svelte's development more directly.
Roadmap
You may view our roadmap if you'd like to see what we're currently working on.
Contributing
Please see the Contributing Guide and the svelte package for information on contributing to Svelte.
Is svelte.dev down?
Probably not, but it's possible. If you can't seem to access any .dev sites, check out this SuperUser question and answer.