diff --git a/CHANGELOG.md b/CHANGELOG.md index c69bd58ebb..dbb9a15fe3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,14 +2,18 @@ ## Unreleased +* Expose `svelte/ssr` which exported lifecycle methods as noop ([#6416](https://github.com/sveltejs/svelte/pull/6416)) * Add `trusted` event modifier ([#6137](https://github.com/sveltejs/svelte/issues/6137)) -* Fix erroneous `unknown prop` warning when using slot on a component ([#6065](https://github.com/sveltejs/svelte/pull/6065)) -* Throw compiler error when passing empty directive names ([#6299](https://github.com/sveltejs/svelte/issues/6299)) -* New a11y warning `a11y-mouse-events-have-key-events` which checks that `mouseover`/`mouseout` are accompanied by `focus`/`blur` event handlers ([5938](https://github.com/sveltejs/svelte/pull/5938)) -* Fix `preserveComments` in SSR mode ([4730](https://github.com/sveltejs/svelte/issues/4730)) * Add `varsReport` compiler option ([#6192](https://github.com/sveltejs/svelte/pull/6192)) -* Expose `svelte/ssr` which exported lifecycle methods as noop ([#6416](https://github.com/sveltejs/svelte/pull/6416)) +* Throw compiler error when passing empty directive names ([#6299](https://github.com/sveltejs/svelte/issues/6299)) +* Update `periscopic` to allow for export of anonymous function or class ([#3275](https://github.com/sveltejs/svelte/issues/3275)) +* Fix `preserveComments` in SSR mode ([#4730](https://github.com/sveltejs/svelte/issues/4730)) * Fix compiler error when using `:where()` inside `:global()` ([#6434](https://github.com/sveltejs/svelte/issues/6434)) +* Fix erroneous `unknown prop` warning when using slot on a component ([#6065](https://github.com/sveltejs/svelte/pull/6065)) +* Fix :global() with pseudo element should be considered as global ([#6470](https://github.com/sveltejs/svelte/pull/6470)) +* New a11y warning `a11y-mouse-events-have-key-events` which checks that `mouseover`/`mouseout` are accompanied by `focus`/`blur` event handlers ([#5938](https://github.com/sveltejs/svelte/pull/5938)) +* Remove deprecated `a11y-no-onchange warning` ([#6457](https://github.com/sveltejs/svelte/issues/6457)) +* Remove `a11y-media-has-caption` from `audio` elements ([#6054](https://github.com/sveltejs/svelte/issues/6054)) ## 3.38.3 diff --git a/package.json b/package.json index 6d85e5bf5b..e61af67b4e 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "compiler.*", "register.js", "index.*", + "ssr.*", "internal", "store", "animate", diff --git a/site/README.md b/site/README.md index 7d8adbd6c5..ca75a89953 100644 --- a/site/README.md +++ b/site/README.md @@ -54,9 +54,9 @@ To build the website, run `npm run build`. The output can be found in `__sapper_ Tests can be run using `npm run test`. -## Linking `@sveltejs/site-kit` and `@sveltejs/site-repl` +## Linking `@sveltejs/site-kit` and `@sveltejs/svelte-repl` -This site depends on `@sveltejs/site-kit`, a collection of styles, components and icons used in common by *.svelte.dev websites, and `@sveltejs/site-repl`. +This site depends on `@sveltejs/site-kit` (a collection of styles, components and icons used in common by *.svelte.dev websites), and `@sveltejs/svelte-repl`. In order to work on features that depend on those packages, you need to [link](https://docs.npmjs.com/cli/link) their repositories: @@ -70,7 +70,7 @@ In order to work on features that depend on those packages, you need to [link](h - `cd /site` - `npm link @sveltejs/site-kit` - `npm link @sveltejs/svelte-repl` - + ## Translating the API docs diff --git a/site/content/blog/2021-07-01-whats-new-in-svelte-july-2021.md b/site/content/blog/2021-07-01-whats-new-in-svelte-july-2021.md new file mode 100644 index 0000000000..fa6440ade4 --- /dev/null +++ b/site/content/blog/2021-07-01-whats-new-in-svelte-july-2021.md @@ -0,0 +1,65 @@ +--- +title: What's new in Svelte: July 2021 +description: Keeping cool with fixes, TypeScript tooling and tonnes of new features +author: Daniel Sandoval +authorURL: https://desandoval.net +--- + +As the northern hemisphere heats up, Svelte has stayed cool with lots of performance and bug fixes, better TypeScript support, and lots of new components & tools from around the ecosystem. Let's take a peek 👀 + +## New in SvelteKit +- `adapter-node` now precompresses assets using gzip & brotli ([#1693](https://github.com/sveltejs/kit/pull/1693)) +- Support for TypeScript transpilation has been added to the `svelte-kit package` tooling ([#1633](https://github.com/sveltejs/kit/pull/1633)) +- Improved caching defaults in `adapter-node` ([#1416](https://github.com/sveltejs/kit/pull/1416)) +- Allow configuring Rollup output options ([#1572](https://github.com/sveltejs/kit/pull/1572)) +- Fixed usage of SSL with HMR ([#1517](https://github.com/sveltejs/kit/pull/1517)) + + + +## Features & bug fixes from around svelte/* +- [Svelte 3.38.3](https://github.com/sveltejs/svelte/blob/master/CHANGELOG.md#3383) (released June 22) includes a bunch of performance and bug fixes - including hydration optimizations, `this` preservation in bubbled events, and more! +- The latest language tools releases added support for prop renaming from outside of a component, PostCSS syntax grammar, and a `.d.ts` output target in `svelte2tsx` which can be used to create type definitions from Svelte files. +- Also in language tools, some long-awaited experimental features for enhanced TypeScript support were added - including explicitly typing all possible component events or slots, and using generics. Have a look at [the RFC](https://github.com/sveltejs/rfcs/pull/38) for more details and leave feedback in [this issue](https://github.com/sveltejs/language-tools/issues/442) if you are using it. +- `svelte-scroller` got some quality-of-life fixes in 2.0.7 - fixing an initial width bug and updating its `index` more conservatively + + +## Coming soon to Svelte +- Constants in markup ([RFC](https://github.com/sveltejs/rfcs/blob/master/text/0000-markup-constants.md)): Adds a new `{@const ...}` tag that defines a local constant ([PR](https://github.com/sveltejs/svelte/pull/6413)) + +--- + +## Community Showcase + +**Apps & Sites** +- [SvelteThemes](https://sveltethemes.dev/) is a curated list of Svelte themes and templates built using svelte, sveltekit, elderjs, routify etc. +- [Beatbump](https://github.com/snuffyDev/Beatbump) is an alternative frontend for YouTube Music created using Svelte/SvelteKit. +- [Sveltuir](https://github.com/webspaceadam/sveltuir) is an app help you memorize the guitar fretboard + + +**Educational Content** +- [Svelte Radio: A Jolly Good Svelte Summer](https://share.transistor.fm/s/60880542) is a conversation about what's new in Svelte and a celebration of Svelte Radio's 1-year anniversary +- [Class properties in Svelte](https://navillus.dev/blog/svelte-class-props) is a refresher on the power of `class` for developers switching over to Svelte from React +- [Sveltekit Tutorial for Beginners](https://www.youtube.com/playlist?list=PLm_Qt4aKpfKjf77S8UD79Ockhwp_699Ms) is a video playlist for learning SvelteKit by WebJeda +- [How To Cache Dynamic Pages On Demand With A Service Worker In SvelteKit](https://jochemvogel.medium.com/how-to-cache-dynamic-pages-on-demand-with-a-service-worker-in-sveltekit-4b4a7652583d) walks through the power of service workers when used within SvelteKit for on-demand caching +- [Vue vs Svelte: Comparing Framework Internals](https://www.vuemastery.com/blog/vue-vs-svelte-comparing-framework-internals/) dives deep into the differences between Vue and Svelte from the inside out +- [Setting up a development environment for SvelteKit with Docker and Docker Compose](https://jenyus.web.app/blog/2021-05-30-setting-up-a-development-environment-for-sveltekit-with-docker-and-compose) walks through how to use Docker to create reusable development environments, no matter what kind of device you run your code on +- Scalable Scripts released three videos this month documenting how to deploy dockerized Svelte Apps to [AWS](https://youtu.be/VOs2Od5jYOc), [Azure](https://youtu.be/gdg4ne_uDm8) and [Google Cloud](https://youtu.be/_-uBb61Tikw) +- [Render Katex with Svelte from zero to hero](https://www.youtube.com/watch?v=euowJs9CblA) demonstrates how to implement Katex in a Svelte project +- [Using Custom Elements in Svelte](https://css-tricks.com/using-custom-elements-in-svelte/) shows some of the quirks to look out for when using custom elements in a Svelte site + + +**Libraries, Tools & Components** +- [svelte-pipeline](https://github.com/novacbn/svelte-pipeline) provides custom Javascript contexts and the Svelte Compiler as Svelte Stores, for REPLs, Editors, etc. +- [Sveltotron](https://github.com/Salemmous/sveltotron) is an Electron-based app made to inspect your Svelte app +- [svelte-qr-reader-writer](https://github.com/pleasemarkdarkly/svelte-qr-reader-writer) is a Svelte component that helps read and write data from QR codes +- [svelte-stack-router](https://www.npmjs.com/package/svelte-stack-router) Aims to make Svelte apps feel more native by routing with Stacks +- [svelte-typed-context](https://www.npmjs.com/package/svelte-typed-context) provides an interface which, when provided to `getContext` or `setContext`, allows for stricter types +- [svelte-modals](https://svelte-modals.mattjennings.io/) is a simple, flexible, zero-dependency modal manager for Svelte + + +**Want to contribute a component? Interested in helping make Svelte's presence on the web better?** Submit a Component to the Svelte Society site by making [a PR to this file](https://github.com/svelte-society/sveltesociety-2021/blob/main/src/routes/components/components.json) or check out [the list of open issues](https://github.com/svelte-society/sveltesociety-2021/issues) if you'd like to contribute to the Svelte Society rewrite in SvelteKit. + + +## See you next month! + +Want more updates? Join us on [Reddit](https://www.reddit.com/r/sveltejs/) or [Discord](https://discord.com/invite/yy75DKs)! diff --git a/site/content/docs/05-accessibility-warnings.md b/site/content/docs/05-accessibility-warnings.md index 1ef1ae801e..149603dcf9 100644 --- a/site/content/docs/05-accessibility-warnings.md +++ b/site/content/docs/05-accessibility-warnings.md @@ -2,15 +2,15 @@ title: Accessibility warnings --- -Accessibility (shortened to a11y) isn't always easy to get right, but Svelte will help by warning you if you write inaccessible markup. +Accessibility (shortened to a11y) isn't always easy to get right, but Svelte will help by warning you at compile time if you write inaccessible markup. However, keep in mind that many accessibility issues can only be identified at runtime using other automated tools and by manually testing your application. -Here is a list of accessibility checks Svelte will do it for you. +Here is a list of accessibility checks Svelte will do for you. --- ### `a11y-accesskey` -Enforce no `accesskey` on element. Access keys are HTML attributes that allow web developers to assign keyboard shortcuts to elements. Inconsistencies between keyboard shortcuts and keyboard commands used by screenreader and keyboard only users create accessibility complications so to avoid complications, access keys should not be used. +Enforce no `accesskey` on element. Access keys are HTML attributes that allow web developers to assign keyboard shortcuts to elements. Inconsistencies between keyboard shortcuts and keyboard commands used by screen reader and keyboard-only users create accessibility complications. To avoid complications, access keys should not be used. ```sv @@ -32,7 +32,7 @@ Certain reserved DOM elements do not support ARIA roles, states and properties. ### `a11y-autofocus` -Enforce that `autofocus` is not used on elements. Autofocusing elements can cause usability issues for sighted and non-sighted users, alike. +Enforce that `autofocus` is not used on elements. Autofocusing elements can cause usability issues for sighted and non-sighted users alike. ```sv @@ -56,32 +56,32 @@ The following elements are visually distracting: `` and ``. ### `a11y-hidden` -Certain DOM elements are useful for screen readers navigation and should not be hidden. +Certain DOM elements are useful for screen reader navigation and should not be hidden. ```sv -

invisible header

+ ``` --- ### `a11y-img-redundant-alt` -Enforce img alt attribute does not contain the word image, picture, or photo. Screenreaders already announce `img` elements as an image. There is no need to use words such as _image_, _photo_, and/or _picture_. +Enforce img alt attribute does not contain the word image, picture, or photo. Screen readers already announce `img` elements as an image. There is no need to use words such as _image_, _photo_, and/or _picture_. ```sv Foo eating a sandwich. -Picture of me taking a photo of an image + - + Photo of foo being weird. - + Image of me at a bar! - + Picture of baz fixing a bug. ``` @@ -89,7 +89,7 @@ Enforce img alt attribute does not contain the word image, picture, or photo. Sc ### `a11y-invalid-attribute` -Enforce that accessibility attribute should have valid value +Enforce that attributes important for accessibility have a valid value. For example, `href` should not be empty, `'#'`, or `javascript:`. ```sv @@ -105,7 +105,7 @@ Enforce that a label tag has a text label and an associated control. There are two supported ways to associate a label with a control: - Wrapping a control in a label tag. -- Adding `for` to a label and assigning it a DOM ID string that indicates an input on the page. +- Adding `for` to a label and assigning it the ID of an input on the page. ```sv @@ -151,18 +151,26 @@ Certain reserved DOM elements do not support ARIA roles, states and properties. ### `a11y-misplaced-scope` -The scope scope should be used only on `` elements. +The scope attribute should only be used on `` elements. ```sv -
+
``` --- ### `a11y-missing-attribute` -Enforce that element should have required accessibility attribute +Enforce that attributes required for accessibility are present on an element. This includes the following checks: + +- `` should have an href (unless it's a [fragment-defining tag](https://github.com/sveltejs/svelte/issues/4697)) +- `` should have alt, aria-label, or aria-labelledby +- `` should have lang +- `